read(m);
if m=1 then Assign(f,'Matrix.txt') else Assign(f,'Matrix2.txt'); writeln('pogreshost'); Read(eps); Reset(f); for i:=1 to n do Begin for j:=1 to n do Begin read(f,a[i,j]); a1[i,j]:=a[i,j]; End; End; norm1:=norma(a); DECOMP(a,ip,jp,eps,det,norm1,ifsolve); if (ifsolve and (abs(det)>eps)) then Begin for i:=1 to n do b[i]:=0; for k:=1 to n do Begin b[k]:=1; SOLVE(a,ip,jp,x,b); b[k]:=0; for i:=1 to n do Ao[i,k]:=x[i]; End; for i:=1 to n do Begin for j:=1 to n do Begin s:=0; for k:=1 to n do s:=s+Ao[i,k]*a1[k,j]; if i=j then s:=abs(1-s) else s:=abs(s-0); write(s:10); End; Writeln; End; writeln('obratnaia matrica'); for i:=1 to n do Begin for j:=1 to n do write(Ao[i,j]:10:4); Writeln; End; norm2:=norma(Ao); cond:=norm1*norm2; writeln('cond(A)=',cond:9); End else writeln('systema ne imeet ed. reshenia '); Readln; Readln; End.
Результаты машинных вычислений
Вывод В ходе выполнения лабораторной работы изучены и освоены численные методы линейной алгебры: прямые методы обращения матриц. Разработана программа на языке Pascal, использующая 2 стандартные подпрограммы, и реализующая метод обращения матриц описанный в пункте 2.4. Результаты работы программы, а так же вычислительная ошибка представлены в пункте 6,(CЛАУ является хорошо обусловленной, поскольку Сond(A) ).
|