Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmy_all.doc
Скачиваний:
10
Добавлен:
27.04.2019
Размер:
1.65 Mб
Скачать

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

Пусть уk – приближенное значение решения при x = xk уже построено.

Найдем:

fk=f(xk,yk),

ak=f(xk+h/2,yk+fkh/2),

и за приближенное значение решения при х = хk+1 = xk + h примем:

yk+1 = yk + akh.

Рисунок 2.2 – Метод Рунге-Кутта

Геометрически это означает, что для построения звена Мk Мk+1 ломаной, аппроксимирующей интегральную кривую, сначала проводим через точку М отрезок Μk Μk+1, совпадающий с направлением fk поля в точке Мk (как это делалось в методе Эйлера). Вычисляем координаты точки Nk – середины этого отрезка:

(хк+h/2, yk+h/2),

и находим величину

ak=f(xk+h/2,yk+fkh/2).

Через точку Мk проводим отрмок Mk Mk+\ параллельно направлению поля в точке Nk. Ординату точки Mk+1 и принимаем за уk+1.

Этот метод будет точнее метода Эйлера, так как он учитывает поворот поля на интервале {xk, xk+1}.

Еще более точный результат получим, если вычисления про­водить по схеме:

fk=f(xk,yk),

ak=f(xk+h/2,yk+fnh/2),

bk=f(xk+h/2,yk+anh/2),

gk=f(xk+h/2,yk+bnh),

yk+1=yk+1/6(fk+2ak+2bk+gk)h.

За исходную точку, как и раньше, берем точку m0(х0,y0). Выбрав шаг А, вычислим:

F0=f(x0,y0),

a0=f(x0+h/2,y0+f0h/2),

b0=f(x0+h/2,y0+a0h/2),

g0=f(x0+h/2,y0+b0h).

Находим

y1=y0+1/6(f0+2a0+2b0+g0)h.

Получили точку Μ1(x1, y1). Аналогично находим f1, a1, b1, g1 и вычисляем у2 и так далее.

      1. Функции решения дифференциальных уравнений

Рассмотрим пример использования функции Rkfixed, предназначенной для поиска набора значений решения дифференциального уравнения методом Рунге-Кутта, встроенной в МК.

Синтаксис применения функций для решения данной задачи выглядит следующим образом:

Rkfixed(x,x1,x2,n,f) ,

где x – имя аргумента; x1,x2 – начало и конец интервала значений аргумента; n – число разбиений; f – имя функции, приравниваемой к недифференцируемой части уравнения.

На рисунке 2.1 представлен пример использования встроенной функции МК rkfixed, которая позволяет найти массив приближенных значений методом Рунге-Кутта.

Рисунок 2.3 – Фазовый портрет затухающих колебаний полученный методом Рунге-Кутта в МК

Frame и mu – параметры для вариации коэффициента затухания и носят частный характер.

2.2Задание к выполнению работы

  1. Ознакомиться с инструментарием МК для нахождения корней алгебраических уравнений.

  2. Найти корни указанного уравнения (как в численном виде, так и результирующую формулу вычисления корней) с помощью средств МК. Поиск корней следует выполнить с использованием функций: Root(), Find(), Monner().

  3. Составить произвольную систему из нескольких уравнений и найти ее корни с помощью одной из указанных функций.

  4. Построить график функции, соответствующей вашему уравнению и определить корни графическим путем. Сравнить результаты, полученные при использовании разных методов. Сделать выводы.

  5. Найти средствами МК (функция rkfixed) массив точек функции, удовлетворяющей однородному дифференциальному уравнению, выбранному в соответствии с вашим вариантом.

  6. Представить результаты в виде графика.

  7. Составить отчет о проделанной работе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]