Плиз, помогите с задачкой!Оч срочно! "Найти решение системы линейных уравнений x=Ax+b последовательным нахождением членов ряда: b+Ab+(A^2)b+(A^3)b+..., где матрица А: 0,4 0,12 -0,51 0,34 -0,08 0,17 0,16 0,74 0,15
матрица В: -0,64 1,42 -0,42
Sto
14.05.2007 0:19
Система решается методом Гаусса.
Uses Crt; Var i, j, k, nom : Integer; max, t, u : Real; a : Array[1..3,1..3] Of Real; b : Array[1..3] Of Real; r : Array[1..3] Of Real; Begin ClrScr; WriteLn('Metod Gayssa'); For i := 1 To 3 Do Begin WriteLn('Vvedite koef pri neizvesnux dlja ',i,' yravnenija'); WriteLn('Vvedite koef pri x1'); ReadLn(a[i,1]); WriteLn('Vvedite koef pri x2'); ReadLn(a[i,2]); WriteLn('Vvedite koef pri x3'); ReadLn(a[i,3]); WriteLn('Vvedite svobodnuj chlen yravnenija'); ReadLn(b[i]); ClrScr; End; WriteLn('Sistema'); ReadLn(a[i,1]); WriteLn; For i := 1 To 3 Do Begin For j := 1 To 3 Do Begin If j = 1 Then Write(a[i,j]:1:0,'*x',j); If (j = 2) Or (j = 3) Then Write('+',a[i,j]:1:0,'*x',j); If a[i,j] >= 0 Then Write('+',a[i,j]:1:0,'*x',j) Else Write(a[i,j]:1:0,'*x',j); End; WriteLn('=',b[i]:1:0); End; WriteLn; For k := 1 To 3 Do Begin max := abs(a[k,k]); nom := k; For i := k+1 To 3 Do Begin If abs(a[i,k]) > max Then Begin max := a[i,k]; nom := i; End; End; If nom <> k Then Begin t := b[k]; b[k] := b[nom]; b[nom] := t; For j := 1 To 3 Do Begin t := a[k,j]; a[k,j] := a[nom,j]; a[nom,j] := t; End; End; t := a[k,k]; b[k] := b[k]/t; For j := k+1 To 3 Do a[k,j] := a[k,j]/t; For i := k+1 To 3 Do Begin t := a[i,k]; For j := k+1 To 3 Do a[i,j] := a[i,j] - t*a[k,j]; b[i] := b[i] - t*b[k]; End; End; For i := 3 DownTo 1 Do Begin u := b[i]; For j := 3 DownTo 2 Do u := u - a[i,j]*r[j]; r[i] := u; End; For i := 1 To 3 Do WriteLn('x',i,' = ',r[i]:5:2); ReadKey; End.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.