Скачиваний:
25
Добавлен:
09.12.2013
Размер:
1.77 Кб
Скачать
program laba3;
{y'=y/(x*x)+2/(x*x*y),y(1)=0}
uses crt;
const
h=0.1;
var
f1:array[4..20] of real;
f,y:array [0..20] of real;
h1,f0,zt,zp,z0,w,x0,y0,x:real;
i,j,k,a,b:integer;
PROCEDURE MILN;
BEGIN
WRITELN('MILN');
x:=x-h;
for j:=0 to 8 do begin
y[j+4]:=y[j]+4*h*(2*f[j+1]-f[j+2]+2*f[j+3])/3;
f1[j+4]:=y[j+4]/(x*x)+2/(x*x*y[j+4]);
y[j+4]:=y[j+2]+h*(f[j+4]+4*f[j+3]+f[j+2])/3;
x:=x+h;
f[j+4]:=y[j+4]/(x*x)+2/(x*x*y[j+4]);
gotoxy(a,b+j);
writeln('X=',x:3:5,' and Y=',y[j+4]:3:5);
end;END;
Begin
clrscr;
writeln('X0=...');
readln(x0);
writeln('Y0=...');
readln(y0);
writeln('SIMPLY EILER              MODIFIC.EILER              ISPRAVL.EILER');
{simple eiler}
x:=x0;y[0]:=y0;f[0]:=y[0]/(x*x)+2/(x*x*y[0]);
for i:=0 to 3 do begin
WRITELN('X=',x:3:5,' and Y=',y[i]:3:5);
y[i+1]:=y[i]+h*f[i];
x:=x+h;
f[i+1]:=y[i+1]/(x*x)+2/(x*x*y[i+1]);end;
a:=0;b:=0;
MILN;
{modific eiler}
X:=X0;Y[0]:=Y0;f[0]:=y[0]/(x*x)+2/(x*x*y[0]);
for i:=0 to 3 do begin
gotoxy(27,6+i);
WRITELN('X=',x:3:5,' and Y=',y[i]:3:5);
y[i+1]:=y[i]+h*((y[i]+h*f[i])/(x*x*h*h)+2/(x*x*h*h*(y[i]+h*f[i])));
x:=x+h;
f[i+1]:=y[i+1]/(x*x)+2/(x*x*y[i+1]);
end;a:=27;b:=11;
miln;
{ispravl.eiler}
X:=X0;Y[0]:=Y0;
for i:=0 to 3 do begin
gotoxy(54,6+i);
WRITELN('X=',x:3:5,' and Y=',y[i]:3:5);
y[i+1]:=y[i]+h*((y[i]+h*f[i]/2)/sqr(x+h/2)+2/(sqr(x+h/2)*(y[i]+h*f[i]/2)));
x:=x+h;f[i+1]:=y[i+1]/(x*x)+2/(x*x*y[i+1]);
end;a:=54;b:=11;
miln;
{proverka w}
begin
h1:=0.1;x:=2;z0:=1.8757711;
f0:=z0/(x*x)+2/(x*x*z0);
zt:=sqrt(14.9*exp(-2/(x+h1))-2);
for k:=1 to 10 do begin
w:=k/10;
zp:=z0+h1*((1-w)*f0+w*((z0+(h1*f0)/(2*w))/sqr(x+h1/(2*w))+2/((z0+(h1*f0)/(2*w))*sqr(x+h1/(2*w)))));
if abs(zp-zt)<0.01
then writeln('THE BEST W=',w);end;end;
readln;
end.





Соседние файлы в папке Мишины