Курс лекций по основам алгоритмизации и программирования задач машиностроения. Кравченко Д.В. - 127 стр.

UptoLike

Составители: 

Рубрика: 

125
х
1
а
0
= b
0
– x
2
= 0,382d
0
;
b
0
– x
1
= x
2
– a
0
= 0,618d
0
;
d
0
= b
0
– a
0
.
После первого шага оптимизации получается новый интервал неопреде-
ленности отрезок [a
1
, b
1
] (см. рис. 7.5). Можно показать, что точка х
3
делит
этот отрезок в требуемом отношении, при этом
х
3
а
1
= 0,382d
1
; d
1
= b
0
– a
1
.
Для этого проведем преобразования:
b
1
– x
2
= x
3
– x
1
= (b
0
– a
0
) – (x
1
– a
0
) – (b
0
– x
2
) = d
0
– 0,382d
0
– 0,382d
0
= 0,236d
0
;
d
1
= b
1
– a
1
= 0,618d
0
;
x
3
– a
1
= 0,236(d
1
/ 0,618) = 0,382d
1
.
Вторая точка деления х
4
выбирается на таком же расстоянии от левой гра-
ницы отрезка, то есть х
4
а
1
= 0,382d
1
. И снова интервал неопределенности
уменьшается до размера
d
2
= b
2
– a
1
= x
2
– x
1
= 0,618d
1
= 0,618
2
d
0
.
Используя полученные соотношения, можно записать координаты точек
деления у и z отрезка [a
k
, b
k
] на (k + 1)-м шаге оптимизации (у < z):
.b618,0382,0z
;b382,0618,0y
kk1k
kk1k
+α=
+
α
+
+
+
(96)
При этом длина интервала неопределенности равна
d
k
= b
k
– a
k
= 0,618
k
d
0
. (97)
Процесс оптимизации заканчивается при d
k
< ε. При этом проектный пара-
метр оптимизации составляет a
k
< x < b
k
. Можно в качестве оптимального зна-
чения принять х = а
k
(или х = b
k
, или х = (а
k
+ b
k
) / 2 и т. п.).
На рисунке 7.6 представлен алгоритм процесса одномерной оптимизации
целевой функции методом золотого сечения. Здесь y, z точки деления отрезка
[a, b], причем y < z. В результате выполнения алгоритма выдается оптимальное
значение проектного параметра х, в качестве которого принимается середина
последнего интервала неопределенности.
Пример 25. Составить программу для определения минимума целевой
функции y=x
2
на отрезке [a; b] методом золотого сечения
Program Gold;
uses crt;
label 1,2;
var a,a0,a1,b,b0,b1,e,y,z,x:real;
begin
clrscr;
writeln(‘
Программа поиска минимума функции Y=x^2’);
writeln(‘Методом золотого сечения’);
writeln;