Информатика. Часть 2. Мойзес О.Е - 141 стр.

UptoLike

141
i,j,s,k:integer;
f1,f2:text;
Begin
assign(f1,'dparabol.pas');
assign(f2,'rparabol.pas');
reset(f1);
rewrite(f2);
for i:=1 to m do
read(f1,x[i]);
readln(f1);
for i:=1 to m do
read(f1,y[i]);
close(f1);
{ Формирование матрицы коэффициентов системы линейных уравнений}
s1:=0.0; s2:=0.0; s3:=0.0; s4:=0.0; s5:=0.0; s6:=0.0; s7:=0.0;
for i:=1 to m do
begin
s1:=s1+x[i];
s2:=s2+sqr(x[i]);
s3:=s3+exp(3*ln(x[i]));
s4:=s4+exp(4*ln(x[i]));
s5:=s5+y
[i];
s6:=s6+y[i]*x[i];
s7:=s7+y[i]*sqr(x[i]);
end;
aa[1,1]:=m; aa[1,2]:=s1; aa[1,3]:=s2; aa[1,4]:=s5;
aa[2,1]:=s1; aa[2,2]:=s2; aa[2,3]:=s3; aa[2,4]:=s6;
aa[3,1]:=s2; aa[3,2]:=s3; aa[3,3]:=s4; aa[3,4]:=s7;
writeln(f2,' Матрица коэффициентов системы линейных уравнений');
writeln(f2);
for i:=1 to n do
begin
for j:=1 to n+1 do
write(f2,aa[i,j]:10);
writeln(f2);
end;
writeln(f2);
{ Решение системы линейных уравнений}
for s:=1 to n do
begin
for j:=s+1 to n+1 do
begin
aa[s,j]:=aa[s,j]/aa[s,s];
for i:=s+1 to n do
aa[i,j]:=aa[i,j]-aa[i,s]*aa[s,j];
end;
end;
a[n+1]:=0.0;
for i:=n downto 1 do
begin
as:=0.0;
for k:=i to n do
as:=as+aa[i,k+1]*a[k+1];
a[i]:=aa[i,n+1]-as;
end;
writeln(f2,' Значения коэффициентов параболической аппроксимации');
writeln(f2);
for i:=1 to n do
writeln(f2,' a',i-1,'=',a[i]:11:5);
writeln(f2);
{ Расчёт теплоёмкости циклопропана по аппроксимирующему уравнению}