Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Численные методы в среде MATLAB. Интегрирование обыкновенных линейных дифференциальных уравнений.



Определение ОДУ

Анализ поведения многих систем и устройств в динамике, а также решение многих задач в теории колебаний и в поведении упругих оболочек обычно базируется на решении систем обыкновенных дифференциальных уравнений (ОДУ), или, в оригинале, ordinary differential equations (ODEs). Их, как правило, представляют в виде системы из дифференциальных уравнений первого порядка в форме Коши

(1)

с граничными условиями y(t0, tend, p)=b, где tend, t0 – начальные и конечные точки интервалов. Параметр t (независимая переменная) необязательно означает время, хотя чаще всего решение дифференциальных уравнений ищется во временной области. Система дифференциальных уравнений в форме Коши записывается аналогично, но под y в этом случае подразумевается векторстолбец зависимых переменных. Вектор p задает начальные условия. Для решения дифференциальных уравнений второго и высшего порядка их нужно свести к системе дифференциальных уравнений первого порядка. Как это делается, хорошо известно (см. примеры ниже). Возможны дифференциальные уравнения, не разрешенные относительно производной:

F(t, y, dy/dt) = 0. (2)

Уравнения (2) аналитически к форме (1) обычно привести не удается. Однако численное решение особых трудностей не вызывает – достаточно для определения f(y, t) решить (2) численно относительно производной при заданных y и t.

Наряду с ОДУ MATLAB может оперировать с дифференциальными алгебраическими уравнениями (ДАУ, или differentialalgebraic equations – DAEs). ОДУ и ДАУ являются основой математического моделирования динамических нелинейных (и линейных) систем. Автоматическое их составление и решение реализованы в специальном расширении Simulink.

Ниже коротко описаны численные методы решения обыкновенных дифференциальных уравнений (ОДУ) и некоторые вспомогательные функции, полезные для решения систем ОДУ. Дается представление о пакете расширения, решающем дифференциальные уравнения в частных производных.

Решатели ОДУ

Для решения систем ОДУ в MATLAB реализованы различные численные методы. Их реализации названы решателями ОДУ. Подробное описание решателей можно найти книге класса textbook, которую можно получить из Интернета. Полезные материалы есть также в книгах. Решатели реализуют следующие методы решения систем дифференциальных уравнений:

• 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. Пакет расширения Partial Differential Equations Toolbox содержит более мощные средства для решения дифференциальных уравнений этого класса. Все решатели могут решать системы уравнений явного вида 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 – умеренно жестких дифференциальных и дифференциальноалгебраических уравнений.

 


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 475; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь