Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
02.05.2014
Размер:
2.7 Кб
Скачать
Program Metod_Nuton_Rafson;

Uses Crt;
Const a=3;b=-1.4;c=0.09;d=1.3;e=0.0003;del=0.09;
Var
k:Integer;
Dx1,Dx2,Dx1x1,Dx1x2,Dx2x2,Dx2x1,Opr,OprX1,OprX2,p1,p2,p,al:Real;
X: Array [0..1,1..2] of Real;

Function DefX1(X1,X2:real):real;
Begin
DefX1:=A+2*C*X1*exp(C*sqr(X1)+D*sqr(X2));
End;

Function DefX2(X1,X2:Real):Real;
Begin
DefX2:=B+2*D*X2*exp(C*sqr(X1)+D*sqr(X2));
End;

Function DefX1X1(X1,X2:real):real;
Begin
DefX1X1:=2*C*exp(C*sqr(X1)+D*sqr(X2))*(1+2*C*sqr(x1));
End;

Function DefX1X2(X1,X2:real):real;
Begin
DefX1X2:=4*C*D*X1*X2*exp(C*sqr(X1)+D*sqr(X2));
End;

Function DefX2X1(X1,X2:real):real;
Begin
DefX2X1:=4*C*d*X1*X2*exp(C*sqr(X1)+D*sqr(X2));
End;

Function DefX2X2(X1,X2:real):real;
Begin
DefX2X2:=2*D*exp(C*sqr(X1)+D*sqr(X2))*(1+2*D*sqr(x2));
End;

Function Fun(X1,X2:Real):Real;
Begin
Fun:=A*X1+B*X2+exp(C*sqr(X1)+D*sqr(X2));
End;

label a1,a2,a3,a4,a5,a6;

BEGIN

a1:
ClrScr;
WriteLn('Metod_Nuton_Rafson');
Writeln('X[0,1]:=0;X[0,2]:=0 ');
X[0,1]:=0;
X[0,2]:=0;
Writeln('Eps:=0.0003');
k:=5;
al:=1;

DX1:=DefX1(X[0,1],X[0,2]);
DX2:=DefX2(X[0,1],X[0,2]);
DX1X1:=DefX1X1(X[0,1],X[0,2]);
DX1X2:=DefX1X2(X[0,1],X[0,2]);
DX2X1:=DefX2X1(X[0,1],X[0,2]);
DX2X2:=DefX2X2(X[0,1],X[0,2]);

a2:
Opr:=DX1X1*DX2X2-DX1X2*DX2X1;
p1:=(DX2X2*DX1-DX1X2*DX2)/Opr;
p2:=(-DX2X1*DX1+DX1X1*DX2)/Opr;

a3:
if (Fun(X[0,1]-al*p1,X[0,2]-al*p2)-Fun(X[0,1],X[0,2]))<(-del*al*(DX1*p1+DX2*p2)) then goto a4
else begin al:=al/2;goto a3;End;

a4:
X[1,1]:=X[0,1]-al*p1;
X[1,2]:=X[0,2]-al*p2;

a5:
DX1:=DefX1(X[1,1],X[1,2]);
DX2:=DefX2(X[1,1],X[1,2]);
DX1X1:=DefX1X1(X[1,1],X[1,2]);
DX1X2:=DefX1X2(X[1,1],X[1,2]);
DX2X1:=DefX2X1(X[1,1],X[1,2]);
DX2X2:=DefX2X2(X[1,1],X[1,2]);

a6:
p:=sqrt(sqr(DX1)+sqr(DX2));
if p>e then
Begin
X[0,1]:=X[1,1];X[0,2]:=X[1,2];
k:=k+5;Goto a2;
End
Else
Begin
WriteLn;
WriteLn('Xmin[0,1]:=',X[1,1]);
WriteLn('Xmin[0,2]:=',X[1,2]);
WriteLn('Ymin:=',Fun(X[1,1],X[1,2]));
WriteLn('Chislo iteraciy:=',k);
End;
ReadLn;
End.
Соседние файлы в папке Лабораторная работа №3