UHJvZ3JhbSBTYWxpY2hvdjsKY29uc3Qgbj02OyBtMT03Owp0eXBlCiAgICAgIG1hcz1hcnJheVsxLi5uLDEuLm0xXSBvZiByZWFsOwogICAgICBzdGI9c2V0IG9mIGJ5dGU7CiAgICAgIHZlYz1hcnJheVsxLi5uXSBvZiByZWFsOwp2YXIKICAgICBpLGosayxtOmludGVnZXI7CiAgICAgczpzdGI7CiAgICAgajA6Ynl0ZTsKICAgICBtYXgsc3M6cmVhbDsKICAgICByLHg6dmVjOwogICAgIGE6bWFzO2Y6dmVjOwpwcm9jZWR1cmUgR2F1c3MobjppbnRlZ2VyO2E6bWFzO3ZhciB4OnZlYyk7CiAgICAgdmFyCiAgICAgICAgIGw6YXJyYXlbMS4uMjFdIG9mIGludGVnZXI7CiAgICAgICAgIGksaixrLG06aW50ZWdlcjsKYmVnaW4KICAgICAgICBzOj1bXTsKICAgICAgICBmb3IgaTo9MSB0byBuIGRvCiBiZWdpbgogICAgICAgICAgbWF4Oj1hW2ksMV07IGowOj0xOwogICAgICAgICAgZm9yIGo6PTEgdG8gbiBkbyBpZiBhYnMoYVtpLGpdKSZndDthYnMobWF4KSB0aGVuCiAgICAgYmVnaW4KICAgICAgICAgIG1heDo9YVtpLGpdO2owOj1qOyBlbmQ7CiAgICAgICAgIGxbaV06PWowOwogICAgICAgICBzOj1zK1tqMF07CiAgICAgaWYgbWF4PTAgdGhlbiBleGl0OwogICAgIGZvciBrOj0xIHRvIG4gZG8gaWYgayZsdDsmZ3Q7aSB0aGVuCiAgICAgZm9yIG06PTEgdG8gbisxIGRvIGlmIG5vdChtIGluIHMpIHRoZW4KICAgICBhW2ssbV06PShhW2ssbV0qYVtpLGowXS1hW2ksbV0qYVtrLGowXSkvbWF4OwogICAgIGZvciBtOj0xIHRvIG4rMSBkbyBpZiBub3QobSBpbiBzKSB0aGVuCiAgICAgYVtpLG1dOj1hW2ksbV0vbWF4OwogICAgIGZvciBrOj0xIHRvIG4gZG8gIGFbayxqMF06PTA7CiAgICAgYVtpLGowXTo9MTsKIGVuZDsKICAgICAgZm9yIGs6PTEgdG8gbiBkbwogICAgICBiZWdpbgogICAgICAgIGk6PWxba107CiAgICAgICAgeFtpXTo9YVtrLG4rMV07IGVuZDsKICAgICAgaWYgbWF4PTAgdGhlbgogICAgICBiZWdpbiAgd3JpdGUoJyBkZXQ9MCcpOyB3cml0ZWxuOyBleGl0O2VuZDsKZW5kOwpiZWdpbiAKZm9yIGkgOj0gMSB0byBuIGRvCiAgYmVnaW4KICAgIGZvciBqIDo9IDEgdG8gbiBkbwogICAgYmVnaW4KICAgICAgaWYgaT1qIHRoZW4gQVtpLCBqXSA6PSBQb3dlcigtMSwgaSArIGopICogc2luKFBpICogaSAqIGogLyA3KSArIDcgCiAgICAgIGVsc2UgQVtpLCBqXSA6PSBQb3dlcigtMSwgaSArIGopICogc2luKFBpICogaSAqIGogLyA3KTsKICAgIGVuZDsKICAgIGZbaV0gOj0gMDsKICAgIGZvciBrIDo9IDEgdG8gMjAgZG8KICAgIGJlZ2luCiAgICAgIGZbaV0gOj0gZltpXSArIDEgLyAoayArIHNpbihQaSAqIGkgLyAyMCkgKiBzaW4oUGkgKiBpIC8gMjApKTsKICAgIGVuZDsKICBlbmQ7CmZvciBpOj0xIHRvIG4gZG8gCiAgIGFbaSw3XTo9ZltpXTsKICAgICAgR2F1c3MobixhLHgpOwogICAgICB3cml0ZWxuKCfRgNC10YjQtdC90LjQtSDQvNC10YLQvtC00L7QvCDQk9Cw0YPRgdGB0LAgJyk7CiAgICAgIGZvciBpOj0xIHRvIG4gIGRvCiAgICAgIHdyaXRlbG4oJ3hbJyxpLCddPScseFtpXToxMjo1KTsKICAgICAgCiAgICAgIHdyaXRlbG4gKCfQstC10LrRgtC+0YAg0L3QtdCy0Y/Qt9C60LgnKTsKICAgICAgZm9yIGk6PTEgdG8gbiBkbwogICAgICBiZWdpbiBzczo9MDsKICAgICAgZm9yIGo6PTEgdG8gbiBkbwogICAgICBzczo9c3MrYVtpLGpdKnhbal07CiAgICAgIHJbaV06PXNzLWFbaSw3XTsKICAgICAgd3JpdGVsbiAoJ3JbJyxpLCddPScscltpXSk7CiAgICAgIGVuZDsKICAgICAgCmVuZC4K
Program Salichov;
const n=6; m1=7;
type
mas=array[1..n,1..m1] of real;
stb=set of byte;
vec=array[1..n] of real;
var
i,j,k,m:integer;
s:stb;
j0:byte;
max,ss:real;
r,x:vec;
a:mas;f:vec;
procedure Gauss(n:integer;a:mas;var x:vec);
var
l:array[1..21] of integer;
i,j,k,m:integer;
begin
s:=[];
for i:=1 to n do
begin
max:=a[i,1]; j0:=1;
for j:=1 to n do if abs(a[i,j])>abs(max) then
begin
max:=a[i,j];j0:=j; end;
l[i]:=j0;
s:=s+[j0];
if max=0 then exit;
for k:=1 to n do if k<>i then
for m:=1 to n+1 do if not(m in s) then
a[k,m]:=(a[k,m]*a[i,j0]-a[i,m]*a[k,j0])/max;
for m:=1 to n+1 do if not(m in s) then
a[i,m]:=a[i,m]/max;
for k:=1 to n do a[k,j0]:=0;
a[i,j0]:=1;
end;
for k:=1 to n do
begin
i:=l[k];
x[i]:=a[k,n+1]; end;
if max=0 then
begin write(' det=0'); writeln; exit;end;
end;
begin
for i := 1 to n do
begin
for j := 1 to n do
begin
if i=j then A[i, j] := Power(-1, i + j) * sin(Pi * i * j / 7) + 7
else A[i, j] := Power(-1, i + j) * sin(Pi * i * j / 7);
end;
f[i] := 0;
for k := 1 to 20 do
begin
f[i] := f[i] + 1 / (k + sin(Pi * i / 20) * sin(Pi * i / 20));
end;
end;
for i:=1 to n do
a[i,7]:=f[i];
Gauss(n,a,x);
writeln('решение методом Гаусса ');
for i:=1 to n do
writeln('x[',i,']=',x[i]:12:5);
writeln ('вектор невязки');
for i:=1 to n do
begin ss:=0;
for j:=1 to n do
ss:=ss+a[i,j]*x[j];
r[i]:=ss-a[i,7];
writeln ('r[',i,']=',r[i]);
end;
end.