Помогите разобраться в решении по вычеслительной математике.
В приложении код, хотелось бы понять как он работает. Т.е. не как работает программа (readln, writeln и прочее понятно и так), а именно само решение, связанное непосредственно с математикой. Т.е. функции, формулы, ну Вы меня поняли :-)
Задание звучало так:
Заранее спасибо!
Приложение:
Program Runge;
Uses Crt;
const
a = 0;
b = 1;
e = 0.0000000000001;
Var
ff:text;
xn,xk,yn,h,k0,k1,k2,k3:real;
i,n:integer;
x,y:array [1..20] of real;
dx, x1, y1, integ : real;
n1 : integer;
Function f(x,y:real):real;
begin
f:=cos(6*x+y)+7*(x-y);
end;
Function f1(x,t: real): real;
begin
f1 := x*t*t;
end;
Begin
assign(ff,'1.txt');
rewrite(ff);
ClrScr;
Writeln(' Rewenie diff yravnenijaя ');
Writeln(' dy/dx=cos(6*x+y)+7*(x-y) metodom Rynge-Kytta 2-ogo porjadka');
xn:=0; yn:=1; xk:=1; h:=0.1;
x[1]:=xn; y[1]:=yn; i:=1;
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+1/2*h,y[i]+1/2*k0); {beta 21}
y[i+1]:=y[i]+(0*k0+k1);
x[i+1]:=x[i]+h;
i:=i+1;
until x[i]>xk;
n:=i;
Writeln('----------------------');
Writeln('| # | x | y |');
Writeln('----------------------');
for i:= 1 to n do
begin
Writeln('|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');
Writeln(ff,'|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');
end;
Writeln('----------------------',n);
Writeln(ff,'----------------------',n);
Readln;
integ := y[n]*y[n];
n1 := 1;
y1 := 0;
while integ - y1 > e do
begin
n1 := n1 + 1;
dx := (b - a) / n1;
y1 := 0;
x1 := a + dx;
while x1 < b do
begin
y1 := y1 + f1(x1,y[n]);
x1 := x1 + dx;
end;
y1 :=y1 + ( + (f1(a,y[n]) + f1(b,y[n])) / 2) * dx;
end;
writeln ('Kolichestvo otrezkov razbieniya: ',n1);
writeln ('Priblijennoe znachenie integrala: ',y1:7:6);
writeln ('Tochnoe znachenie integrala : ',integ:7:6);
writeln ('Otnositelnaya pogreshnost vichislenya : ',(integ - y1));
writeln (ff,'Kolichestvo otrezkov razbieniya: ',n1);
writeln (ff,'Priblijennoe znachenie integrala: ',y1:7:6);
writeln (ff,'Tochnoe znachenie integrala : ',integ:7:6);
writeln (ff,'Otnositelnaya pogreshnost vichislenya : ',(integ - y1));
close(ff);
end.