Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8_Диференціальні рівняння.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.26 Mб
Скачать

8.4. Розв‘язування звичайних диференціальних рівнянь (здр)

у Maxima

8.4.1. Символьний (аналітичний) розв‘язок здр

У Maxima представляється можливим за допомогою спеціальних засобів проводити аналітичний розв‘язок задачі Коші для систем звичайних диференціальних рівнянь, заданих як в явній формі dx/dt = F(t, x), так і в неявній Mdy/dt = F(t, x), де М - матриця. Такі засоби називають солверами ЗДР (solver ODE), що забезпечують користувачеві можливість вибору методу, завдання початкових умов та ін. Одним з таких засобів є функція ode2, що дозволяє розв‘язування в символьному виді звичайних диференціальних рівнянь першого і другого порядків.

Синтаксис виклику функції ode2

ode2(eqn, dvar, ivar),

де eqn - вираз, що визначає вид диференціального рівняння;

dvar - залежна змінна;

ivar - незалежна змінна.

За допомогою функції ode2 можуть бути вирішені наступні типи ЗДР першого порядку : лінійні, ЗДР із змінними, що розділяються, однорідні ЗДР, рівняння в повних диференціалах, рівняння Бернуллі, узагальнені однорідні рівняння.

Крім того, за допомогою функції ode2 можуть бути розв‘язані наступні типи рівнянь другого порядку : з постійними коефіцієнтами; у повних диференціалах; лінійні однорідні із змінними коефіцієнтами, які можуть бути зведені до рівнянь з постійними коефіцієнтами; рівняння Ейлера; рівняння, які можуть бути розв‘язані методом варіації постійних; рівняння, вільні від незалежної змінної, допускають пониження порядку.

Тип використовуваного методу зберігається в змінній method. При використанні інтегруючого множника він зберігається в змінній intfactor. Частковий розв‘язок неоднорідного рівняння зберігається в змінній yp.

Для відшукування часткових розв‘язків задач Коші з початковими умовами використовуються функції ic1 (для рівнянь першого порядку) і ic2 (для рівнянь другого порядку).

Якщо ode2 не може отримати розв‘язок, вона повертає значення false.

Розглянемо приклади використання функції ode2.

Розв‘язати звичайне диференціальне рівняння

(%(%i1) ode2('diff(y, x)=2*y+exp(x), y, x);

(%(%o1) y=(%c - %e^(- x)) *%e^(2*x)

система Maxima повернула загальний розв‘язок рівняння, де %c - постійна інтегрування рівняння першого порядку.

Інший приклад для рівняння другого порядку -

(%(%i5) ode2('diff(y, x, 2) - 3*'diff(y, x)+2*y=0, y, x);

(%(%o5) y=%k1*%e^(2*x) +%k2*%e^x

тут %k1 і %k2 - постійні інтегрування рівняння другого порядку. Для даного рівняння другого порядку визначимо частковий розв‘язок, що задовольняє початковим умовам при x = 0 y = 1, (задача Коші).

(%(%i6) ic2(%x=0, y=1, diff(y, x)=2);

(%(%o6) y=%e^(2*x)pflfx, риваемого уравнения второго порядка определим частное решение, удовлетворяющее начальным условиям000000000000000000000

Диференціальні рівняння першого порядку

Рівняння із змінними, що розділяються

Визначаємо частковий розв‘язок

Однорідне рівняння

Знаходимо загальний розв‘язок цього рівняння

Частковий розв‘язок -

Лінійне рівняння

Диференціальні рівняння другого порядку

Неоднорідне рівняння з дійсним корінням характеристичного рівняння

Частковий розв‘язок неоднорідного рівняння зберігається в змінній yp :

Неоднорідне рівняння з комплексним корінням характеристичного рівняння

(% (%i21) ode2(de1, y, x);

(% (%o21) y=(2*x*sin(1-2*x^2)*cos(x))/8+%k1*sin(x) +%k2*cos(x)

Рівняння із змінними коефіцієнтами

Рішення системи диференціальних рівнянь

Система диференціальних рівнянь в символьному режимі (аналітично) розв‘язується за допомогою функції desolve

Синтаксис виклику desolve :

desolve(delist, fnlist),

де delist - список розв‘язуваних диференціальних рівнянь, fnlist - список шуканих функцій. При використанні desolve необхідно явно задавати функціональні залежності (замість ′diff(y, x) використовувати запис diff(y(x), x)).

Приклад використання функції desolve : Розв‘язати систему рівнянь

(%(%i1) eq1: diff(f(x), x)=diff(g(x), x)+sin(x);

(%(%o1) 'diff(f(x), x, 1)='diff(g(x), x, 1)+sin(x)

(%(%i3) eq2: diff(g(x), x, 2)=diff(f(x), x) - cos(x);

(%(%o3) 'diff(g(x), x, 2)='diff(f(x), x, 1) - cos(x)

(%(%i4) desolve([eq1, eq2],[f(x), g(x)]);

(%(%o4) [f(x) =%e^x*(at('diff(g(x), x, 1), x=0)) - at('diff(g(x), x, 1), x=0)+f(0)

g(x) =%e^x*(at('diff(g(x), x, 1), x=0)) - at('diff(g(x), x, 1), x=0)+cos(x)+g(0) - 1]