- •3.1. Постановка задачи 23
- •5.1. Постановка задачи 41
- •6.1. Постановка задачи 48
- •7.1. Постановка задачи 59
- •9.1. Постановка задачи 81
- •Введение
- •Тема 1. Элементы теории погрешностей
- •1.1. Точные и приближенные числа
- •1.2. Абсолютная и относительная погрешность
- •Тема 2. Методы решения нелинейных уравнений
- •2.1. Постановка задачи
- •Отделение корней (локализация корней);
- •Уточнение корней.
- •2.2. Отделение корней
- •2.2.1. Графическое отделение корней
- •2.2.2. Аналитическое отделение корней
- •2.3. Уточнение корней
- •2.3.1. Метод половинного деления
- •2.3.2. Метод итерации
- •2.3.3. Метод Ньютона (метод касательных)
- •2.3.4. Метод хорд
- •Тема 3. Интерполяция функций
- •3.1. Постановка задачи
- •3.2. Интерполяционная формула Лагранжа
- •3.3. Интерполяционные формулы Ньютона
- •3.3.1. Конечные разности
- •3.3.2. Первая интерполяционная формула Ньютона
- •3.3.3. Вторая интерполяционная формула Ньютона
- •3.4. Сплайн – интерполяция
- •Тема 4. Аппроксимация функций
- •4.1. Постановка задачи аппроксимации
- •4.2. Метод наименьших квадратов
- •Тема 5. Численное интегрирование
- •5.1. Постановка задачи
- •5.2. Методы прямоугольников
- •5.3. Формула трапеций
- •5.4. Формула Симпсона
- •5.5. Оценка погрешности численного интегрирования
- •Тема 6. Методы решения обыкновенных дифференциальных уравнений
- •6.1. Постановка задачи
- •6.2. Метод Эйлера
- •6.3. Методы Рунге-Кутты
- •6.4. Решение оду n-го порядка
- •Тема 7. Одномерная оптимизация
- •7.1. Постановка задачи
- •7.2. Метод прямого перебора с переменным шагом
- •7.3. Метод дихотомии
- •7.4. Метод золотого сечения
- •7.5. Метод средней точки
- •Тема 8. Многомерная оптимизация
- •8.1. Постановка задачи и основные определения
- •8.2. Методы спуска
- •8.3. Метод градиентного спуска с дроблением шага
- •8.4. Метод наискорейшего спуска
- •8.5. Метод покоординатного спуска
- •Тема 9. Методы решения систем линейных уравнений
- •9.1. Постановка задачи
- •9.2.Метод Гаусса
- •9.3. Метод итераций
- •Список литературы
7.2. Метод прямого перебора с переменным шагом
На практике чаще применяют одну из основных модификаций метода – метод прямого перебора с переменным шагом. Суть его заключается в следующем. От начальной точки интервала неопределенности [a,b] двигаются с начальным шагом h до тех пор, пока функция в точках разбиения уменьшается (рис.7.2-1). Если функция в очередной точке стала возрастать, то происходит сужение интервала неопределенности путем возврата от рассматриваемой (которая становится правой границей нового интервала) точки x на два шага назад. При этом левой границей нового отрезка неопределенности станет точка a=x-2h, а правой b=x. Новый отрезок вновь исследуют таким же образом, но уже с шагом, уменьшенным в два раза h=h/2. Процесс повторяется до тех пор, пока отрезок неопределенности не станет сопоставимым с заданной точностью |bn-an| <.
Рис.7.2-1
Метод прост, но достаточно трудоемок. Более эффективными являются другие методы одномерного поиска, в частности, метод дихотомии и метод золотого сечения и метод средней точки.
7.3. Метод дихотомии
Пусть дана функция f(x), унимодальная на отрезке [a;b]. Обозначим a0=a и b0 = b.
Выберем на отрезке [a0;b0] две точки симметричные относительно середины отрезка:
где d - параметр метода, истинную величину которого определим ниже.
Вычислим и сравним значения функций f(a1) и f(b1). В силу унимодальности функции можно провести сокращение отрезка неопределенности по следующему правилу:
Еслиf(a1) £f(b1), то x*Î[a0;b1] ;
Если f(a1) >f(b1), то x*Î[a1;b0].
а) b)
Рис. 7.3-1
Если описанную процедуру принять за одну итерацию, то алгоритм поиска минимума можно описать следующим образом. Опишем (k+1)-ю итерацию, исходя из того, что k-й отрезок неопределенности найден [ak;bk]:
Вычисляются
Находят значения f(ak+1) и f(bk+1).
Находят k+1-й отрезок неопределенности по правилу:
если f(ak+1) > f(bk+1), то x* Î[ak+1;bk],
если f(ak+1) £ f(bk+1), то x*Î[ak;bk+1]).
Сокращение отрезка проводятся до тех пор, пока не выполнится неравенство
где Dn– длина n-го отрезка неопределенности.
От итерации к итерации Dn убывает и при n® стремится к величине 2d. При некотором значении n выполняется условие bn-an<ε. Следовательно, достичь заданной точности можно лишь выбирая 0<d<e/2.Таким образом, величина d достаточно мала, и можно сказать, что на каждой итерации длина отрезка неопределенности сокращается практически в два раза.
Длину конечного интервала неопределенности, обеспечивающего заданную величину e, можно вычислить по формуле
Положив Dn=e, можно определить соответствующее количество итераций:
Пример 7.3-1. Найти минимум функции f(x)=x3-x+e-х на отрезке [0;1]c точностью e и вычислить количество итераций, требуемое для обеспечения точности.
Выберем d =0.001 и положим a = 0;b = 1;
Таблица 7.3-1
n |
an-1 |
bn-1 |
a1 |
b1 |
f(a1) |
f(b1) |
Dn |
1 |
0 |
1 |
0.499 |
0.501 |
0.23239 |
0.23067 |
0.501 |
2 |
0.499 |
1 |
0.7485 |
0.7505 |
0.14392 |
0.14435 |
0.2515 |
3 |
0.499 |
0.7505 |
0.62375 |
0.6257 |
0.15486 |
0.15413 |
0.12675 |
4 |
0.62375 |
0.7505 |
0.68613 |
0.6881 |
0.14040 |
0.14023 |
0.06437 |
… |
….. |
….. |
….. |
…. |
….. |
….. |
….
|
7 |
0.701719 |
0.71931 |
0.70951 |
0.7115 |
0.13954 |
0.13959 |
0.00979 |
При e = 0.1 x*=0.7183 f(x*)=0.1399, а при e = 0.01 x*=0.7066 f(x*)=0.13951.