КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Метод Рунге-Кутта
Метод Эйлера и метод Эйлера относятся к семейству методов Рунге-Кутта. Для построения данных методов можно использовать следующий общий подход. Фиксируем некоторые числа: . Последовательно вычисляем: , , …
и полагаем: . (9.28) Рассмотрим вопрос о выборе параметров . Обозначим . Будем предполагать, что , а для некоторой функции . По формуле Тэйлора справедливо равенство , (9.29) где . При будем иметь: , . Ясно, что равенство выполняется для любых функций лишь при условии, что При данном значении из формулы (9.28) получаются формулы (9.24), (9.25) метода Эйлера. Погрешность данного метода на шаге согласно (9.29) равна . Рассмотрим случай , тогда , где . Согласно исходному дифференциальному уравнению (9.30) Вычисляя производные функции и, подставляя в выражения для значение , получаем , . (9.31) Требование будет выполняться для всех только в том случае, если одновременно справедливы следующие три равенства относительно четырех параметров: , , (9.32) Задавая произвольно значения одного из параметров и определяя значения остальных из системы (9.32), можно получать различные методы Рунге-Кутта с порядком погрешности . Например, при из (9.32) получаем: , . Для выбранных значений параметров (9.28) приобретает следующий вид: . (Здесь записано вместо , - вместо , а через обозначено выражение .) Таким образом, для рассматриваемого случая приходим к расчетным формулам (9.27) метода Эйлера-Коши. Из (9.29) следует, что главная часть погрешности на шаге есть , т.е. погрешность пропорциональна третьей степени шага. На практике наиболее часто используют метод Рунге-Кутта с . Данный метод реализуются в соответствие со следующими расчетными формулами: (9.33) . Погрешность рассматриваемого метода Рунге-Кутта на шаге пропорциональна пятой степени шага. Геометрический смысл использования метода Рунге-Кутта с расчетными формулами состоит в следующем. Из точки сдвигаются в направлении, определяемом углом , для которого . На этом направлении выбирается точка с координатами . Затем из точки сдвигаются в направлении, определяемым углом , для которого , и на этом направлении выбирается точка с координатами . Наконец из точки , сдвигаются в направлении, определяемом углом , для которого и на этом направлении выбирается точка с координатами . Этим задается еще одно направление, определяемое углом , для которого . Четыре, полученные направления усредняются в соответствие с (9.33). На этом окончательном направлении и выбирается очередная точка . Пример 9.2. Найти решение задачи Коши дифференциального уравнения , методом Рунге-Кутта четвертого порядка. Для нахождения решения данного ДУ необходимо создать файл RungeKutt4.m, содержащий описание функции, возвращающей решение дифференциального уравнения методом Рунге-Кутта четвертого порядка.
% листинг файла RungeKutt4.m function [X,Y]=RungeKutt4(y0,x0,x1,N) dx=(x1-x0)/N; x(1)=x0; y(1)=y0; for i=2:N x(i)=x(1)+dx*(i-1); k1=dx*F9(x(i-1),y(i-1)); k2=dx*F9(x(i-1)+dx/2,y(i-1)+k1/2); k3=dx*F9(x(i-1)+dx/2,y(i-1)+k2/2); k4=dx*F9(x(i-1)+dx,y(i-1)+k3); y(i)=y(i-1)+1/6*(k1+2*k2+2*k3+k4); end; X=x; Y=y; function z=F9(x,y) z=x.^2;
Далее необходимо выполнить следующую последовательность команд: >> x0=0; % левая граница отрезка интегрирования >> x1=5; % правая граница отрезка интегрирования >> y0=1.3; % начальное условие >> N=50; % число узлов разбиения отрезка интегрирования >> [X Y]=RungeKutt4(y0,x0,x1,N); % нахождение численного % решения задачи Коши >> i=1:length(X); >> Z(i)=y0+1/3*X(i).^3; % вычисление значений точного решения >> plot(X,Z,X,Y,':') % визуализация точного и численного решений % (рис. 9.6) >> plot(X,abs(Z-Y)) % визуализация разности между численным и % точным решениями ДУ (9.7)
Дата добавления: 2014-01-06; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |