Previous: Дифференциальные уравнения в Maxima, Up: Дифференциальные уравнения [Contents][Index]
Решает краевую задачу для дифференциального уравнения второго порядка.
Здесь solution - общее решение уравнения, полученное ode2
; xval1
задает значение независимой переменной в начальной точке в виде
x = x1
и yval1 задает значение зависимой переменной
в этой точке в виде y = y1
. Выражения xval2 и yval2
определяют значения для этих переменных во второй точке, используя ту же запись.
Пример использования см. в ode2
.
Функция desolve
решает линейные системы обыкновенных дифференциальных уравнений
при помощи преобразования Лапласа. Здесь eqn - дифференциальные уравнения со
связанными переменными x_1, ..., x_n. Функциональная зависимость между
x_1, ..., x_n или от независимой переменной, например, x,
должна явно задаваться в переменных и их производных. Например, следующее определение
двух уравнений неверно:
eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x); eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
Правильная запись -
eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x); eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
Тогда вызов функции desolve
будет иметь вид
desolve([eqn_1, eqn_2], [f(x),g(x)]);
Если известны начальные условия в x=0
, то при помощи atvalue
их можно
дополнительно определить до вызова desolve
.
(%i1) 'diff(f(x),x)='diff(g(x),x)+sin(x); d d (%o1) -- (f(x)) = -- (g(x)) + sin(x) dx dx (%i2) 'diff(g(x),x,2)='diff(f(x),x)-cos(x); 2 d d (%o2) --- (g(x)) = -- (f(x)) - cos(x) 2 dx dx (%i3) atvalue('diff(g(x),x),x=0,a); (%o3) a (%i4) atvalue(f(x),x=0,1); (%o4) 1 (%i5) desolve([%o1,%o2],[f(x),g(x)]); x (%o5) [f(x) = a %e - a + 1, g(x) = x cos(x) + a %e - a + g(0) - 1] (%i6) [%o1,%o2],%o5,diff; x x x x (%o6) [a %e = a %e , a %e - cos(x) = a %e - cos(x)]
Если desolve
не может получить решение, возвращается false
.
Решает задачи с начальными условиями для дифференциальных уравнений
первого порядка. Здесь solution - общее решение уравнения, полученное
ode2
; xval задает начальное значение независимой переменной
в виде x = x0
, и yval задает начальное значение зависимой
переменной в виде y = y0
.
Пример использования см. в ode2
.
Решает задачи с начальными условиями для дифференциальных уравнений
второго порядка. Здесь solution - общее решение уравнения, полученное
ode2
; xval задает начальное значение независимой переменной
в виде x = x0
, yval задает начальное значение зависимой
переменной в виде y = y0
, и dval задает начальное значение
для первой производной зависимой переменной по независимой в виде
diff(y,x) = dy0
(перед diff
не нужно ставить кавычку).
Пример использования см. в ode2
.
Функция ode2
решает обыкновенное дифференциальное уравнение (ОДУ)
первого или второго порядка. Она принимает три аргумента: ОДУ eqn,
зависимую переменную dvar и независимую переменную ivar.
При удачном результате возвращается явное или неявное решение относительно
зависимой переменной. %c
используется для представления константы
интегрирования в случае уравнений первого порядка; %k1
и %k2
-
константы в решениях уравнений второго порядка. Зависимость зависимой
переменной от независимой не требуется указывать явно, как в случае с
desolve
, но независимая переменная должна всегда указываться в
качестве третьего аргумента.
Если по каким-то причинам ode2
не может получить решение, возвращается
false
, и, возможно, печатается сообщение об ошибке. Методы
решения уравнений первого порядка (в том порядке, в каком Maxima пытается
их применять): линейный, разделение переменных, явный - возможно, используется
интегрирующий множитель, однородное уравнение, уравнение Бернулли и обобщенный
однородный метод.
Типы решаемых уравнений второго порядка: уравнение с постоянными коэффициентами, явное, линейное однородное с непостоянными коэффициентами, преобразующимися к постоянным, уравнение Эйлера (или равноразмерное), уравнения, решаемые методом вариации переменных, а также уравнения без независимой или зависимой переменной, сводимые для последующего решения к линейным уравнениям первого порядка.
В ходе решения ОДУ чисто для справки устанавливается несколько переменных:
method
указывает на использованный метод решения (например, linear
),
intfactor
- использованный интегрирующий множитель, odeindex
-
коэффициент, примененный в методе Бернулли или обобщенном однородном методе, а
yp
- частное решение для метода вариации переменных.
Для решения задач с начальными условиями для уравнений первого и второго
порядка доступны функции ic1
и ic2
, а для решения краевых задач
может использоваться функция bc2
.
Пример:
(%i1) x^2*'diff(y,x) + 3*y*x = sin(x)/x; 2 dy sin(x) (%o1) x -- + 3 x y = ------ dx x (%i2) ode2(%,y,x); %c - cos(x) (%o2) y = ----------- 3 x (%i3) ic1(%o2,x=%pi,y=0); cos(x) + 1 (%o3) y = - ---------- 3 x (%i4) 'diff(y,x,2) + y*'diff(y,x)^3 = 0; 2 d y dy 3 (%o4) --- + y (--) = 0 2 dx dx (%i5) ode2(%,y,x); 3 y + 6 %k1 y (%o5) ------------ = x + %k2 6 (%i6) ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2)); 3 2 y - 3 y (%o6) - ---------- = x 6 (%i7) bc2(%o5,x=0,y=1,x=1,y=3); 3 y - 10 y 3 (%o7) --------- = x - - 6 2
Previous: Дифференциальные уравнения в Maxima, Up: Дифференциальные уравнения [Contents][Index]