Решение задач методами Эйлера и Рунге-Кутта
1. Построить кубический сплайн, интерполирующий функцию у = ¦(х) на [1,00; 1,20] для равномерного
разбиения с шагом h = 0,04:
¦(х) = ln x
Найти значения в точках 1,05; 1,13; 1,17.
Решение
Построим таблицу значений функции на интервале [1,00; 1,20] с шагом=
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).
. Положить ai = yj, i = 0, 1, 2, …, n.
. Составить и решить трех диагональную систему методом прогонки:
Определить
значения коэффициентов 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
.
Найти решение задачи Коши для дифференциального уравнения на равномерной сетке
[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
|
5
|
1
|
1,64872
|
0,329743
|
0,398989
|
0,406607
|
0,493278
|
2,05442
|
. Найти решение задачи безусловной минимизации ¦(х) ® 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.
Начиная с точки x(0) осуществить одномерный поиск для
функции f(x) в направлении s(n) и
определить точку z(1).
Начиная с точки z(1) осуществить последовательно n - 1 одномерный поиск для f(x) сначала в направлении s(1), а затем из полученной точки в направлении s(2) и т. д. до одномерного поиска в
направлении s(n - 1) включительно. В результате этих
действий будет определена точка x(2).
Начиная с точки 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)).
Начиная с точки z(2) осуществить поиск в направлении s(n + 1) и определить x*.
Положить k: = k + 1. Если k = n, перейти
к выполнению п. 8.
Положить z(1): = x* и s(i): = s(i + 1), i = 1, 2, …, n.и
перейти к выполнению п. 2.
Процесс вычислений завершен: 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) - точка минимума функции. В этой точке функция принимает значение .