Решение системы методом Гаусса-Зейделя
Листинг программы численного решения систем линейных и алгебраических уравнений методом Гаусса-Зейделя (с проверкой сходимости при невыполнении достаточного условия сходимости метода).
program Zejdel; uses CRT; var i,j,n,Kk,V,k:integer; A,B:array [1..24,1..24] of real; E,S,Cc,Xk,C,MaxC,max,M: real; X,Ba,Bd: array [1..24] of real; z:char; procedure Matrln; begin for var i:=1 to n do for var j:=1 to n do read(A[i,j]); end; procedure Vectln; begin for var i:=1 to n do read(Ba[i]); end; BEGIN ClrScr; Repeat write('Vvedite nomer variant V='); readln(V); if V=0 then writeln('------------Testoviy primer----------') else writeln('------------Variant',V,'----------'); writeln('------------VVOD ISHODNIX DANNIX :----------'); write('Vvedite tochnost vichisleniu, E='); readln(E); write('Vvedite razmernost sistemi, N='); readln(N); write('Vvodite postrochno matrix A sistemi'); Matrln; write('Vvodite vector stolbec B sistemi'); Vectln; for i:=1 to n do begin B[i,i]:=0; for j:=1 to n do if j<>i then B[i,j]:=-(A[i,j]/A[i,j]); Bd[i]:=Ba[i]/A[i,i]; end; C:=0; for i:=1 to n do begin X[i]:=Bd[i]; S:=0; for j:=1 to n do S:=S+abs(B[i,j]); if C < = S then C:=S; end; writeln('C=',C:6:4); if C > =1 then begin writeln('Yslovie sxodimosti ne vipoln9ets9'); writeln('Хotite prodolshit vichisleni9,-'+'vvedite kolichestvoiterachiy'); write('(Esli net -Kk=0)Kk= '); readln(Kk); end; max:=10; maxC:=10; while ((C < 1)and (max>E))or((MaxC>=max)and(k<=Kk)and(max>E)) do begin inc(K); writeln('Iterachiya k=',k); max:=0;M:=0; for i:=1 to n do begin; Cc:=0;Xk:=X[i]; for j:=1 to n do Cc:=Cc+B[i,j]*X[j]; X[i]:=Bd[i]+Cc; M:=abs(X[i]-Xk); writeln(m:6:4); readln; if max < M then max:=M; end; if k=1 then MaxC:=max; writeln('|x-x',k-1,'|=',MaxC:6:4); writeln('|x-x',k,'|=',max:6:4); end; if MaxC < max then writeln('Iterac process rasxodits9') else if k=Kk then begin writeln('Zadanoe kolic iterashiy',Kk,'+isherpano'); writeln('Polyshen rezyltat:'); write('X=['); for i:=1 to n do write(X[i]:8:4); writeln(']') end else begin writeln('Reshenie dostignyto na',k,'-u iterashii'); write('X= ['); for i:=1 to n do write(X[i]:8:4); writeln(']'); end; write('Bydete prodolshat vichisleniy?(Y/N) Y'); z:=ReadKey; writeln(z); until (z='N') or(z='n'); End.
Скрин выполнения программы
Ответ: так просто подключите как модуль и будет вам на делфи