logo
МатМод экология / Лабораторные работы

Решение обыкновенных дифференциальных уравнений в matlab.

Для решения систем ОДУ в MATLAB реализованы различные численные методы. Их реализации названы решателями ОДУ. В MatLab название «решатель» означает один из возможных численных методов решения: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, bvp4c или pdepe.

Решатели реализуют следующие методы решения систем дифференциальных уравнений:

• ode45 – одношаговые явные методы Рунге-Кутта 4-го и 5-го порядков в модификации Дорманда и Принца. Это классический метод, рекомендуемый для начальной пробы решения. Во многих случаях он дает хорошие результаты – если система решаемых уравнений нежесткая.

• ode23 – одношаговые явные методы Рунге-Кутта 2-го и 4-го порядков в модификации Богацки и Шампина. При умеренной жесткости системы ОДУ и низких требованиях к точности этот метод может дать выигрыш в скорости решения.

• ode113 – многошаговый метод Адамса–Башворта–Мултона переменного порядка класса предиктор–корректор. Это адаптивный метод, который может обеспечить высокую точность решения.

• ode15s – многошаговый метод переменного порядка (от 1 до 5, по умолчанию 5), использующий формулы численного «дифференцирования назад». Это адаптивный метод, его стоит применять, если решатель ode45 не обеспечивает решения и система дифференциальных уравнений жесткая.

• ode23s – одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Может обеспечить высокую скорость вычислений при низкой точности решения жесткой системы дифференциальных уравнений.

• ode23t – неявный метод трапеций с интерполяцией.Этот метод дает хорошие результаты при решении задач, описывающих колебательные системы с почти гармоническим выходным сигналом. При умеренно жестких системах дифференциальных уравнений может дать высокую точность решения. • ode23tb – неявный метод Рунге–Кутта в начале решения и метод, использующий формулы «дифференцирования назад» 2-го порядка в последующем. Несмотря на сравнительно низкую точность, этот метод может оказаться более эффективным, чем ode15s.

• bvp4c – служит для проблемы граничных значений систем дифференциальных уравнений вида y’ = f(t,y), F(y(a), y(b),p) = 0 (полная форма системы уравнений Коши). Решаемые им задачи называют двухточечными краевыми задачами, поскольку решение ищется при задании граничных условий как в начале, так и в конце интервала решения.

• pdepe – служит для решения систем параболических и эллиптических дифференциальных уравнений в частных производных. Этот решатель введен в ядро системы для поддержки новых графических функций OpenGL. Пакет расширения PartialDifferentialEquationsToolbox содержит более мощные средства для решения дифференциальных уравнений этого класса. Все решатели могут решать системы уравнений явного вида y’=F(t,y), причем для решения жестких систем уравнений рекомендуется использовать только специальные решатели ode15s, ode23s, ode23t, ode23tb.

Решатели ode15s и ode23t способны найти корни дифференциально-алгебраических уравнений M(t)y’ = F(t, y), где M называется матрицей массы. Решателиode15s, ode23s, ode23t и ode23tb могут решать уравнения неявного вида М(t, y) y’ = F(t, y). И наконец, все решатели, за исключением ode23s, который требует постоянства матрицы массы, и bvp4c, могут находить корни матричного уравнения вида М(t, y) y’ = F(t, y). ode23tb, ode23s служат для решения жестких дифференциальных уравнений, ode15s – жестких дифференциальных и дифференциально-алгебраических уравнений, ode23t – умеренно жестких дифференциальных и дифференциально-алгебраических уравнений.

.

Общий порядок программирования:

  1. Создается М-функция с описанием правых частей дифференциальных уравнений;

  2. Создается М-сценарий с выбранным решателем;