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

  • Вид работы:
    Практическое задание
  • Предмет:
    Математика
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    19,85 kb
  • Опубликовано:
    2011-06-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!