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

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



Сплайн-интерполяция таблично заданной функции

	На отрезке [a, b] задать одномерную сетку



x = {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.

	Определить значения коэффициентов di и bi, i = 1, 2, 3, …, n, воспользовавшись формулами:



di = (ci – ci – 1) / hi, i = 1, 2, …





	Определить значение индекса 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.



	Процесс завершен: 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. Установить множество глобального решения



(х) = 



Решение

Данная задача решается методом сопряженных направлений (градиентов). Алгоритм данного метода представлен далее.

Метод сопряженных направлений

	Начать с точки 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) – точка минимума функции. В этой точке функция принимает значение .