Решение задач методами Эйлера и Рунге-Кутта
1. Построить кубический сплайн, интерполирующий функцию у = ¦(х) на (1,00; 1,20) для равномерного разбиения с шагом h = 0,04:
¦(х) = ln x
Найти значения в точках 1,05; 1,13; 1,17.
Решение
Построим таблицу значений функции на интервале (1,00; 1,20) с шагом
h = 0,04:
x | ¦(х) = ln x |
1 | 0 |
1,04 | 0,039221 |
1,08 | 0,076961 |
1,12 | 0,113329 |
1,16 | 0,14842 |
1,2 | 0,182322 |
Сплайн-интерполяция таблично заданной функции
1. На отрезке (a, b) задать одномерную сетку
hx = {xi / xi = xi –1 + hi, hi > 0, i = 1, 2, 3, …, n; x0 = a, xn = b}
и значения yi = f(xi) в узлах сетки xi, i = 0, 1, 2, …, n.
Задать x* Î (a, b).
2. Положить ai = yj, i = 0, 1, 2, …, n.
3. Составить и решить трех диагональную систему методом прогонки:
Определить значения коэффициентов ci, i = 0, 1, 2, …, n.
4. Определить значения коэффициентов di и bi, i = 1, 2, 3, …, n, воспользовавшись формулами:
di = (ci – ci – 1) / hi, i = 1, 2, …
5. Определить значение индекса 0 < k £ n из условия x* Î (xk – 1, xk).
S(x*) = Sk(x*) = ak + bk(x* – xk) + (ck / 2)(x* – xk)2 + (dk / 6)(x* – xk)3.
7. Процесс завершен: S(x*) – результат интерполяции табличных данных в точку x* Î (a, b).
Результаты вычислений удобнее представлять в виде таблицы:
ai | bi | ci | di |
0,03922 | 0,96467 | -1,188280 | -29,70700 |
0,07696 | 0,92494 | -0,798322 | 9,74897 |
0,11333 | 0,89366 | -0,765997 | 0,80813 |
0,14842 | 0,85986 | -0,92391 | -3,94780 |
0,18232 | 0,84138 | 0,00000 | 23,09770 |
Значение функции в точке находится по формуле:
S(x*) = Sk(x*) = ak + bk(x* – xk) + (ck / 2)(x* – xk)2 + (dk / 6)(x* – xk)3
2. Найти решение задачи Коши для дифференциального уравнения на равномерной сетке (a, b) с шагом 0,2 методом Эйлера и классическим методом Рунге-Кутта
, , 0 £ х £ 1
Решение. Метод Эйлера
- разностная аппроксимация Эйлера. Точность метода . Метод Рунге-Кутта
дифференциальный интерполирующий уравнение сплайн
Результаты вычислений удобнее представлять в виде таблиц:
Метод Эйлера
x | y | |
0 | 0 | 1 |
0,2 | 0,2 | 1 |
0,4 | 0,416 | 1.04 |
0,6 | 0,67392 | 1.1232 |
0,8 | 1,00639 | 1.25798 |
1 | 1,45926 | 1.45926 |
Метод Рунге-Кутта
i | = | ||||||
0 | 0 | 1 | 0 | 0,02 | 0,0202 | 0,040808 | 1,0202 |
1 | 0,2 | 1,0202 | 0,0408081 | 0,0624363 | 0,0630852 | 0,0866629 | 1,08329 |
2 | 0,4 | 1,08329 | 0,086663 | 0,112662 | 0,113962 | 0,14367 | 1,19722 |
3 | 0,6 | 1,19722 | 0,143666 | 0,177667 | 0,180047 | 0,220362 | 1,37713 |
4 | 0,8 | 1,37713 | 0,22034 | 0,267713 | 0,271977 | 0,329821 | 1,64872 |
5 | 1 | 1,64872 | 0,329743 | 0,398989 | 0,406607 | 0,493278 | 2,05442 |
3. Найти решение задачи безусловной минимизации ¦(х) ® min, х Î R2. Установить множество глобального решения
¦(х) =
Решение
Данная задача решается методом сопряженных направлений (градиентов). Алгоритм данного метода представлен далее.
Метод сопряженных направлений
1 Начать с точки x(0) = (x1(0), x2(0), …, xn(0))т и n-линейно независимых направлений s(i),
i = 1, 2, …, n, которые могут быть выбраны, например, совпадающими с координатными направлениями e(i), i = 1, 2, …, n. Положить k = 1.
2 Начиная с точки x(0) осуществить одномерный поиск для функции f(x) в направлении s(n) и определить точку z(1).
3 Начиная с точки z(1) осуществить последовательно n – 1 одномерный поиск для f(x) сначала в направлении s(1), а затем из полученной точки в направлении s(2) и т. д. до одномерного поиска в направлении s(n – 1) включительно. В результате этих действий будет определена точка x(2).
4 Начиная с точки x(2) осуществить одномерный поиск для f(x) в направлении s(n) и определить точку z(2).
Согласно обобщенному свойству "параллельного подпространства" направление
s(n + 1) = z(2) – z(1)
будет сопряженным по отношению к направлениям s(n), s(n – 1), …, s(n – k + 1) (для k = 1 – только к направлению s(n)).
5 Начиная с точки z(2) осуществить поиск в направлении s(n + 1) и определить x*.
6 Положить k: = k + 1. Если k = n, перейти к выполнению п. 8.
7 Положить z(1): = x* и s(i): = s(i + 1), i = 1, 2, …, n.и перейти к выполнению п. 2.
8 Процесс вычислений завершен: x* – точка минимума функции f(x).
Результаты вычислений удобнее представлять в виде таблицы:
Таблица результатов
k | ||||||||
0 | 0 | 0 | 1 | 1 | 0 | |||
1 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | -4 |
2 | 2 | 0 | 0 | 1 | -2 | 2 | -2 | -8 |
Точка (2,-2) – точка минимума функции. В этой точке функция принимает значение .