Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3laba

.pas
Скачиваний:
21
Добавлен:
09.12.2013
Размер:
3 Кб
Скачать
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.

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