Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
02.05.2014
Размер:
1.98 Кб
Скачать
program nutrafopt;
uses crt;
var n,m,i:integer;
q,y,a,b,a1,a2,yk,ymin,xmin,d,e,x1,x2,p_1,p_2:real;

function f(var x1,x2:real):real;
begin
f:=x1-1.2*x2+exp(0.01*x1*x1+1.1*x2*x2);
end;

function p1(var x1,x2:real):real;
begin
p1:=1+0.02*x1*exp(0.01*x1*x1+1.1*x2*x2);
end;

function p2(var x1,x2:real):real;
begin
p2:=-1.2+2.2*x2*exp(0.01*x1*x1+1.1*x2*x2);
end;

function pp1(var x1,x2:real):real;
begin
pp1:=0.02*exp(0.01*x1*x1+1.1*x2*x2)*(0.02*x1*x1+1);
end;

function pp2(var x1,x2:real):real;
begin
pp2:=2.2*exp(0.01*x1*x1+1.1*x2*x2)*(2.2*x2*x2+1);
end;

function fa1(var x1,p_1,a1:real):real;
begin
fa1:=x1-a1*p_1;
end;

function fa2(var x2,p_2,a2:real):real;
begin
fa2:=x2-a2*p_2;
end;

begin
clrscr;
write('vvedite nachalnoe priblisenie Xo1 '); readln(x1);
write('vvedite nachalnoe priblisenie Xo2 '); readln(x2);
write('vvedite uslovie ostanova e '); readln(e);
repeat
p_1:=p1(x1,x2)/pp1(x1,x2);
p_2:=p2(x1,x2)/pp2(x1,x2);

a:=0;
b:=1;
n:=35;
m:=3;
a1:=(a+b)/2;
yk:=fa1(x1,p_1,a1);
ymin:=999999;
repeat
m:=m-1;
for i:=1 to n do
begin
a1:=a+i*(b-a)/(n+1);
if fa1(x1,p_1,a1)<ymin then
begin
ymin:=fa1(x1,p_1,a1);
xmin:=a1;
end;
end;
a1:=xmin;
yk:=ymin;
d:=b-a;
a:=a1-d/(n+1);
b:=a1+d/(n+1);
until m=0;
a:=0;
b:=1;
n:=35;
m:=3;
a2:=(a+b)/2;
yk:=fa2(x2,p_2,a2);
ymin:=999999;
repeat
m:=m-1;
for i:=1 to n do
begin
a2:=a+i*(b-a)/(n+1);
if fa2(x2,p_2,a2)<ymin then
begin
ymin:=fa2(x2,p_2,a2);
xmin:=a2;
end;
end;
a2:=xmin;
yk:=ymin;
d:=b-a;
a:=a2-d/(n+1);
b:=a2+d/(n+1);
until m=0;
x1:=x1-a1*p_1;
x2:=x2-a2*p_2;
writeln('x1= ',x1:5:25,' x2= ',x2:5:25);
until ((abs(p1(x1,x2))<e)or(abs(p1(x1,x2))=e))or((abs(p2(x1,x2))<e)or(abs(p2(x1,x2))=e));
y:=f(x1,x2);
writeln('');writeln('');
writeln('x1= ',x1:20:15);
writeln('');
writeln('x2= ',x2:20:15);
writeln('');
writeln('y= ',y:20:15);

readkey;
end.
Соседние файлы в папке 3.в