Опубликован: 19.11.2012 | Уровень: для всех | Доступ: свободно
Лекция 12:

Системы компьютерной математики (СКМ)

12.4. Решение дифференциальных уравнений в СКМ

Решение дифференциальных уравнений (ДУ) является одной из самых сложных задач математики. Она возникает практически во всех областях знаний: в науке, в технике, в экономике. Как известно, дифференциальные уравнения делятся на обыкновенные (ОДУ) и дифференциальные уравнения в частных производных – по-другому их называют уравнениями математической физики. Последние и представляют более общий инструмент исследования, но большие трудности в их решении заставляют, по возможности, применять аппарат ОДУ. Это нашло отражение в средствах пакетов СКМ и, в частности, в MathCad, где приводится мощный и разнообразный аппарат работы с ОДУ.

Методы их численного решения глубоко разработаны в вычислительной математике, широко алгоритмизированы и представлены в MathCad практически в полном объеме. Поэтому не будем подробно останавливаться на этой теме, а перейдем к аналитическим методам решения ДУ в MathCad.

Сразу отметим, что в СКМ Mathematica и Marpl имеются встроенные блоки решения ОДУ в символьной форме; разработчики КСМ MathCad пошли другим путем: специального обособленного инструмента решения ОДУ в ней нет. Для решения ОДУ предлагается последовательно применять набор встроенных операторов. Ниже покажем, что это не является недостатком этого пакета.

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

Известно, что решение ЛОДУ в общем виде равно сумме общего решения однородного ЛОДУ (с нулевой правой частью), и какого-либо частного решения неоднородного ЛОДУ.

Покажем, как эта задача решается в СКМ Mathematica 5, где имеются встроенные блоки решения ОДУ. Для решения ЛОДУ используют встроенную функцию DSolve[ ] следующим образом.

DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]

После исполнительной команды – одновременного нажатия клавиш Shift и Enter, сразу получим результат:

DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]

{{x[t] \to -1/4e^{-4t}C[1]+C[2]-Cos[2t]-1/2Sin[2t]}}

Обратите внимание на несколько необычный способ записи функций: при помощи квадратных скобок; но это, равно как и исполнительная команда на выполнение вычислений одновременным нажатием клавиш Shift и Enter, – специфические особенности СКМ Mathematica.

Для решения подобного уравнения СКМ MathСad, где такие решающие блоки отсутствуют, рекомендуется применять операторные методы – прямое и обратное преобразование Лапласа или Фурье. Напомним, что смысл этого метода заключается в переходе от искомой функции, называемой оригиналом, к особым интегральным функциям комплексного переменного s – так называемым изображениям, в результате чего после подстановки изображения вместо оригинала в линейное ДУ операция дифференцирования относительно новой переменной заменяется операцией умножения на соответствующий новый аргумент s, а само ДУ n-й степени преобразуется в многочлен этой же степени относительно s, называемый характеристическим. Определив корни характеристического многочлена и выполнив обратный переход от изображения к оригиналу при помощи обратного преобразования Лапласа или Фурье, соответственно, легко можно отыскать решение исходного ДУ.

Конкретные действия для решения указанной задачи следующие.

Пусть дано исходное ЛОДУ:

\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t):=10sin(2t)

Его необходимо записать в форме с нулевой правой частью:

\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t) ( **)

Вызывать с панели Symbolic оператор laplace и задать исполнение \to:

\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t) laplace, \blacksquare \to

в результате получается малопонятное выражение, в котором обозначим изображение функции одной буквой, например, h, выражения для начальных значений функции и первой производной заменим, например, на Х0 и Х10, соответственно. После всех этих преобразований и замен будет получено следующее выражение:

s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}

Очень неудобно. Беда еще, к сожалению, в том, что оператор laplace иногда отказывается работать.

Поэтому проще самим написать изображение для уравнения (**) без помощи оператора laplace. При этом производные заменяются изображениями согласно известной теореме по образцу, приведенному в таблице 12.2.

s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}

Таблица 12.2. Результат применения преобразования Лапласа к производным различных порядков
Производные оригинала Изображение производной
X(t) h
X'(t) s \bullet h – X(0)
X''(t) s \bullet (s \bullet h – X(0)) – X'(0)
X'''(t) s \bullet ( s \bullet ( s \bullet h – X(0)) – X'(0)) – X''(0)

Здесь через X(0), X'(0), X''(0) обозначены начальные условия для производных указанных порядков, в нашем примере они обозначены согласно таблице 12.3.

Таблица 12.3. Обозначения в примере (*) начальных условий для производных различных порядков
Начальные условиядля производных Обозначения в рассматриваемом примере
X(0) X0
X'(0) X10

Продолжить таблицу 2 в случае необходимости не представляет труда – последующая строка легко получается из предыдущей.

Далее при самостоятельном задании изображения для уравнения (**) к правой части уравнения (*) отдельно применим оператор laplace:

10sin(2t) laplace, t \to \frac {20}{s^2+4}

Подставим в исходное уравнение (**) и получим следующее выражение:

s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}

Разрешим это уравнение относительно Z оператором solve и применим обратное преобразование Лапласа invlaplace (оба с панели Symbolic)

s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4} solve,h \to \frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s}

\frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s} invlaplace,s \to X0+ \frac{X10}{4} - cos(2t)- \frac{e^{-4t}}{4} -\frac{sin(2t)}{2}- \frac{X10e^{-4t}}{4} +\frac {5}{4}

Это и есть решение ЛОДУ (*), отличия от решения СКМ Mathematica – в форме представления постоянной интегрирования. В последнем случае оно содержат начальные условия в явном виде.

Аннна Миллер
Аннна Миллер
какой функционал присутствующий сегодня в компютерах на уровне ассемблера представлял фортран во время его введения в использова
Екатерина Дмитриева
Екатерина Дмитриева
Какое средство редактора VB позволяет переносить пользовательские формы из одного документа или приложения в другие?
Лариса Перерва
Лариса Перерва
Россия, Владивосток, ДВГУ, 1986
Александр Игнатьев
Александр Игнатьев
Россия, Саратов, Саратовский государственный университет, 1993