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

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label11: TLabel;
Button1: TButton;
Label8: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const A=25;
B=0.9;
C=0.35;
D=0.35;
function F(x1,x2:double):double;
begin
F:=a*x1+b*x2 + exp(c*x1*x1+d*x2*x2);
end;
function F1(x1,x2:double):double;
begin
F1:=a + exp(c*x1*x1+d*x2*x2)*2*C*x1;
end;
function F2(x1,x2:double):double;
begin
F2:=B + exp(c*x1*x1+d*x2*x2)*2*D*x2;
end;
function FF11(x1,x2:double):double;
begin
FF11:=exp(c*x1*x1+d*x2*x2)*2*C*x1*2*C*x1+exp(c*x1*x1+d*x2*x2)*2*C;
end;
function FF12(x1,x2:double):double;
begin
FF12:=exp(c*x1*x1+d*x2*x2)*2*C*x1*2*D*x2;
end;
function FF22(x1,x2:double):double;
begin
FF22:=exp(c*x1*x1+d*x2*x2)*2*D*x2*2*D*x2+exp(c*x1*x1+d*x2*x2)*2*D;
end;
label metka;
var k,N0,N1,N2,N:integer;
x:array [1..2, 0..300] of double;
matr:array[1..2,1..2] of double;
matr1:array[1..2] of double;
P1,P2,dd,E2,det,x1,x2,y,L,delta,fP:double;
begin
x[1,0]:=1; x[2,0]:=0; E2:=0.0004;
delta:=0.05;
matr1[1]:=F1(x[1,0],x[2,0]);
matr1[2]:=F2(x[1,0],x[2,0]);
k:=0; L:=1; N0:=0; N1:=2; N2:=0;
repeat
matr[1,1]:=FF11(x[1,k],x[2,k]);
matr[1,2]:=FF12(x[1,k],x[2,k]);
matr[2,1]:=matr[1,2];
matr[2,2]:=FF22(x[1,k],x[2,k]);
N2:=N2+3;
det:=matr[1,1]*matr[2,2]+matr[2,1]*matr[1,2];
P1:=(matr[1,2]*matr1[2]+matr[2,2]*matr1[1])/det;
P2:=(matr[1,1]*matr1[2]+matr[2,1]*matr1[1])/det;
y:=F(x[1,k],x[2,k]);
N0:=N0+1;
fP:=matr1[1]*P1+matr1[2]*P2;
metka:
if (F(x[1,k]-L*P1, x[2,k]-L*P2)-y)>(-delta*L*fP) then
begin
L:=L/2;
N0:=N0+1;
goto metka;
end;
x[1,k+1]:=x[1,k]-L*P1;
x[2,k+1]:=x[2,k]-L*P2;
matr1[1]:=F1(x[1,k+1],x[2,k+1]);
matr1[2]:=F2(x[1,k+1],x[2,k+1]);
N1:=N1+2;
dd:=SQRT(matr1[1]*matr1[1]+matr1[2]*matr1[2]);
k:=k+1;
until (dd<=E2);
x1:=x[1,k];
x2:=x[2,k];
y:=F(x1,x2);
N:=N0+N1+N2;
Label11.Caption:='x1='+FloatToSTr(x1)+' x2='+FloatToSTr(x2)
+' y='+FloatToSTr(y);
Label8.Caption:='N=N0+N1+N2='+IntToSTR(N0)+'+'+IntToSTR(N1)+'+'+IntToSTR(N2)+'='+IntToSTR(N)
+' k='+IntToStr(k);
end;

end.
Соседние файлы в папке N'uton s drob h
  • #
    02.05.2014188 б13Project1.dpr
  • #
    02.05.2014876 б13Project1.res
  • #
    02.05.20147.03 Кб13Unit1.dcu
  • #
    02.05.201451 б13Unit1.ddp
  • #
    02.05.20141.7 Кб13Unit1.dfm
  • #
    02.05.20142.6 Кб13Unit1.pas
  • #
    02.05.201451 б13Unit1.~ddp
  • #
    02.05.20141.7 Кб13Unit1.~dfm
  • #
    02.05.20142.58 Кб13Unit1.~pas