Ссылка на архив

Решение задач методами Эйлера и Рунге-Кутта

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
10
1,040,039221
1,080,076961
1,120,113329
1,160,14842
1,20,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).

6. Вычислить по формуле

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,039220,96467-1,188280-29,70700
0,076960,92494-0,7983229,74897
0,113330,89366-0,7659970,80813
0,148420,85986-0,92391-3,94780
0,182320,841380,0000023,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

Решение. Метод Эйлера

- разностная аппроксимация Эйлера. Точность метода . Метод Рунге-Кутта

дифференциальный интерполирующий уравнение сплайн


Результаты вычислений удобнее представлять в виде таблиц:

Метод Эйлера

xy

001
0,20,21
0,40,4161.04
0,60,673921.1232
0,81,006391.25798
11,459261.45926

Метод Рунге-Кутта

i

=

00100,020,02020,0408081,0202
10,21,02020,04080810,06243630,06308520,08666291,08329
20,41,083290,0866630,1126620,1139620,143671,19722
30,61,197220,1436660,1776670,1800470,2203621,37713
40,81,377130,220340,2677130,2719770,3298211,64872
511,648720,3297430,3989890,4066070,4932782,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(nk + 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

000110
10010220-4
22001-22-2-8

Точка (2,-2) – точка минимума функции. В этой точке функция принимает значение .