- •Постановка задачи
- •Численные методы одномерной минимизации
- •График функции
- •Поиск точного значения точки максимума с использованием необходимого и достаточного условий
- •1. Метод равномерного поиска
- •2. Метод деления интервала пополам
- •3. Метод дихотомии
- •4. Метод золотого сечения
- •5. Метод Фибоначчи
- •6. Метод квадратичной интерполяции (метод Пауэлла)
- •Сводная таблица
6. Метод квадратичной интерполяции (метод Пауэлла)
Метод квадратичной интерполяции относится к последовательным стратегиям. Задается начальная точка и с помощью пробного шага находятся три точки так, чтобы они были как можно ближе к искомой точке минимума. В полученных точках вычисляются значения функции. Затем строится интерполяционный полином второй степени, проходящий через эти три точки. В качестве приближения точки минимума берется точка минимума полинома. Процесс поиска заканчивается, когда полученная точка отличается от наилучшей из трех опорных точек не более, чем на заданную величину.
Листинг программы:
x1=1;
delta=0.2;
eps1=0.003;
eps2=0.02;
f=@(x)5*x^2+1/x;
q=@(x,y)x^2-y^2;
w=@(x,y)x-y;
k=1;
i=0;
r=0;
while i~=1
if r~=100
x2=x1+delta;
f1=f(x1);
k=k+1;
f2=f(x2);
k=k+1;
if f1>f2
x3=x1+2*delta;
else
if f1<=f2
x3=x1-delta;
end;
end;
end;
f3=f(x3);
k=k+1;
q1=q(x2,x3);
q2=q(x3,x1);
q3=q(x1,x2);
w1=w(x2,x3);
w2=w(x3,x1);
w3=w(x1,x2);
r=0;
if f3<f2&&f3<f1
Fmin=f3;
xmin=x3;
else
if f1<f2&&f1<f3
Fmin=f1;
xmin=x1;
else
if f2<f3&&f2<f1
Fmin=f2;
xmin=x2;
end;
end;
end;
X=0.5*((q1*f1+q2*f2+q3*f3)/(w1*f1+w2*f2+w3*f3));
f0=f(X);
k=k+1;
if (w1*f1+w2*f2+w3*f3)==0
x1=xmin;
else
if abs((Fmin-f0)/f0)>eps1||abs((xmin-X)/X)>eps2
if X<=x3&&X>=x1
if X>=x1&&X<=x2
z=x2;
x2=X;
x3=z;
r=100;
else
if X>=x2&&X<=x3
x3=X;
r=100;
end;
end;
else
if X<x1||X>x3
x1=X;
r=0;
end;
end;
else
if abs((Fmin-f0)/f0)<eps1&&abs((xmin-X)/X)<eps2
xneiz=X;
i=1;
end;
end;
end;
k=k+1;
end;
xneiz
k
f(xneiz)
Результаты:
k = 5
xmin = 0.4640
fmin = 3.2317
Сводная таблица
Название метода |
Координаты минимума, (xmin, fmin) |
Количество итерации, k |
Характеристика относительного уменьшения начального интервала неопределённости, R |
Метод равномерного поиска |
(0.4600, 3.2319) |
24 |
0.0159 |
Метод деления интервала пополам |
(0.4688, 3.2320) |
8 |
0.0625 |
Метод дихотомии |
(0.4635, 3.2317) |
9 |
0.0442 |
Метод золотого сечения |
(0.4649, 3.2317) |
12 |
0.0050 |
Метод Фибоначчи |
(0.4655, 3.2317) |
9 |
0.0069 |
Метод квадратичной интерполяции |
(0.4655, 3.2317) |
5 |
- |
Вывод
Данные методы оказались применимы на практике. Решения отличаются между собой не более чем на 0,0003 при нахождении fmin и . Если рассматривать методы с точки зрения скорости вычисления, то метод равномерного поиска – самый медленный (24 итерации), а метод квадратичной интерполяции – самый быстрый (5 итераций). У остальных же методов, количество итераций 8, 9, 12 и 13.
Блок-схема метода деления интервала пополам
