Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
02.05.2014
Размер:
2.47 Кб
Скачать
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;
var k,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:double;
begin
x[1,0]:=1; x[2,0]:=0; E2:=0.0004;
matr1[1]:=F1(x[1,0],x[2,0]);
matr1[2]:=F2(x[1,0],x[2,0]);
k:=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;
x[1,k+1]:=x[1,k]-P1;
x[2,k+1]:=x[2,k]-P2;
label3.Caption:=label3.Caption+'\\'+FloatToStr(x[1,k+1]);
label5.Caption:=label5.Caption+'\\'+FloatToStr(x[2,k+1]);
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(SQR(matr1[1])+SQR(matr1[2]));
k:=k+1;
//label1.Caption:=label1.Caption+'\\'+FloatToStr(matr1[1]);
until dd<=E2;
x1:=x[1,k];
x2:=x[2,k];
y:=F(x1,x2);
N:=N1+N2;
Label11.Caption:='x1='+FloatToSTr(x1)+' x2='+FloatToSTr(x2)
+' y='+FloatToSTr(y);
Label8.Caption:='N=N1+N2='+IntToSTR(N1)+'+'+IntToSTR(N2)+'='+IntToSTR(N)+
' k='+IntToSTR(k);
end;

end.
Соседние файлы в папке N'uton
  • #
    02.05.2014188 б12Project1.dpr
  • #
    02.05.2014876 б12Project1.res
  • #
    02.05.20147.06 Кб12Unit1.dcu
  • #
    02.05.201451 б12Unit1.ddp
  • #
    02.05.20141.7 Кб12Unit1.dfm
  • #
    02.05.20142.47 Кб13Unit1.pas
  • #
    02.05.201451 б12Unit1.~ddp
  • #
    02.05.20141.7 Кб12Unit1.~dfm
  • #
    02.05.20142.48 Кб12Unit1.~pas