Решите систему из нескольких обыкновенных дифференциальных уравнений в нескольких переменных с помощью dsolve функция, с начальными условиями или без них. Для решения одного дифференциального уравнения см. раздел Решение дифференциального уравнения.
Решите эту систему линейных дифференциальных уравнений первого порядка.
− 4u + 3v.
Во-первых, представляем u и v с помощью syms для создания символьных функций u(t) и v(t).
syms u(t) v(t)
Определение уравнений с помощью == и представляют собой дифференциацию с использованием diff функция.
ode1 = diff(u) == 3*u + 4*v; ode2 = diff(v) == -4*u + 3*v; odes = [ode1; ode2]
odes(t) = diff(u(t), t) == 3*u(t) + 4*v(t) diff(v(t), t) == 3*v(t) - 4*u(t)
Решить систему с помощью dsolve функция, которая возвращает решения как элементы структуры.
S = dsolve(odes)
S =
struct with fields:
v: [1×1 sym]
u: [1×1 sym]Если dsolve не удается решить уравнение, затем попробуйте решить уравнение численно. См. раздел Численное решение дифференциального уравнения второго порядка.
К доступу u(t) и v(t), индексировать в структуру S.
uSol(t) = S.u vSol(t) = S.v
uSol(t) = C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t) vSol(t) = C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)
Также можно сохранить u(t) и v(t) непосредственно путем предоставления нескольких выходных аргументов.
[uSol(t), vSol(t)] = dsolve(odes)
uSol(t) = C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t) vSol(t) = C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)
Константы C1 и C2 , поскольку условия не указаны. Решить систему с начальными условиями u(0) == 0 и v(0) == 0. dsolve функция находит значения для констант, удовлетворяющих этим условиям.
cond1 = u(0) == 0; cond2 = v(0) == 1; conds = [cond1; cond2]; [uSol(t), vSol(t)] = dsolve(odes,conds)
uSol(t) = sin(4*t)*exp(3*t) vSol(t) = cos(4*t)*exp(3*t)
Визуализация решения с помощью fplot.
fplot(uSol) hold on fplot(vSol) grid on legend('uSol','vSol','Location','best')

Решение дифференциальных уравнений в матричной форме с помощью dsolve.
Рассмотрим эту систему дифференциальных уравнений.
= − x + y + t.
Матричная форма системы:
+ [1t].
Давайте
B = [1t].
Теперь система имеет значение Y ′ = AY + B.
Определите эти матрицы и матричное уравнение.
syms x(t) y(t) A = [1 2; -1 1]; B = [1; t]; Y = [x; y]; odes = diff(Y) == A*Y + B
odes(t) = diff(x(t), t) == x(t) + 2*y(t) + 1 diff(y(t), t) == t - x(t) + y(t)
Решите матричное уравнение с помощью dsolve. Упрощение решения с помощью simplify функция.
[xSol(t), ySol(t)] = dsolve(odes); xSol(t) = simplify(xSol(t)) ySol(t) = simplify(ySol(t))
xSol(t) = (2*t)/3 + 2^(1/2)*C2*exp(t)*cos(2^(1/2)*t) + 2^(1/2)*C1*exp(t)*sin(2^(1/2)*t) + 1/9 ySol(t) = C1*exp(t)*cos(2^(1/2)*t) - t/3 - C2*exp(t)*sin(2^(1/2)*t) - 2/9
Константы C1 и C2 , поскольку условия не указаны.
Решите систему с начальными условиями u (0 ) = 2 и v ( 0) = -1. При задании уравнений в матричной форме необходимо также указать начальные условия в матричной форме .dsolve находит значения констант, удовлетворяющие этим условиям.
C = Y(0) == [2; -1]; [xSol(t), ySol(t)] = dsolve(odes,C)
xSol(t) = (2*t)/3 + (17*exp(t)*cos(2^(1/2)*t))/9 - (7*2^(1/2)*exp(t)*sin(2^(1/2)*t))/9 + 1/9 ySol(t) = - t/3 - (7*exp(t)*cos(2^(1/2)*t))/9 - (17*2^(1/2)*exp(t)*sin(2^(1/2)*t))/18 - 2/9
Визуализация решения с помощью fplot.
clf fplot(ySol) hold on fplot(xSol) grid on legend('ySol','xSol','Location','best')
