Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
02.05.2014
Размер:
2.1 Кб
Скачать
program nutradrob;
uses crt, graph;
var r,o,k,n,m,i,dr,md:integer;
xx1,xx2,sig,ef1,ef2,ef,g1,g2,g,p_1,p_2,q,y,a,b,a1,a2,yk,ymin,xmin,d,e,x1,x2:real;

function realst(r:real; dig,deg:integer):string;
var Buf:string[20];
begin
str(r:dig:deg,buf);
realst:=Buf;
end;

function f(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;

begin
clrscr;
write('vvedite nachalnoe priblisenie Xo1 '); readln(x1);
write('vvedite nachalnoe priblisenie Xo2 '); readln(x2);
write('vvedite uslovie ostanova e '); readln(e);
k:=0; r:=0; sig:=0.0000001;
dr:=detect;
initgraph(dr,md,'');
setGraphmode(md);
line(399,0,399,470);
line(0,200,640,200);
outtextxy(620,210,'x1');
outtextxy(410,455,'x2');
setcolor(black);
lineto(410,250);
lineto(round(x1*20+399),round(x2*50+200));
setcolor(white);
g1:=p1(x1,x2);
g2:=p2(x1,x2);
ef1:=pp1(x1,x2);
ef2:=pp2(x1,x2);
r:=1; k:=0;
repeat
a:=2;
p_1:=-g1/ef1;
p_2:=-g2/ef2;
repeat
a:=a/2;
xx1:=x1+a*p_1;
xx2:=x2+a*p_2;
k:=k+1;
until ((f(xx1,xx2)-f(x1,x2))<(-sig*a))or((f(xx1,xx2)-f(x1,x2))=(-sig*a));
x1:=x1+a*p_1;
x2:=x2+a*p_2;
k:=k+1;
lineto(round(x1*20+399),round(x2*50)+200);
g1:=p1(x1,x2);
g2:=p2(x1,x2);
ef1:=pp1(x1,x2);
ef2:=pp2(x1,x2);
r:=r+1;
until (abs(g1)<e)or(abs(g2)<e)or(abs(g1)=e)or(abs(g2)=e);
y:=f(x1,x2);
outtextxy(20,20,'tochka minimuma imeet koordinati: ');
outtextxy(20,30,'x1= ' + realst(x1,10,8));
outtextxy(20,40,'x2= ' + realst(x2,10,10));
outtextxy(20,50,' y= ' + realst(f(x1,x2),11,9));
outtextxy(20,60,'chislo vichislenij koordinat x1,x2 ravno '+realst(k,5,0));
outtextxy(20,70,'chislo vichislenij vtorix proisvodnix ravno '+realst(r,2,0));
readkey;
closegraph;
end.
Соседние файлы в папке №3