Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
09.12.2013
Размер:
2.74 Кб
Скачать
program Max_Paxa;
uses crt;
const a=0.5; b=6; h=0.5;
var y,fi,Uisp,Upro,Umod,yisp,ypro,ymod:array[0..100]of real;
i,n :integer;
f1: text;
function f(x,y:real):real;
begin
f:=(3*y*y-x*x)/(2*y*x);
end;

begin
clrscr;
n:=round((b-a)/h);
y[0]:=0.61237;
y[1]:=sqrt(a+h+1)*(a+h);
for i:=0 to 11 do
begin
y[i]:=sqrt(a+i*h+1)*(a+i*h);
end;
ypro[0]:=0.61237;
Upro[0]:=(3*sqr(ypro[0])-sqr(a+i*h))/(2*(a+i*h)*ypro[0]);
ymod[0]:=0.61237;
Umod[0]:=(3*sqr(ymod[0])-sqr(a+3*i*h))/(2*(a+3*i*h)*ymod[0]);
yisp[0]:=0.61237;
Uisp[0]:=(3*sqr(yisp[0])-sqr(a+3*i*h))/(2*(a+3*i*h)*yisp[0]);

for i:=0 to 3 do
begin {modif metod}
Umod[i]:=f(a+(i*h)+h/2 , ymod[i]+h/2*f(a+(i*h),ymod[i]));
ymod[i+1]:=ymod[i]+h*Umod[i];
end;
for i:=0 to 3 do
begin {prostoy metod}
Upro[i]:=f(a+i*h, ypro[i]);
ypro[i+1]:=ypro[i]+h*Upro[i];
end;
for i:=0 to 2 do
begin {ispravl metod}
Uisp[i]:=0.5*(f(a+i*h,yisp[i])+f(a+i*h+h , yisp[i]+h*f(a+i*h,yisp[i])));
yisp[i+1]:=yisp[i]+h*Uisp[i];
end;
{ЊЁ«­}
{Prostoy}
for i:=3 to 11 do
begin
{1 miln}ypro[i+1]:=ypro[i-3]+4*(h/3)*(2*Upro[i-2]-Upro[i-1]+2*Upro[i]);
Upro[i+1]:=f(a+(i+1)*h,ypro[i+1]);
{2 miln}ypro[i+1]:=ypro[i-1]+h/3*(Upro[i+1]+4*Upro[i]+Upro[i-1]);
end;
{Modif}
for i:=3 to 11 do
begin
{1 miln}ymod[i+1]:=ymod[i-3]+4*h/3*(2*Umod[i-2]-Umod[i-1]+2*Umod[i]);
Umod[i+1]:=f(a+i*h+h/2,ymod[i]+h/2*Umod[i]);
{2 miln}ymod[i+1]:=ymod[i-1]+h/3*(Umod[i+1]+4*Umod[i]+Umod[i-1]);
end;
{ispravl}
for i:=3 to 11 do
begin
{1 miln}yisp[i+1]:=yisp[i-3]+4*h/3*(2*Uisp[i-2]-Uisp[i-1]+2*Uisp[i]);
Uisp[i+1]:=f(a+(i+1)*h,yisp[i+1]);{(f(a+i*h,yisp[i])+f(a+(i+1)*h,yisp[i]+h*f(a+i*h,yisp[i])));
{2 miln}yisp[i+1]:=yisp[i-1]+h/3*(Uisp[i+1]+4*Uisp[i]+Uisp[i-1]);
end;

writeln(' ЊҐв®¤л ќ©«Ґа  ');
writeln;
writeln(' Ј x Џа®бв®© €бЇа ў«. Њ®¤ЁдЁж. ’®з­®Ґ');
for i:=0 to 2 do begin
write(i:2,' ',a+i*h:2:2,' ',ypro[i]:7:5); write(' ',yisp[i]:7:5);
write(' ',ymod[i]:7:5);writeln(' ',y[i]:7:5); end;
writeln;
writeln(' ЊҐв®¤ ЊЁ«­  ');
writeln;
for i:=3 to 8 do
begin
write(i:2,' ',a+i*h:2:2,' ',ypro[i]:7:5,' ',yisp[i]:7:5);
write(' ',ymod[i]:7:5); writeln(' ', y[i]:7:5);
end;
for i:=9 to 11 do
begin
write(i:2,' ',a+i*h:2:2,' ',ypro[i]:7:5,' ',yisp[i]:7:5);
write(' ',ymod[i]:7:5); writeln(' ', y[i]:7:5);
end;
readln
end.

Соседние файлы в папке выч методы