Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Численные методы решения задачи Коши для ОДУ первого порядка



Постановка задачи. Найти решение ОДУ первого порядка

на отрезке при условии

При нахождении приближенного решения будем считать, что вычисления проводятся с расчетным шагом , расчетными узлами служат точки промежутка [ x 0, xn ].

Целью является построение таблицы

xi x 0 x 1 xn
yi y 0 y 1 yn

т.е. ищутся приближенные значения y в узлах сетки.

Интегрируя уравнение на отрезке , получим

Вполне естественным (но не единственным) путем получения численного решения является замена в нем интеграла какой–либо квадратурной формулой численного интегрирования. Если воспользоваться простейшей формулой левых прямоугольников первого порядка

,

то получим явную формулу Эйлера:

, .

Порядок расчетов:

Зная , находим , затем т.д.

45. Дана задача Коши для ОДУ первого порядка. Построить вычислительную формулу для ее решения методом Рунге – Кутта первого порядка.


46. (СВОДНЫЙ ВОПРОС) Каким образом получены вычислительные формулы для методов Рунге – Кутта первого, второго и четвертого порядков точности. Основное соотношение, которое при этом используется.



47.Реализация метода Рунге – Кутта 4 – го порядка в MATLAB.

Метод реализован в виде функции ode45
Решить задачу Коши для диф.уравнения
Т’+r(T-Ts)=0
T(0)=80
Ts=22-температура, r=0.024-коэффициент остывания
Приводим к задаче Коши:
T’=-r(T-Ts)
T(0)=80
Вначале создаем м-файл функцию, которую определяет правую часть уравнения y’=f(x,y). Здесь f(t,T(t))

function result=f(t,T)
%определение правой части уравнения y’=f(x,y).
%T(t)-искомая функция.
Ts=22;
r=0.024;
result(1)=-r.*(T-Ts);

Далее создаем м-файл сценарий
T0=80; %начальная температура
[t,T]=ode45(‘f’,0:1:15,T0);
%0:1:15 – вектор, определяющий в каких временных точках будет выполняться поиск решений.
[t,T] % два столбца ti, Ti
plot (t,T)
По умолчанию при решении ОДУ в Matlab абсолютная погрешность численного решения absTol=10-6, относительная - RelTol=10-3
Для изменения значения погрешности:
opt=odeset(‘AbsTol’,1e-12);
[t,T]=ode45(‘f’,0:15,T0,opt);





Дата публикования: 2015-02-03; Прочитано: 373 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...