Если минимизируемая функция имеет «овражные» особенности, то описанный алгоритм неэффективен, так как не реагирует на «топографические» особенности исследуемой функции. Нелдер и Мид усовершенствовали рассматриваемый алгоритм. Основная идея усовершенствования состоит в деформации треугольника в зависимости от особенностей функции. Те стороны треугольника, которые ориентированы преимущественно вдоль «оврага», растягиваются, а те, которые ориентированы «поперек», - сжимаются. Это позволяет повысить быстродействие алгоритма [10].
Задание.
Найти методом Нелдера-Мида экстремум заданной функции.
Порядок выполнения лабораторной работы.
1. Составить подпрограмму-функцию для вычисления значений целевой функции.
2. Составить программу-функцию для нахождения экстремума целевой функции методом Нелдера-Мида.
3. Провести вычисления.
Таблица 2.10
Варианты заданий.
Вариант | Целевая функция | Вариант | Целевая функция |
1 |
| 16 |
|
2 |
| 17 |
|
3 |
| 18 |
|
4 |
| 19 |
|
5 |
| 20 |
|
6 |
| 21 |
|
7 |
| 22 |
|
8 |
| 23 |
|
9 |
| 24 |
|
10 |
| 25 |
|
11 |
| 26 |
|
12 |
| 27 |
|
13 |
| 28 |
|
14 |
| 29 |
|
15 |
| 30 |
|
2.8. Лабораторная работа №8.
Приближённое решение задачи Коши.
2.8.1. Метод Эйлера.
Пусть требуется найти приближенное решение дифференциального уравнения y'=f(x, у), удовлетворяющее начальному условию у(х0)=у0. Численное решение задачи состоит в построении таблицы приближенных значений у1, у2,…,yn решения уравнения у(х) в точках x1, x2,..., xn. Чаще всего хi = x0+ih, i=1, 2,..., п. Точки xi называются узлами сетки, а величина h—шагом (h>0).
В методе Эйлера величины уi вычисляются по формуле
(2.62)
Этот метод относится к группе одношаговых методов, в которых для расчета точки (xi+1; .yi+1) требуется информация только о последней вычисленной точке (xi; yi). Метод допускает простую геометрическую интерпретацию (рис. 15). Предположим, что известна точка (хi; yi) на искомой интегральной кривой. Тогда касательная к этой кривой, проходящая через точку (хi; yi), определяется уравнением y=y'i(x - xi)+yi, а так как y'i =f(хi, yi) и xi+1=xi+h, то yi+1=yi+hf(xi, yi). Для оценки погрешности метода на одном шаге сетки разложим точное решение в ряд Тейлора в окрестности узла хi

Рис. 2.10
(2.63)
Сравнение формулы (2.62) с разложением (2.63) показывает, что они согласуются до членов первого порядка по h, а погрешность формулы (2.62) равна 0(h2). Если расчетные формулы численного метода согласуются с разложением в ряд Тейлора до членов порядка hp, то число р называют порядком метода. Таким образом, метод Эйлера—метод первого порядка [10].
Для практической оценки погрешности расчета можно рекомендовать правило Рунге. Для этого проведем вычисления с шагом h и h/2 и сравним величины уi(h) и уi(h/2). За оценку погрешности вычислений с шагом h/2 можно принять величину
.
Метод Эйлера легко обобщается на случай нормальных систем дифференциальных уравнений. Пусть требуется найти решение системы дифференциальных уравнений

удовлетворяющее начальным условиям y1(x0)= y10, y2(x0)= y20,…, yn(x0)= yn0. Или в векторной форме:
,
Y(x)={y1(x), y2(х),...,yn(x)}, Y0={y10, y20,…, yn0}. Приближенные значения уki точного решения yk(хi) в точках xi вычисляются по формулам
![]()
Задание:
Используя подпрограмму Eiler, составить программу решения задачи Коши yi¢=fi(x, y1, y2), yi|x=a = yi(a), i = 1, 2, на отрезке [a, b].
Порядок выполнения лабораторной работы.
1. Составить подпрограмму вычисления правых частей уравнений системы (используя пример).
2. Произвести вычисления для заданного варианта.
2.8.2. Метод Рунге-Кутта.
Пусть требуется найти решение дифференциального уравнения y¢=f(x, y), удовлетворяющее начальному условию y(x0) = y0.
Численное решение задачи состоит в построении таблицы приближённых значений у1, у2,…,yn решения уравнения в точках x1, x2,..., xn. Точки x1, x2,..., xn – узлы сетки. Используем систему равноотстоящих узлов. Величина h – шаг сетки (h>0) [10].
Методом Рунге—Кутта в литературе обычно называют одношаговый метод четвертого порядка, относящийся к широкому классу методов типа Рунге—Кутта. В этом методе величины yi+1 вычисляют по следующим формулам:
(2.64)
Погрешность метода на одном шаге сетки равна Mh4, но на практике оценить величину М обычно трудно. При оценке погрешности используют правило Рунге. Для этого проводят вычисления сначала с шагом h, а затем—с шагом h/2. Если уi(h) – приближение, вычисленное с шагом h, а у2i(h/2) – c шагом h/2, то справедлива оценка
![]()
За оценку погрешности вычислений с шагом h/2 можно принять величину
![]()
Метод Рунге—Кутта легко переносится на нормальные системы дифференциальных уравнений вида
, 1 £ k £ n,
которые для краткости удобно записывать в векторной форме:
y'(x)=f(x,y),
y = (y1, y2,…, yn), f = (fl, f2,…,fn).
Для получения расчетных формул методом Рунге—Кутта достаточно в формулах (2.64) заменить у и f(x, у) соответственно на у и f(x, у), а коэффициенты kj – на kj(j=l, 2, 3, 4).
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Основные порталы (построено редакторами)
