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

diff13стр43

.pas
Скачиваний:
15
Добавлен:
09.12.2013
Размер:
3 Кб
Скачать
program lab3;
uses crt;

function FXY(X,Y:real):real;
begin
 FXY:=(Y*cos(Y/X)-X)/(X*cos(Y/X));
end;

function dF1(X1,Y1,X2,Y2:real):real;
begin
 dF1:=FXY(X1,Y1)-FXY(X2,Y2);
end;

function dF2(X1,Y1,X2,Y2,X3,Y3:real):real;
begin
 dF2:=FXY(X1,Y1)-2*FXY(X2,Y2)+FXY(X3,Y3);
end;

function dF3(X1,Y1,X2,Y2,X3,Y3,X4,Y4:real):real;
begin
 dF3:=FXY(X1,Y1)-3*FXY(X2,Y2)+3*FXY(X3,Y3)-FXY(X4,Y4);
end;

function Ytoch(X,Y0:real):real;
var Y,e,e0:real;
begin
 Y:=Y0-0.1;
 e:=10;
 repeat
  Y:=Y+0.001;
  e0:=e;
  e:=abs(1-x*exp(sin(Y/X)));
 until e>=e0;
 Ytoch:=Y-0.001;
end;

var X,Ypr,Yispr,Ymod,YApr,YAispr,YAmod,h:real;
    i,j,k:integer;
    X0,Ypr0,Yispr0,Ymod0:array[1..4] of real;

begin
 clrscr;
 write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® и Ј®ў: ');
 readln(k);
 h:=4/k;
 X:=1;
 Ypr:=0;
 Yispr:=0;
 Ymod:=0;

 writeln('‡­ зҐ­Ёп дг­ЄжЁЁ: ь(1-3) - Ї® ®¤­®и Ј®ўл¬ ¬Ґв®¤ ¬ ќ©«Ґа ;');
 writeln('                  ь(4-',k,') - Ї® ¬Ґв®¤г Ђ¤ ¬б ');
 writeln('ЪДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДї');
 writeln('і  ь і Џа®бв®© ќ©«Ґаa  і €бЇа ў«. ќ©«Ґаa і Њ®¤Ёд. ќ©«Ґаa   і ’®з­®Ґ §­ з.   і');
 writeln('ГДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДґ');

 for i:=0 to 3 do
 begin
  writeln('і',i:3,' і',Ypr:15:10,'  ','і',Yispr:15:10,'  ','і',Ymod:15:10,'  ','і',Ytoch(X,Ymod):15:10,' ','і');
  X0[i+1]:=X;
  Ypr0[i+1]:=Ypr;
  Yispr0[i+1]:=Yispr;
  Ymod0[i+1]:=Ymod;
  X:=X+h;
  Ypr:=Ypr+h*FXY(X,Ypr);
  Yispr:=Yispr+h/2*(FXY(X,Yispr)+FXY(X+h,Yispr+h*FXY(X,Yispr)));
  Ymod:=Ymod+h*FXY(X+h/2,Ymod+h/2*FXY(X,Ymod));
 end;

 writeln('ГДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДґ');

 repeat
  i:=i+1;

  YApr:=Ypr0[4]+h*(FXY(X0[4],Ypr0[4])+
  1/2*dF1(X0[4],Ypr0[4],X0[3],Ypr0[3])+
  5/12*dF2(X0[4],Ypr0[4],X0[3],Ypr0[3],X0[2],Ypr0[2])+
  3/8*dF3(X0[4],Ypr0[4],X0[3],Ypr0[3],X0[2],Ypr0[2],X0[1],Ypr0[1]));

  YAispr:=Yispr0[4]+h*(FXY(X0[4],Yispr0[4])+
  1/2*dF1(X0[4],Yispr0[4],X0[3],Yispr0[3])+
  5/12*dF2(X0[4],Yispr0[4],X0[3],Yispr0[3],X0[2],Yispr0[2])+
  3/8*dF3(X0[4],Yispr0[4],X0[3],Yispr0[3],X0[2],Yispr0[2],X0[1],Yispr0[1]));

  YAmod:=Ymod0[4]+h*(FXY(X0[4],Ymod0[4])+
  1/2*dF1(X0[4],Ymod0[4],X0[3],Ymod0[3])+
  5/12*dF2(X0[4],Ymod0[4],X0[3],Ymod0[3],X0[2],Ymod0[2])+
  3/8*dF3(X0[4],Ymod0[4],X0[3],Ymod0[3],X0[2],Ymod0[2],X0[1],Ymod0[1]));

  writeln('і',i:3,' і',YApr:15:10,'  ','і',YAispr:15:10,'  ','і',YAmod:15:10,'  ','і',Ytoch(X,YAmod):15:10,' ','і');

  for j:=1 to 3 do
  begin
   X0[j]:=X0[j+1];
   Ypr0[j]:=Ypr0[j+1];
   Yispr0[j]:=Yispr0[j+1];
   Ymod0[j]:=Ymod0[j+1];
  end;

  X0[4]:=X;
  Ypr0[4]:=YApr;
  Yispr0[4]:=YAispr;
  Ymod0[4]:=YAmod;

  X:=X+h;

  if (i=16) or ((i mod 24)=16) then
  begin
   write('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
   readkey;
   clrscr;
  end;

 until i=k;

 writeln('АДДДДБДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДЩ');
 readkey;
end.
Соседние файлы в предмете Вычислительные методы