Главная Учебники - Разные Лекции (разные) - часть 33
Введение
Для того, чтобы описать динамику различных процессов, протекающих в природных и в технических системах, составляют, опираясь на физические законы, дифференциальные уравнения. Так, в частности, приходится поступать при исследовании функционирования автоматических систем; работы судовых энергетических комплексов, электрических агрегатов, судовых вспомогательных механизмов, систем навигации и т.д. В ряде случаев эти уравнения допускают линеаризацию и могут быть записаны в виде: где y
(t
) – неизвестная функция, a
0
, a
1
,...a
n
– постоянные коэффициенты, а j(x
) – некоторая известная функция независимого аргумента t
, которая обычно выражает внешнее воздействие, оказываемое на систему. 1. Цель контрольной работы
Приобретение навыков алгоритмизации и программирования задач численного интегрирования обыкновенных дифференциальных уравнений и систем с последующим моделированием результатов на персональном компьютере и представлением их в виде таблиц и графиков. В результате выполнения контрольной работы студент обязан: 1. Научиться решать линейные дифференциальные уравнения численными и символьными методами в рамках пакета компьютерной математики MathCAD. 2. Ознакомиться с основными алгоритмами существующих компьютерных методов. 3. Определить точность этих методов путем сравнения результатов, получаемых путем приближенного и аналитического решений. 2
. Аналитические методы
Общее решение дифференциального уравнения n-го порядка – неизвестная функция y
(t
) – содержит n
произвольных постоянных. Их можно определить, зная начальные условия, накладываемые на неизвестную функцию и на ее производные вплоть до (n-1)-порядка включительно. Аналитически (в символьном виде) такие уравнения решают классическим и операционным методами. 2
.1 Классический метод
В ограниченном числе случаев вида левой части (1) допускает такое преобразование, которое позволяет найти решение путем непосредственного интегрирования, однако в общем случае порядок решения – иной. Решение неоднородного дифференциального уравнения (с ненулевой правой частью) является суммой общего решения соответствующего однородного дифференциального уравнения y
1
(t
) и частного решения y
2
(t
) неоднородного дифференциального уравнения (1). Решение однородного уравнения ищем в виде: которое имеет n корней – где Сi
– произвольные постоянные, которые находятся из начальных условий. Имеются правила, позволяющие определить вид y2
(t
) частного решения в зависимости от вида правой части – функции j(t
).
Последующая подстановка общего решения в исходное дифференциальное уравнение позволяет найти неопределенные константы Ci
в выражении для y
1
(t
).
«Классический» метод анализа процессов в настоящее время используется только в случае простейших систем, поскольку необходимость нахождения частного решения часто приводит к сложным преобразованиям, а также, кроме решения характеристического уравнения дополнительно необходимо составить и решить n
уравнений для определения постоянных интегрирования. 2
.2 Метод операционного исчисления
Суть метода состоит в проведении интегрального преобразования Лапласа функции, входящей в состав дифференциального уравнения, по правилу: где s =
a
+ j
×
b
– комплексная переменная величина. Это преобразование сопоставляет функции действительного переменного функцию комплексного переменного Преобразование Лапласа можно выполнить, используя блок символьных вычислений MathCAD. Этот же блок позволяет выполнить и обратное преобразование Лапласа, в соответствии с соотношением: где Преобразование Лапласа сводит дифференцирование функции оригинала к умножению ее образа на комплексную переменную s
, поэтому решение дифференциального уравнения в пространстве оригиналов сводится к решению алгебраического уравнения в пространстве изображений. Порядок решения дифференциального уравнения с помощью операционного исчисления представляется следующим: - выполняя преобразование Лапласа левой и правой части дифференциального уравнения, учитываем начальные условия и переходим от дифференциального уравнения для функции оригинала y
(t
) к алгебраическому уравнению для Лаплас образа – Y
(s
) ; - решая алгебраическое уравнение, находим в пространстве изображений в явном виде выражение для Y
(s
); - выполняя обратное преобразование мы находим неизвестную функцию y
(t
). Все этапы этой процедуры могут быть автоматизированы и выполнены в рамках пакета MathCAD (пример 1). Следует заметить, что пакет MathCAD далеко не всегда способен выполнить в символьной форме результат обратного Лаплас преобразования. Дело в том, что в блок символьных преобразований пакета заложены правила выполнения данной процедуры для выражений записанных в виде элементарных дробей. Поэтому Лаплас образ предварительно разлагается на элементарные дроби. Однако, если корни полинома в знаменателе представляются в виде комбинации сложных радикалов, то MathCAD «отказывается» работать. В этом случае ему необходимо «помочь» врукопашную выполнив разложения полинома в знаменателе в соответствии с соотношением:
где s
1
, s
2
,…sn
– корни уравнения Рассмотренная методика нахождения аналитического решения дифференциальных уравнений может быть распространена на задачу решения системы дифференциальных уравнений. В этом случае необходимо решить не одно алгебраическое уравнение для Лаплас-образов, а систему алгебраических уравнений с помощью той же процедуры блока решений Given – Find. Отметим, что в отличие от систем компьютерной математики Mathematica 2.2.2 и Maple V R3/R4, которые легко позволяют аналитически решить линейное дифференциальное уравнение с помощью встроенных средств. Система MathCAD предполагает «ручные процедуры» запуска прямого преобразования Лапласа, составления по его результатам алгебраического уравнения и, после его решения, запуска процедуры обратного преобразования Лапласа. 3
. Численный метод решения дифференциальных уравнений
Часто при анализе изучаемых в технических или в природных системах процессов приходится учитывать наличие нелинейного поведения функций, описывающих характеристики их элементов. Это в свою очередь определяет появление нелинейностей в дифференциальных уравнениях, которые теперь уже не могут быть записаны в форме (1). Наличие нелинейностей в дифференциальных уравнениях обуславливает невозможность их точного аналитического решения, а приближенные аналитические методы часто приводят к громоздким выкладкам. Кроме того, коэффициенты в левой части дифференциального уравнения могут быть определены из эксперимента с ошибкой, что, в значительной степени, обесценивает получаемый точный аналитический результат. И наконец, точные методы не пригодны для случая, если правая часть дифференциального уравнения представлена не в аналитической форме, а в виде таблицы или графика. Во всех этих случаях прекрасно продолжают «работать» методы численного решения. В отличие от аналитических, они позволяют получать искомые зависимости для любой из описанных выше ситуаций. Алгоритмы существующих методов численного решения были разработаны сравнительно давно, однако толчок к их применению был обусловлен развитием вычислительной техники. Каждый из существующих численных методов предполагает замену производной на конечное приращение и преобразование дифференциального уравнения в уравнение в конечных разностях. С этой целью интервал поиска решения разбивается на множество отрезков и решение ищется на каждом из этих кусочков. Ясно, что чем мельче шаг разбиения, тем точнее получается результат. Поэтому, эффективное применение численных методов (при решении реальных, а не учебных задач!) предполагает использование компьютеров с достаточным быстродействием. Использование для численного решения дифференциальных уравнений компьютерного пакета MathCAD предполагает знание алгоритма работы численных методов для разумного их применения (знание границ применимости, оценки точности, затрат компьютерных ресурсов и др.). Дело в том, что к результатам компьютерных вычислений всегда нужно относиться критически; анализировать их на правдоподобность, и для того, чтобы избежать "подводных камней" при использовании любого стандартного пакета, реализующего численные методы, нужно иметь хотя бы минимальное представление о том, какой именно численный метод реализован для решения той или иной задачи и как он «работает».
Поскольку для оценки точности решения необходим материал для сравнения предлагается рассматривать приближенные (численные) методы решения применительно к тем задачам, для которых ранее было получено аналитическое решение (т.е. линейных уравнений вида (1)). Обозначим Поэтому, идея применения численных методов для решения уравнения старших порядков, в принципе, ничем не отличается от идеи численного решения уравнения первого порядка, которые рассматривались в лабораторной работе №10. Нетрудно расширить применение описанной выше методики на случай системы линейных уравнений. В примерах 2 и 3 представлены реализации метода Эйлера в рамках векторной процедуры и с помощью программы-функции. В обоих случаях получены одинаковые результаты, которые поверяются по полученному ранее (см. пример 1) аналитическому решению. Решение приближенное и точное сильно отличаются и величина относительной ошибки (для выбранного шага) составляет ~13%. Пример 3 нетрудно оптимизировать и придать ему более компактный вид, считая начальные условия и правые части системы уравнений компонентами некоторых векторов. Также допустима доработка программы-функции на случай любого числа уравнений путем изменения числа аргументов программы-функции, а также числа строк в программе: в задании начальных условий и в цикле вычисления массива решений. Аналогично методу Эйлера векторная и программная реализации вычислений по методу Рунге-Кутта могут быть распространены на случай решения системы дифференциальных уравнений. Прямое решение задачи в этом случае представляется достаточно громоздким и желательно предусмотреть расчета констант метода в рамках внутренних циклов. В пакете MathCAD имеются встроенные функции, решающие подобные задачи. Так, процедуру расчета приближенного решения по методу Рунге-Кутта решается с помощью функций rkfixed и Rkadapt. Пример решения той же системы дифференциальных уравнений дан в примере 4. Отличие в точности полученных решений для данного дифференциального уравнения невелико, однако, если решением дифференциального уравнения является сильно осциллирующая функция, то метод с переменным шагом обеспечивает большую точность. Примеры решения различных уравнений с помощьюкомпьютерного пакета MathCAD. Задание к контрольной роботе: Дифференцируем левые части уравнения методом Лапласа, а затем суммируем их. Заменяя функцию y(x) на Y, получим выражение, которое потом упрощаем с помощью функции collect. Находим правую часть уравнения таким же способом Получаем исходное алгебраическое уравнение которое решаем в символьном виде: Решение уравнения Теперь выполняем обратное преобразование и находим решение исходной дифференциальной задачи Ответ Проводим проверку правильности начальных условий, используя функцию subtitute Графическое представление результатов решения:
|