Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Решатели (solver) ОДУ в MATLAB




MATLAB. Обыкновенные дифференциальные уравнения.

Динамические системы

 

Методические указания по выполнению

Лабораторных работ

 

Казань 2016


УДК 681.3.06

ББК 32.973.26-018.2

А 65

 

 

MATLAB. Обыкновенные дифференциальные уравнения. Динамические системы. Методические указания по выполнению лабораторных работ / Составители В.В. Андреев, И.К. Насыров. – Казань: Казан. гос. энерг. ун-т, 2016. – 149 с.

Рассмотрены основные теоретические и прикладные вопросы дисциплины «Компьютерная математика» по направлению подготовки 230100.62 «Информатика и вычислительная техника», профиль подготовки «Программное обеспечение средств вычислительной техники и автоматизированных систем». Приведены примеры, а также задания для самостоятельной работы и тестовые вопросы.

Указания предназначены для дисциплин «Дополнительные главы высшей математики», «Методы математического моделирования», «Моделирование систем и процессов», «Теория нелинейных динамических систем», а также для направлений «Прикладная математика», «Программное обеспечение вычислительной техники».

 

УДК 681.3.06

ББК 32.973.26-018.2

 

Ó Казанский государственный энергетический университет, 2016

 

 

Введение

 

Современные системы компьютерной математики (СКМ) предлагают целый набор интегрированных программных систем и пакетов программ для автоматизации математических расчётов: Eureka, Gauss,
TK Solver!, Derive, Mathcad, Mathematica, Maple и др. Возникает вопрос:
«А какое место занимает среди них система MATLAB?»

MATLAB – одна из наиболее известных, тщательно проработанных
и проверенных временем систем автоматизации математических расчётов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы MATrix LABoratory – матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.

Матрицы широко применяются в сложных математических расчётах, например, при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем.

В настоящее время СКМ MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных систем. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. В новой версии MATLAB используются такие мощные типы данных, как многомерные массивы, массивы ячеек, массивы структур, массивы Java и разрежённые матрицы, что открывает возможности применения системы при создании и отладке новых алгоритмов матричных и основанных на них параллельных вычислений и крупных баз данных.

В целом MATLAB – это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации
и даже анимационной графики. Систему с прилагаемой к ней обширной
документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению
ЭВМ – от массовых персональных компьютеров до супер-ЭВМ.

Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчётов практически в любой области науки и техники. Например, очень широко используется при математическом моделировании механических устройств и систем, в частности в динамике, гидродинамике, аэродинамике, акустике, энергетике и т.д. Этому способствует расширенный набор матричных и иных операций и функций.

Настоящая работа содержит методические указания по выполнению лабораторных работ.

В первой лабораторной работе рассматриваются пользовательский интерфейс и основные объекты MATLAB, а также операторы, типы данных и действия с ними.

Во второй лабораторной работе рассматриваются методы формирования векторов и матриц, способы решения систем линейных уравнений, операции с полиномами.

Третья лабораторная работа посвящена способам построения графиков в MATLAB как двумерных, так и трёхмерных. В этой же лабораторной работе рассматриваются методы интерполяции и аппроксимации данных,
а также использование математического пакета MATLAB для исследования функций.

В четвёртой лабораторной работе рассматриваются возможности использования математического пакета MATLAB для решения дифференциальных уравнений, вопросы программирования в MATLAB и решения некоторых экономических задач.

 

 


 

Лабораторная работа № 1

ЦЕЛЬ РАБОТЫ

Сформировать у студентов представления о применении ДУ в различных областях; привить умения решать задачу Коши для ДУ у¢ = f (x, y) на отрезке [ a, b ] при заданном начальном условии у 0 = f (x 0).

Решение обыкновенных дифференциальных уравнений (ОДУ)

Решатели (solver) ОДУ в MATLAB

 

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

 

  dy / dt = y ′ = f (y, t) (1.1)

 

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

Для решения ДУ второго и высшего порядка их нужно свести к системе ДУ первого порядка.

Возможны ДУ, не разрешенные относительно производной:

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

 

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

 

Решатели ОДУ

 

Для решения систем ОДУ в MATLAB реализованы различные численные методы. Их реализации названы решателями ОДУ.

В этом разделе обобщенное название solver (решатель) означает один из возможных численных методов решения ОДУ: 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 (полная форма системы уравнений Коши). Решаемые им задачи называют двухточечными краевыми задачами, поскольку решение ищется при задании граничных условий как в начале, так и в конце интервала решения.

Все решатели могут решать системы уравнений явного вида y ′ = F (t, y), причем для решения жестких систем уравнений рекомендуется использовать только специальные решатели ode15s, ode23s, ode23t, ode23tb.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...