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

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> = {x>i> / x>i> = x>i>> –1> + h>i>, h>i> > 0, i = 1, 2, 3, …, n; x>0> = a, x>n> = b}

и значения y>i> = f(x>i>) в узлах сетки x>i>, i = 0, 1, 2, …, n.

Задать x*  (a, b).

    Положить a>i> = y>j>, i = 0, 1, 2, …, n.

    Составить и решить трех диагональную систему методом прогонки:

Определить значения коэффициентов c>i>, i = 0, 1, 2, …, n.

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

d>i> = (c>i> – c>i>>>–>>>1>) / h>i>, i = 1, 2, …

    Определить значение индекса 0 < k  n из условия x*  [x>k>> – 1>, x>k>].

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

S(x*) = S>k>(x*) = a>k> + b>k>(x* – x>k>) + (c>k> / 2)(x* – x>k>)2 + (d>k> / 6)(x* – x>k>)3.

    Процесс завершен: S(x*) – результат интерполяции табличных данных в точку x*  (a, b).

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

a>i>

b>i>

c>i>

d>i>

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*) = S>k>(x*) = a>k> + b>k>(x* – x>k>) + (c>k> / 2)(x* – x>k>)2 + (d>k> / 6)(x* – x>k>)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) = (x>1>(0), x>2>(0), …, x>n>(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) – точка минимума функции. В этой точке функция принимает значение .