last_version
.pdfm=fabs(f1d(x0,y0,a,si,co,f)-f1d(x0,y0,b,si,co,f)); a=p1;
}
if (f1d(x0,y0,p1,si,co,f)<f1d(x0,y0,p2,si,co,f))
{
m=fabs(f1d(x0,y0,b,si,co,f)-f1d(x0,y0,p2,si,co,f)); b=p2;
}
k++;
}
pmin=(a+b)/2.;
x2=x0+pmin*co;
y2=y0+pmin*si;
x01=x0;
y01=y0;
x0=x2;
y0=y2;
z0[0]=x2;
z0[1]=y2;
fprintf(file,"\%e \%e\\n", x0, y0);
}
printf("x0=\%f y0=\%f ",x0,y0);
fclose(file);
scanf("c"); return 0;
}
11
Оценка овражности в окресности точки минимума. Линии уровня, траектория поиска.
Заданной функции
f(x; y) = 100(x y2)2 + 10(1 y2)2
соответствует поверхность, изображённая на рис.1. Линии уровня и траектория поиска точки минимума из начальной точки ( 3; 2) с точностью e = 0:001 выглядит так, как показано на рис.2.
Представленная выше программа при начальной точке (3; 1) и e = 0:001 выдала точку (1:077; 1:04). Оценим овражность в окресности точки минимума, для чего найдём матрицу Гёссе функции f(x; y) в точке (xmin; ymin):
r2f(xmin; ymin) = A
|
|
|
|
|
|
f00 |
f00 |
|
|
|
|
|
|
|
|
|
|
|
|
fyx00 |
fyy00 |
|
|
|
|
||
|
|
|
A = |
|
xx |
xy |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
fxx00 = 200; fxy00 |
= fyx00 |
= 400y; |
fyy00 |
= 400x + 1320y2 40 |
|||||||||
|
|
|
|
416:0 |
956:9 |
|
|
|
|||||
|
|
A = |
|
|
200:0 |
416:0 |
|
|
|
|
|||
|
|
|
|
|
jA Ej = 0 |
|
|
|
|
||||
j |
|
E |
j |
= |
|
|
416:0 |
956:9 |
|
||||
A |
|
|
|
200:0 |
|
416:0 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(200 )(956:9 ) 4162 = 0
2 1156:9 + 18326:4 = 0
1 = 1140:8; 2 = 32:13
Показатель овражности:
k = 1 = 1140:8 = 35:52 32:13
12
Рис. 1: Поверхность.
13
10 |
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
−2 |
|
|
|
|
|
|
|
|
|
|
−4 |
|
|
|
|
|
|
|
|
|
|
−6 |
|
|
|
|
|
|
|
|
|
|
−8 |
|
|
|
|
|
|
|
|
|
|
−10 |
|
|
|
|
|
|
|
|
|
|
−10 |
−8 |
−6 |
−4 |
−2 |
0 |
2 |
4 |
6 |
8 |
10 |
|
|
Рис. 2: Линии уровня и траектория поиска. |
14