УДК 519.688
О НАХОЖДЕНИИ ОБЩЕГО И ЧАСТНОГО РЕШЕНИЙ НЕОДНОРОДНОЙ СИСТЕМЫ ОБЫКНОВЕННЫХ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ С ПОСТОЯННЫМИ
КОЭФФИЦИЕНТАМИ
© М. А. Рыбаков
Ключевые слова: неоднородная система обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами, аналитический метод решения, преобразование Лапласа, система Ма^раг.
Обсуждается алгоритм получения символьного аналитического решения неоднородной системы обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами. Разработанный алгоритм позволяет получить как частное, так и общее решение системы дифференциальных уравнений. Решение системы находится в аналитическом виде и может быть найдено с требуемой точностью. Полученный алгоритм эффективен для решения систем дифференциальных уравнений большого размера. Алгоритм входит в состав библиотеки алгоритмов системы МаШраг. Приводятся примеры решения систем дифференциальных уравнений в системе МаШраг.
1 Введение
Одной из актуальных задач компьютерной алгебры является задача решения систем линейных дифференциальных уравнений с постоянными коэффициентами. Аналитический метод решения таких систем уравнений является сложной задачей, поэтому обычно прибегают к приближенным численным методам. Сегодня масштаб задач изменился и требует других подходов. Одним из современных аппаратов, применяемых для решения дифференциальных уравнений и их систем, является преобразование Лапласа. Преобразование Лапласа позволяет переходить от решения системы дифференциальных уравнений к решению системы алгебраических уравнений и в итоге получать решение в символьном виде.
В параграфе 2 сформулирована постановка задачи решения неоднородных систем обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами в общем виде.
В параграфе 3 приводится алгоритм решения неоднородных систем обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами с помощью преобразования Лапласа. Этот алгоритм состоит из трёх этапов: прямое преобразование Лапласа, решение полученной системы алгебраических уравнений и обратное преобразование Лапласа. Эти этапы подробно рассмотрены в параграфах 4, 5, 6.
В параграфе 7 описана программная реализация полученного алгоритма в системе компьютерной алгебры Ма^раг. Приведены названия соответствующих классов и методов, реализованных в этой системе. Приводятся примеры нахождения общего и частного решений неоднородных систем обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами с помощью разработанных программ.
В параграфе 8 приводится описание существенных особенностей системы МаШраг, которые позволяют решать системы обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами. Приведены примеры решения систем линейных дифференциальных уравнений в системе МаЛраг.
2 Постановка задачи
Пусть задана неоднородная система обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами:
п т (¡к
(^) /г(0> ^¿¿(0 .^к ’ ® 1, ..., 7П, (1^1 £ К, 71, 771 € К, (1)
¿=1 к=0
где а^г — действительные числа, /¿(¿),ж»(£) — ограниченные на М+ функции, имеющие конечное число точек разрыва I рода и удовлетворяющие условиям: /¿(¿) = 0 при ^ < 0, |/г(£)| < Ме*°‘ при г > 0, где М > 0, 0 — некоторые действительные постоянные.
Систему (1) можно записать в матричном виде:
А(1)Х(Ь) = ¿40, (2)
где
Л(Ь) =
( оп{1) я12(г) ... £»1т(0 \
Ан(0 Аг2(£) ••• D2m.it)
\ Аг1(£) АйСО ••• Агт(£) /
Х(1) = [х1(г),...)*„(0]Т, П*) = [/1 (г),...,Ш]Т.
Пусть х\к\ь) обозначает к-тую производную функции * ц(Ь), а числа х^ определяют начальные условия:
х!ч(о) = 4, (з)
где к = 1,2, ...,т - 1, г = 1,2, € М.
Будем полагать, что в общем случае каждая из функций /¿(£) в правой части может иметь вид конечной суммы:
/¿(¿) = ^2 PH(¿)е<М (Ту*) сов^ (Р^)ипгЬвЬер^ - осц),
где а^,/3^,7^,5ц £ е М,ру(£) — полином переменной £, функция ипПБЬер^)
принимает значение 1 для неотрицательных аргументов и значение 0 для остальных.
Требуется найти решение Х^) системы (1) или (2), удовлетворяющее условиям (5), в аналитическом виде.
Решение системы (1) называется частным, когда начальные условия заданы числами. Решение системы (1) называется общим решением, если начальные условия входят в решение свободными переменными, которые можно подобрать так, чтобы решение Х(£) удовлетворяло произвольным начальным условиям.
3 Алгоритм Лапласа
Алгоритм состоит из трёх этапов [1-9].
Этап I. Прямое преобразование Лапласа системы дифференциальных уравнений.
Преобразования Лапласа для функции /(¿):
В результате преобразования функций, стоящих в левой и правой частях системы дифференциальных уравнений (1), и начальных условий (5) по формуле (4) получаем систему алгебраических уравнений:
Здесь Л(р) — образ левой части системы (1), Т{р) — образ правой части системы (1), В{р) — вектор, появляющийся при введении начальных условий (5).
Этап II. Решение полученной алгебраической системы.
Решение алгебраической системы (5) ищем в виде
(4)
А{р)Х(р) - В(р) = Т(р).
(5)
х(р) = Ар) ЧНр) + в(р)).
(б)
Результатом является вектор дробно-рациональных функций от р. Этап III. Обратное преобразование Лапласа.
Обратное преобразование Лапласа для функции Т(;р):
Искомое решение системы (1) задается вектором X(t):
В следующих параграфах подробно рассматривается каждый этап.
4 Прямое преобразование Лапласа
Пусть Т(р) — образ функции /(£) при прямом преобразовании Лапласа. В результате прямого преобразования Лапласа производной гг-ого порядка функции /(£) получим полином степени п
Г ОС
/ f(n\t)e~ptdt = pnF(p) - pn_1/(0) - рп~2 f (0) - ... - /(п_1)(0). Jo
(8)
В результате прямого преобразования Лапласа левая часть системы дифференциальных уравнений преобразуется в матрицу полиномов Л(р) одной действительной переменной р.
roo п т ¿к п
/ 'У у ^ у ак]г Jjfc Xi{t)e р dt — 'У ^ Dji(p)Xj(p), j=1 fc=0 j=l
где Vji(p) = YZL\ dkjiPk-
í ^ll(p) T>V2,{p) ••• Vlm(p) \
A(p)= V21^ p22^ ••• V2m^ (9)
V 2>nl(p) AtfG0) ••• ^nm(p) }
Результатом прямого преобразования Лапласа (4) правой части будет вектор функций.
•F(p) = [/і(р),---,/п(р)]Т,
Каждая из функций /¿(р) является суммой произведений экспоненциальных и дробнорациональных функций
ЛСр) = S—> где ~ полиномы. (10)
j=i
Результатом преобразования начальных условий будет сумма произведений полиномов от р на свободные переменные, обозначающие начальные условия (5):
п т— 1 m—1
^(Р) = £ Л d«(p)xo¡> ^fc(p) = ^ ai+i!¿pl_fc. (11)
г=1 fc=0 i=k
В результате преобразования Лапласа системы обыкновенных линейных дифференциальных уравнений получаем алгебраическую систему линейных уравнений
Х(р) = Л{р)~1{Т(р) + В(р)).
5 Решение алгебраической системы линейных уравнений
Для матрицы полиномов А(р) Є С[р]пхтп , заданной формулой (9), вычисляем обратную матрицу Л-1 = A*{p)/det(A(p)), где А*{р) — присоединённая матрица, det(A(p)) определитель.
Полином сІеі(А(р)) раскладываем на линейные сомножители в области С :
Г
(іеі(А(р)) = Д(р - РкУк, где г ^ пт., рк Є С, єк Є N. (12)
к=0
Раскладываем дробь 1/сіеі(Д(р)) в сумму простых дробей в области С :
1 Г ^ /■
-1,7 л ) \\ = 5^ 7-----Цт;> где Ск є С. (13)
¿еЦ,А(р)) (р - РкУк
Обозначим через #(р) = 7г(р)+В(р) и #(р) = [/її,..., кп]Т . Тогда, используя формулы
(10) и (11), получим:
ТЬ / \ ^. ,р ТЪ ТП 1 772— 1
ь-Е^^+ЕЕ ^/сг(р)а'0г> ^ікір) — ^ ' аі+1 ,гР
]=1 'Р' »=1 к=0 і=к
Пусть V = [«і,..., г>„]т и V = А*(р) ■ Н . Тогда:
" Щ(р)еа<зР
уг = > ^ 4г,) л----, где и^(р), О(р) — ПОЛИНОМЫ.
0{р)
Разложим Уі в сумму простых дробей в области С:
^ = Е (р к_Рк)тк ’ гда^еС, т*єМ- (14)
Найдем решение Х{р) — V • 1 /¿еі(А(р)),
Х(р) = у-'Е —
Пусть Х(р) = \хі,---, Хп]т. Тогда
Ос___
¿¿ІР-РкУ*'
Г}кЄа'зР
*(?) = Е (р-рьУ*’ тет]к е С (15)
Замечание 1. Разложение (12) на множители определителя ¿еЬ(А(р)) требует вычисления корней многочлена. Корни многочлена находятся приближённо. Точность вычислений корней влияет на погрешность решения Х(1) системы (1). Зависимость погрешности получаемого решения системы (1) от точности вычисления корней исследована в работе [10].
6 Обратное преобразование Лапласа
Для каждого элемента вектора Д’(р) = [х1 (р)> • • • > Хп(р)]Т находим обратное преобразование Лапласа (7) Х(Ь) = [ссх(¿),..., х„(£)]т :
х{(Ь) = Ь_1{х»(р)}, где г = 1,2,...,п.
7 Пакет программ и примеры решения систем дифференциальных уравнений
7.1 Пакет программ
Рассмотренный в параграфах 1 — 6 алгоритм был программно реализован в системе компьютерной алгебры Mathpar [11-14].
Разработанный программный пакет laplaceTransform состоит из трёх основных классов.
Класс SystemLDE включает в себя процедуры, предназначенные для решения систем дифференциальных уравнений [15-16]. Процедура systDifEquationToMatrix вычисляет полиномиальную матрицу А(р) для системы (1), которая получается в результате преобразования Лапласа (4) левой части системы (1). Процедура initCondLaplaceTransform вычисляет вектор-функцию В(р), которая получается в результате преобразования Лапласа начальных условий. Процедура primeFractionForSingle предназначена для разложения дроби 1 /f[p) с факторизованным знаменателем /(р) в сумму простых дробей. Числители этих дробей находятся методом неопределённых коэффициентов. Процедура primeFractions предназначена для разложения суммы дробей 52Г=1 V/«(p)> У которых факторизованы знаменатели /¿(р), в сумму простых дробей.
Класс LaplaceTransform включает в себя процедуры, предназначенные для вычисления прямого преобразования Лапласа функций. Процедура vectorLaplaceTransform вычисляет прямое преобразования Лапласа (4) правой части системы (1).
Класс InverseLaplaceTransform включает в себя процедуры, предназначенные для вычисления обратного преобразования Лапласа. Процедура vectorlnverseLaplaceTransform вычисляет обратное преобразования Лапласа для вектор-функции А'(р). В результате получаем решение X(t) системы (1).
Программный пакет laplaceTransform использует следующие программные пакеты системы Mathpar: number, matrix, polynom, func.
Пакет number предназначен для задания числовых множеств и операций над ними. Кроме того, в пакете number имеются два специализированных класса — Product и SumOfProducts. Класс Product включает в себя процедуры, предназначенные для операций над объектами вида:
ЦаГ, (16)
г
где n,i G N,— скалярный объект из системы Mathpar (число, полином, функция). Все элементы в произведении (16) упорядочены некоторым образом. Класс SumOfProducts включает в себя процедуры, предназначенные для операций над объектами вида:
ЕГК1 * <17>
j i
Процедура primeFractions класса SumOfProducts производит разложение объектов класса Product в сумму простых дробей. Процедура jointExpPolSort упрощает и сортирует в определённом порядке объекты класса Product, которые являются слагаемыми в объекте класса SumOfProducts.
Пакет matrix предназначен для операций над числовыми и функциональными матрицами. Процедура matrixAdjointDet пакета matrix позволяет вычислить определитель и
присоединённую матрицу для матрицы полиномов (9). Процедура Бо1уеЬАЕ вычисляет решение системы (5).
Пакет ро1упот предназначен для операций над полиномами. Процедура factorOfPol раскладывает полином одной переменной на множители в поле комплексных чисел.
Пакет /гтс предназначен для операций над композициями трансцендентных и рациональных функций.
7.2 Пример нахождения частного решения системы ЬОЕ
Дана система уравнений:
х"(£) + ?/(£) = яЛ.(£) — $т(£) —
{
у"(£) + х'(£) = с/г(£) — сов(£).
Даны начальные условия:
х(0) = 0; х'(0) = 2; у(0) = 1; г/(0) = 0. (19)
Покажем отдельные этапы решения и используемые процедуры.
1. Прямое преобразование Лапласа.
После применения прямого преобразования Лапласа (4) к левой части системы (18) и при использовании процедуры systDifEquationToMatrix получим полиномиальную матрицу:
А(р)
= ( Р2 Р \
" V р р2 )
В результате применения процедуры уесЬогЬарІасеТгапзіогш, который вычисляет
прямое преобразования Лапласа (4) правой части системы (18), получим:
^(р) = [-Г-Т - ~ггт - 4- - -ггт1Т- (20)
р 1 р -\-1 р р — 1 р + 1
Процедура іпі-ЬСопсІЬарІасеТгах^огш вычисляет прямое преобразование Лапласа начальных условий системы (18):
В(р) = [3,р]Т. (21)
Суммируя векторы (20) и (21), находим образ правой части системы (18) в виде
суммы дробей:
Я -
1 —1 , —1 , о Р , -Р
+ ГЇЇТТ + ~Т + 3, -5---------г + __о , -, + Р
р2 — 1 р2 + 1 р2 ’ р2 — 1 р2 + 1
(22)
2. Решение алгебраической системы.
Используя процедуру таїгіхАс^оіпгВе-Ь, вычисляем определитель и присоединённую матрицу для матрицы полиномов А(р):
А-м=(-Р 7
сІеі(А(р)) = р4 — р2.
Применяя процедуру factorOfPol, раскладываем (1е1{А{р)) на множители в поле комплексных чисел:
сЫ(А(р)) = р2(р - 1)(р + 1).
С помощью процедуры ргз.теРгасЫопРог31.1^1е раскладываем дробь 1 /¿еЬ(А(р)) с факторизованным знаменателем с£е£(Л(р)) в сумму простых дробей. Числители этих дробей находятся методом неопределённых коэффициентов. Для разложения дроби 1 / ¿е1(А(р)) нужно решить систему:
( 1 0 1 1 0 0 0 0 \ (0
0 1 -1 1 0 0 0 0 0
-1 0 0 0 0 0 1 0 0
0 -1 0 0 1 0 0 0 1
0 0 0 0 1 0 1 1 ■ ¥ = 0
0 0 0 0 0 1 -1 1 0
0 0 0 0 -1 0 0 0 0
\ 0 0 0 0 0 -1 0 ч ^0
Для решения системы (23) применяется процедура боіуєЬАЕ.
В результате получим вектор решения: У = [0, — 1,0.5,0.5]т и искомое разложение в сумму простых дробей:
1 _ -1 -0.5 0.5
сІеі(А(р)) . р2 ^р+1^р — 1 Получаем решение алгебраической системы:
Х{р) = А*(р) ■ (1 /¿е«(Л(р))) • Я,
где Я задается формулой (22).
В дальнейших вычислениях мы избегаем операций в поле дробно-рациональных функций и все вычисления производим над полиномами.
Разложим элементы вектора Я, заданного формулой (22), в сумму простых дробей, применяя процедуру ргітеРгасїіопз. Получим вектор элементы которого являются объектами класса БитС^РгосіисІз (17):
Я = [1 • (р2 - I)-1 + (-1) • (р2 + I)-1 + (-1) • (р~2) + 3, р • (р2 - I)"1 + (-р) • (р2 + I)“1 + р]Т
Домножим вектор Я на скаляр 1 /<іе£(Л(р)), применим процедуры ргітеРгасЬіопз и ^оіігЬЕхрРоІБогІ;. В результате получим вектор V, у которого элементы являются упорядоченными суммами простых дробей.
V = [р-4 + 0.75(р - І)'1 + (—0.75)(р + І)"1 + (-1)(р2 - I)'1 + (—0.5)(р2 + I)"1,
р"1 + 0.25(р - І)“1 + (—0.5р - 0.25)(р + І)“1 + (-р)(р2 - I)“1 + (—0.5р)(р2 + 1)"1]г.
Найдем решение А’(р) = V ■ А*(р). К каждому компоненту вектора решения Х(р) применим процедуру ^ііЛЕхрРоІЗогІ;:
[
3. Обратное преобразование Лапласа.
Для вычисления обратного преобразования Лапласа для каждого элемента вектора Я’(р) применим процедуру vectorInverseLaplaceTransf orm. Тогда получим решение X(t) = [x(i), ?/(£)] системы (18):
Г x\t) = t + 0.5е* - 0.5e_i,
\ y{t) = (-t2/2) + 0.5еи + 0.5e-it.
7.3 Пример нахождения общего решения системы LDE
Дана система уравнений:
' x'(t) = y(t) - z(t), y'{t) = x(t) + y(t), (24)
k z'(t) = x{t) + z(t).
Даны начальные условия:
x(0) = a; y(0) = b; z(0) = c. (25)
Покажем отдельные этапы решения и используемые процедуры.
1. Прямое преобразование Лапласа.
Применяем преобразование Лапласа (4) к левой части системы (24), для этого используем процедуру systDifEquationToMatrix:
1 р — 1
А(р) =| 0 — 1 р — 1
р- 1 -1 0
Применяем преобразование Лапласа (4) к правой части системы (24), для этого используем процедуру vectorLaplaceTransform:
F(p) = [0/р, 0/р, 0/р]т. (26)
Процедура initCondLaplaceTransf orm вычисляет прямое преобразование Лапласа начальных условий системы (24):
В(р) = [а, Ъ, с]т. (27)
Суммируя векторы (26) и (27), находим образ правой части системы (24) в виде суммы дробей:
Я = Т(р) + В(р) = [0/р + а, 0/р + Ь, 0/р + с]т.
2. Решение алгебраической системы. ь
Используя процедуру matrixAdjointDet, вычисляем определитель и присоединённую матрицу для матрицы полиномов Л(р):
р — 1 1 р2 — р — 1 А*(р) — [ р2 — 2р+1 р— 1 —р+1
р — 1 р2 — p-fl —1
det(A(p)) = р3 — 2 р2 +р.
/ 1 1 0 0 0 0 ^ /0 \
-2 -1 1 0 0 0 0
1 0 0 0 0 0 1
0 0 0 1 1 0 • У = 0
0 0 0 -2 -1 1 0
\ 0 0 0 1 0 ч ^0/
Применяя процедуру £ асЬогЮТо1, раскладываем с1е1(А(р)) на множители в поле комплексных чисел:
(Ы(А{р)) = р(р- I)2.
С помощью процедуры рг:1теРгас'ЫопРогЗ:11^1е раскладываем дробь 1 /¿еЬ(А(р)) с факторизованным знаменателем с1е1(А(р)) в сумму простых дробей. Числители этих дробей находятся методом неопределённых коэффициентов. Для разложения дроби 1 /¿е1(А(р)) нужно решить систему:
(28)
Для решения системы (28) применяется процедура боіуєЬАЕ.
В результате получим вектор решения: У = [1, -1,1]т и искомое разложение в сумму простых дробей:
1 _ 1 (-1) _________1_
р3 — 2р2 + р р р — 1 (р — I)2'
Получаем решение алгебраической системы:
Х(р) = {1/сІеі{А(р)))-Н.А*(р).
В дальнейших вычислениях мы избегаем операций в поле дробно-рациональных функций и все вычисления производим над полиномами.
Разложим элементы вектора Я, заданного формулой (22), в сумму простых дробей, применяя процедуру ргітеРгасЬіопз. Получим вектор, элементы которого являются объектами класса БитС^РгосІисІз (17):
Я = [а, Ь, с]Т.
Домножим вектор Я на скаляр 1/с?еі(Л(р)), применим процедуры ргітеРгасЬіопз и ^оіпіЕхрРоІЗогЬ. В результате получим вектор V, у которого элементы являются упорядоченными суммами простых дробей.
V = [ар-1 + (—а)(р - I)-1 + а(р - І)-2, £>р_1 + (-Ь)(р - I)-1 + Ь(р - I)-2,
ср-1 + (-с)(р - I)-1 + с(р - 1)-2]Г.
Найдем решение Х(р) = V ■ А*(р). К каждому компоненту вектора решения Х(р) применим процедуру зоіігЬЕхрРоІЗогі:
Х(р) =
/ (Ь+(—а)+(—<=)) , ((-Ь)+а+2с) , (И-(-с)) \ Р Р-1 (Р-1)2
((-Ь)+с+а) (Ь+(-с))
((-С)+(-а)+Ь) і (с+а)Р і ((~с)+Ь)
\ р + Р-1 + (Р-1)2
/
3. Обратное преобразование Лапласа.
Для вычисления обратного преобразования Лапласа для каждого элемента вектора Х{р) применим процедуру vectorInverseLaplaceTransf orm. Тогда получим решение X(t) = [x(t),y(t), z(t)] системы (24): x(t) = ((~ Ь) + с + а) + (Ь + (—с))е4,
< 2/(0 — ((-с) + (_а) + Ь) + (с + a)é + ((-с) + Ь)еН,
k z(t) = (6+ (—а) + (—с)) + ((-£>) + а + 2c)é + (6 + (-с))еН.
Это общее решение позволяет легко получить любое частное решение. Например, получим частное решение системы дифференциальных уравнений (24) при начальных условиях х(0) = 1, у(0) = 2, ,г(0) = 3. Для этого подставим о = 1, Ь = 2, с = 3 в общее решение:
x(t) = 2 — é,
< y(t) = —2 + 4е* — té,
z(t) = —2 + 5е* — te1.
8 Применение системы Mathpar
Разработанный программный пакет входит в систему компьютерной алгебры Mathpar [11]. Веб-система Mathpar предназначена для проведения символьных вычислений в инженерных расчётах, научных исследованиях и образовании. Система Mathpar позволяет оперировать с функциями и функциональными матрицами, получать как точные численноаналитические решения, так и решения, у которых числовые коэффициенты в аналитических выражениях имеют требуемую точность.
Для решения неоднородной системы обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами в системе Mathpar необходимо:
1) задать пространство переменных ( SPACE);
2) задать систему уравнений ( systLDE)',
3) задать начальные условия ( initCond);
4) получить решение ( solveLDE).
Пространство переменных определяется числовым множеством и именами переменных. Пользователь может сменить окружение, задав новое алгебраическое пространство переменных с помощью команды установки, например, « SPACE = Я64[х, у, z] » или « SPACE = Я64[ж, у, z] ». Существует возможность установить разные числовые множества. Числовое множество Я64 — это 8-байтовые числа с плавающей точкой. Числовое множество R — это множество приближенных действительных чисел с плавающей точкой, у которых число точных десятичных позиций после запятой, состоит из определяемого произвольного числа десятичных цифр, количество которых может задавать пользователь.
Кроме того, можно использовать вспомогательные средства системы Mathpar, такие как:
1) если, установлено числовое множество R, то команда « ACCU RACY = т» устанавливает число точных десятичных прзициЗ после запятой ( т );
2) команда настройки окружения « FLOATPOS = п » устанавливает число десятичных знаков после запятой (п), которые должны появиться при выводе числового результата приближенных вычислений. Этот параметр задает только количество знаков при выводе ответа, но не влияет на точность вычислений.
Пример 1. Решить систему уравнений (18) с начальными условиями (19).
Ввод данных для решения задачи в системе Mathpar
SPACE = i?64[f];
g = systLDE(d(x, t, 2) + d(y, t) = sh(t) - sin{t) - t, d{y, t, 2) + d{x, t) = ch(t) - cos(i));
h = solveLDE(g, /); print (h)',
Система Mathpar сначала выводит исходную задачу в следующем виде:
Jxt = t + 0.5е‘ — 0.5е ь,
\yt = (~t2/2) + 0.5еи + 0.5е-и.
Пример 2. Решить систему уравнений (24) с начальными условиями (25). Ввод данных для решения задачи в системе Mathpar
SPACE = Д64[£];
д = systLDE(d\x, t) — у + z = 0, — х — у + d(y, t) = 0, — х — z + d(z, t) = 0);
/ = initCond(d(x, t, 0,0) = a, d(y, t, 0,0) = b, d(z, t, 0,0) = c); h = solveLDE(g, /); print (/i);
Система Mathpar сначала выводит исходную задачу в следующем виде:
/ = initCond(d(x, t, 0,0) = 0, d(x, t, 0,1) = 2, d(y, t, 0,0) = 1), d{y, t, 0,1) = 0);
SPACE = Д64[г];
h = solveLDE(g, /);
print{h)\
И после этого выводит решение:
SPACE = Я64[г]; х[ -yt + zt = 0,
g =î; -Xt -yt + y't = 0, k-Xt - zt + z't = 0.
%
h = solveLDE(g, /); print (h);
И после этого выводит решение:
xt = —b + c + a+(b + (~с))еь,
< Vt = — с + (-а) + 6 + (с + а)еь + (—с + 6)е*£,
zt = b+ (—а) + (—с) + (—6 + а + 2 с)е* + (Ь + (-с))еН.
9 Заключение
В работе описан алгоритм для нахождения общего и частного решений неоднородной системы обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами. Алгоритм основан на методе преобразования Лапласа, который позволяет свести задачу решения системы обыкновенных линейных дифференциальных уравнений к алгебраической системе уравнений. Разработанный алгоритм позволяет получить как частное, так и общее решение системы дифференциальных уравнений. Решение системы находится в аналитическом виде. Встроен механизм, регулирующий точность получаемого решения. Полученный алгоритм эффективен для решения систем дифференциальных уравнений большого размера.
Разработанный алгоритм был программно реализован. Полученный программный пакет доступен для вычислений в веб-системе Mathpar. Система компьютерной алгебры
Mathpar позволяет находить общее и частное решения для системы обыкновенных линейных дифференциальных уравнений с постоянными коэффициентами.
ЛИТЕРАТУРА
1. Анго А. Математика для электро- и радиоинженеров. С предисловием Луи Де Бройля. М.: Наука, 1964.
2. Боярчук А.К., Головач Г.П. Справочное пособие по высшей математике. Т.5: Дифференциальные уравнения в примерах и задачах. М.: Эдиториал УРСС, 2001.
3. Карташев А.П., Рождественский Б.Л. Обыкновенные дифференциальные уравнения и основы вариационного исчисления. М.: Наука. Главная редакция физико-математической литературы, 1979.
4. Микусинский Я. Операторное исчисление. М.: ИЛ, 1956.
5. Диткин В. А., Прудников А. П. Интегральные преобразования и операционное исчисление. М.: Физматгиз, 1974.
6. Шостак Р.Я. Операционное исчисление. Краткий курс. Изд. второе, доп. Учебное пособие для втузов. М.: Высшая школа, 1972.
7. Старков В.Н. Операционное исчисление и его применения. Учебное пособие. СПб.: изд. СПбГУ, 2000.
8. Ван-дер Поль Б., Бремер X. Операционное исчисление на основе двустороннего преобразования Лапласа. М.: ИЛ, 1952.
9. Дёч Г. Руководство к практическому применению преобразованию Лапласа. М.: Наука, главная редакция физико-математической литературы, 1965.
10. Malaschonok N.A. An Algorithm for Symbolic Solving of Differential Equations and Estimation of Accuracy // Computer Algebra in Scientific Computing. LNCS 5743. Berlin: Springer, 2009. P. 213-225.
11. Малашонок Г.И., Бетин A.A., Рыбаков М.A., Смирнов P.A. Параллельная компьютерная алгебра. Часть 3. Учебное пособие. Тамбов: Издательский дом ТГУ им. Г.Р. Державина, 2012.
12. Malaschonok G.I. Project of Parallel Computer Algebra // Tambov University Reports. Series: Natural and Technical Sciences. V. 15. Issue 6. 2010. P. 1724-1729.
13. Малашонок Г.И. Компьютерная математика для вычислительной сети // Вестник Тамбовского университета. Сер.: Естественные и технические науки. Том 15. Вып. 1. 2010. С. 322-327.
14. Малашонок Г. И. О проекте параллельной компьютерной алгебры // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 4. 2009. С. 744-748.
15. Малашонок Г.И. О вычислении ядра оператора, действующего в модуле // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 13. Вып. 1. 2008. С. 129-131.
16. Рыбаков М.А. Решение систем линейных дифференциальных уравнений с кусочно-непрерывными правыми частями с помощью преобразования Лапласа // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 15. Вып. 4. 2010. С. 339-341.
17. Рыбаков М. А. Решение систем линейных дифференциальных уравнений с постоянными коэффициентами с помощью преобразования Лапласа // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 4. 2009. С. 791-792.
БЛАГОДАРНОСТИ: Работа выполнена при поддержке РФФИ (грант № 12-07-00755-а) и программы «Развитие потенциала высшей школы» (проект 2.1.1/10437).
Поступила в редакцию 20 февраля 2012 г.
COMPUTATION GENERAL AND PARTICULAR SOLUTIONS OF THE INHOMOGENEOUS SYSTEM OF ORDINARY DIFFERENTIAL EQUATIONS
WITH CONSTANT COEFFICIENTS
© Mikhail Anatolyevich Rybakov
Tambov State University named after G.R. Derzhavin, Internatsionalnaya, 33, Tambov, 392000, Russia, Post-graduate Student of Mathematical Analysis Department, e-mail:
Key words: inhomogeneous system of linear ordinary differential equations with constant coe fficients, analytical method of solution, Laplace transform, the algorithm Laplace,
Mathpar system.
We discuss the algorithm for obtain the symbolic analytical solution of inhomogeneous system of ordinary linear differential equations with constant coefficients. The developed algorithm may be used for obtaining partial and general solutions of differential equations in an analytical form. It may be used for obtaining the solution with the required accuracy. This algorithm is efficient for the solution of large systems of differential equations. This algorithm is a part of the Mathpar computer algebra system.
We demonstrate several examples in the Mathpar system.