- •Описание алгоритмов
- •1.1. Метод золотого сечения
- •1.2. Метод Фибоначчи
- •Задаём начальный интервал и точность .
- •Описание программы
- •Сравнительный анализ алгоритмов
- •3.1. Пример работы метода золотого сечения
- •3.2. Пример работы метода Фибоначчи
- •Приложение. Листинг программных модулей
- •3.3 Сравнение алгоритмов.
Сравнительный анализ алгоритмов
3.1. Пример работы метода золотого сечения
Рассмотрим поиск минимума функции f(x)=(x−0.5) на интервале [0,1] с точностью ε=0.001.
Золотое сечение:
,
.
Формулы для точек:
На каждой итерации сравниваем
и
:
если
,
то новый интервал
;если
,
то новый интервал
;при равенстве можно выбрать любой.
Вычисления ведутся до тех пор, пока
.
В таблице 1 приведены первые несколько итераций метода золотого сечения (значения округлены до 6 знаков). Значения 4-15 заполняются рекурсивно.
Таблица 1. Метод золотого сечения (итерации)
Итерация |
a |
b |
x1 |
x2 |
f(x1) |
f(x2) |
Сравнение |
Новый интервал |
1 |
0 |
1 |
0.381966 |
0.618034 |
0.013932 |
0.013932 |
f₁ = f₂ |
[0.381966, 1.000000] |
2 |
0.381966 |
1 |
0.618034 |
0.763932 |
0.013932 |
0.069660 |
f₁ < f₂ |
[0.381966, 0.763932] |
3 |
0.381966 |
0.763932 |
0.527864 |
0.618034 |
0.000776 |
0.013932 |
f₁ < f₂ |
[0.381966, 0.618034] |
… |
… |
… |
… |
… |
… |
… |
… |
… |
16 |
0.499999 |
0.500002 |
0.500000 |
0.500001 |
0 |
0 |
|
длина < ε |
После 16 итераций интервал сокращается
до длины менее 0.001, и приближённое
значение минимума
.
3.2. Пример работы метода Фибоначчи
Для той же функции и точности
сначала
определяем необходимое число Фибоначчи.
.
Числа Фибоначчи:
.
Определение числа итераций :
Наименьшее
такое,
что
:
,
.
Следовательно,
.
Количество итераций (вычислений функции,
кроме первого шага) равно
.
На первой итерации вычисляются две
точки, затем на каждой последующей –
одна новая.
Общие формулы для k-й итерации (
):
В таблице 2 приведены первые итерации метода Фибоначчи (используются числа и ). Шаги 4-13 выполняются рекурсивно.
Таблица 2. Метод Фибоначчи.
Итерация |
a |
b |
x1 |
x2 |
f(x1) |
f(x2) |
Сравнение |
Новый интервал |
1 |
0 |
1 |
0.381944 |
0.618056 |
0.013937 |
0.013937 |
f₁ = f₂ |
[0.381944, 1.000000] |
2 |
0.381944 |
1 |
0.618056 |
0.763889 |
0.013937 |
0.069669 |
f₁ < f₂ |
[0.381944, 0.763889] |
3 |
0.381944 |
0.763889 |
0.527778 |
0.618056 |
0.000772 |
0.013937 |
f₁ < f₂ |
[0.381944, 0.618056] |
… |
… |
… |
… |
… |
… |
… |
… |
… |
14 |
0.499999 |
0.500001 |
- |
- |
- |
- |
|
длина < ε |
