Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 13:06, реферат
Одна из основных проблем, связанных с применением методов Рунге-Кутты, состоит в получении надежных и, в то же время простых и эффективных оценок погрешности решения задачи Коши. В решении данной проблемы значительные успехи достигнуты за счет введения вложенных методов Рунге-Кутты (ВМРК) или методов вложенных форм. Основные соображения, положенные в основу этих методов, таковы: нужно получить формулы из семейства Рунге-Кутты, которые использовали бы одни и те же значения функций – правой части уравнения – и определяли бы разные конкретные методы одного или смежных порядков.
Рассмотренные методы Рунге-Кутта относятся к классу одношаговых методов, в которых для вычисления значения в очередной точке xk+1 нужно знать значение в предыдущей точке xk.
Еще один класс методов решения задачи Коши – многошаговые методы, в которых используются точки xk-3, xk-2, xk-1, xk для вычисления xk+1. В многошаговых методах первые четыре начальные точки (t0, x0), (t1, x1), (t2, x2) (t3, x3) должны быть получены заранее любым из одношаговых методов (метод Эйлера, Рунге-Кутта и т.д.).
Ниже приведен текст функции, реализующий рассмотренных метод Рунге-Кутта-Мерсона численных методов решения дифференциальных уравнений.
function [x,t,j]=kut_merson(a,b,n,eps,
%Функция решения задачи Коши x'(t)=g(t,x) x(a)=x0 методом
%Кутта-Мерсона на интервале интегрирования [a,b]
%c точночтью eps, n - количество отрезков, на которые
% вначале разбивается интервал [a,b].
% Вычисление шага h.
h=(b-a)/n;
x(1)=x0;t(1)=a;i=2;
while (t(i-1)+h)<=b
R=3*eps;
while R>eps
%Расчет коэффициентов K1, K2, K3, K4, K5.
K1=g(t(i-1),x(i-1));
K2=g(t(i-1)+h/3,x(i-1)+h/3*K1)
K3=g(t(i-1)+h/3,x(i-1)+h/6*K1+
K4=g(t(i-1)+h/2,x(i-1)+h/8*K1+
K5=g(t(i-1)+h,x(i-1)+h/2*K1-3*
%Вычисление сравниваемых значений x(i+1)
X1=x(i-1)+h/2*(K1-3*K3+4*K4);
X2=x(i-1)+h/6*(K1+4*K4+K5);
%Вычисление оценочного коэффициента R.
R=0.2*abs(X1-X2);
%Сравнение оценочного коэффициента R с точностью eps.
if R>eps
h=h/2;
else
%Если оценочный коэффициента R меньше точности eps,
%то происходит формирование очередной найденной точки и
%переход к следующему этапу по i.
t(i)=t(i-1)+h;
x(i)=X2;
i=i+1;
%Если оценочный коэффициент R меньше eps/64,
%то можно попробовать увеличить шаг.
if R<=eps/64
if (t(i-1)+2*h)<=b
h=2*h;
end
end
%В переменной j возвращается количество элементов в
%массивах x и t
j=i-1
end