Результаты тестирования различных методов
Ниже приведены таблицы с результатами работы программы для двух функций, с различными стартовыми точками и точностями вычисления.
Точность: |
|
0.0001 |
|
0.00001 |
|
0.000001 |
X0=(1,1) |
К |
X* |
K |
X* |
K |
X* |
Метод Свенна |
6 |
[(-0.26,-0.89); (0.7,0.55)] |
6 |
[(-0.26,-0.89); (0.7,0.55)] |
6 |
[(-0.26,-0.89); (0.7,0.55)] |
Метод Золотого сечения 2 |
22 |
(0.255816; -0.116276) |
33 |
(-0.255813; -0.11628) |
31 |
(0.255814; -0.116279) |
Метод Свенна 4 |
9 |
[(0.49,0.235); (-0.022,-0.533)] |
9 |
[(0.49,0.235); (-0.022,-0.533)] |
9 |
[(0.49,0.235); (-0.022,-0.533)] |
Метод Дэвидона |
1 |
(0.255814; -0.116279) |
1 |
(0.255814; -0.116279) |
1 |
(0.255814; -0.116279) |
Выводы:
В данной работе был использован метод Свенна1 и Свенна4 получения начального интервала локализации минимума. Также сравниваются 2 метода линейный и аппроксимационный для функции двух переменных. Поиск ведется в пространстве, начиная с заданной начальной точки x0 по направлению p. Сравнивая методы нужно отметить высокую эффективность метода Дэвидона кубической аппроксимации. Как видно из сравнительной таблицы данный метод находит точный минимум всего за 1 итерацию при разных точностях, в отличие от линейного метода золотого сечения. При изменении начальной точки алгоритм Дэвидона выполняет задачу за 1 итерацию, когда методу ЗС2 требуется задание точности и несколько десятков итераций для нахождения точного минимума. Поскольку при другой начальной точке минимум будет другим, то в таблице не приведено сравнение результатов при другой начальной точке. Также для проверки были умышленно искусственно расширены границы начального интервала, для проверки метода. Результат не изменился 1 итерация и точный результат. Это можно связать с тем, что аппроксимация производится по более точному полиному 3-го порядка. И вероятно построенный полином очень близок к исследуемой функции, поэтому при первом же вычислении аппроксимирующего минимума выдается точный результат.
Ответы на контрольные вопросы:
-
Поясните организацию линейного поиска на основе методов золотого сечения, Фибоначчи и Пауэлла. В методах ЗС и Фибоначчи ТИЛ делится в отношении золотых чисел и соседних чисел последовательности Фибоначчи пока соседние точки не будут удовлетворять КОП. В методе Пауэлла в середине интервала берется точка предполагаемого минимума, которая вычисляется исходя из свойств аппроксимирующего полинома, который строится по известным данным интервала и значений функции в конкретных точках. Эта точка как бы предполагаемый минимум. Относительно этой точки сокращается ТИЛ пока не будет удовлетворен КОП.
-
Найти производную в точке x0=(1,0)t по направлению p1=(1,1)t для функции f(x) = x12 - x1x2 + 2x22 - 2x1. Градиент G= (2x1-x2-2 , 4*x2-x1)t G(x0)= (0,-1)t
F’(x0,p) = G t *p = (2x1-x2-2 , 4*x2-x1)*(1,1) t = (0,-1)* (1,1)t =0-1=-1
-
Как изменится процедура минимизации методами Больцано, дихотомии, ДСК, Дэвидона при переходе от поиска на числовой прямой к поиску на плоскости R2? F(x) -> F(x1,x2)
Числа a,b,λ,µ -> векторы a,b, λ,µ или смещения относительно начальной точки α b αa … КОП: |b-a|<ε -> ||a-b||<ε модуль заменится нормой
Y’(r) -> Y’(r,p) производная станет по направлению.
xk+1=xk+hk, hk=2hk-1 -> xk+1=xk+hk*p, hk=2hk-1 шаг на h станет шагом на h в направлении p.
-
Что является направлением наискорейшего спуска в точке x = (1,1)t для целевой функции y(x) = x12 + 2x22 Им является вектор антиградиент в точке x = (1,1)t G= (2*x1,4*x2)t B точке х G= (2,4) t антиградиент -G= (-2,-4) t
-
Приведите 2 способа аналитического решения задачи для Вашего варианта задания. Простейший метод поиска минимума функции: Y’=0; Так как у нас поиск по направлению, то и производная по направлению Y’(x,p)=0. Y=x12 + 3x22 + 2x1x2 x0= (1,1)t , p= (2,3)t Градиент G(x)= (2x1+2x2,6x2+2x1)t
Y’(x,p) = (2x1+2x2,6x2+2x1)*(2,3) t =4x1+4x2+18x2+6x1=10x1+22x2=0
10x1+22x2=0
Но x1=1+2α, а x2=1+3 α, т.к. x1 и x2 лежат на направлении p. Таким образом
10(1+2 α)+22(1+3 α)=0
10+20 α+22+66 α=0
32+86 α=0
α= -32/86
α=-0,372093023
x1=1+2 α=0.255813954
x2=1+3 α= -0.116279067
X=(0.255813954, -0.116279067);
-
Найдите минимум y(x) = x12 - x1x2 + 2x22 - 2x1 + ex1+x2, двигаясь из точки x = (0,0) в направлении наискорейшего спуска. Градиент G(x)= (2x1-x2-2+ex1+x2,4x2-x1+ex1+x2)t G(x0)= (-1,1)t антиградиент -G= (1,-1)t
Y’(x,p) = (2x1-x2-2+ex1+x2,4x2-x1+ex1+x2)* (1,-1)t = 3x1 -5x2-2=0
-3x1+5x2+2=0
x1= α
x2= - α
3 α+5 α-2=0
8 α-2=0
α= 0.25
x1= 0.25
x2= -0.25
X=(0.25, -0.25)t
-
Найти шаг 1, доставляющий минимум в точку x2 = x1 + 1p для функции y(x)= x12 + 2x22 и направления антиградиента в точке x0 =(1,0)t
Градиент G=(2x1,4x2)t G(x0) =(2,0)t антиградиент –G = (-2,0)t
Y’(x,p) = (2x1,4x2)*(-2,0)t = -4x1=0
-4x1=0
x1=1-2
-4(1-2)=0
=0.5