Решите систему нескольких обыкновенных дифференциальных уравнений в нескольких переменных при помощи dsolve
функция, с или без начальных условий. Чтобы решить одно дифференциальное уравнение, смотрите, Решают Дифференциальное уравнение.
Решите эту систему линейных дифференциальных уравнений первого порядка.
Во-первых, представлять и при помощи 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) =
Решите систему с помощью dsolve
функция, которая возвращает решения как элементы структуры.
S = dsolve(odes)
S = struct with fields:
v: C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)
u: C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t)
Если dsolve
не может решить ваше уравнение, затем попытаться решить уравнение численно. Смотрите Решают Дифференциальное уравнение Второго порядка Численно.
Получить доступ к u(t)
и v(t)
, индексируйте в структуру S
.
uSol(t) = S.u
uSol(t) =
vSol(t) = S.v
vSol(t) =
В качестве альтернативы сохраните u(t)
и v(t)
непосредственно путем обеспечения нескольких выходных аргументов.
[uSol(t),vSol(t)] = dsolve(odes)
uSol(t) =
vSol(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) =
vSol(t) =
Визуализируйте решение с помощью fplot
.
fplot(uSol) hold on fplot(vSol) grid on legend('uSol','vSol','Location','best')
Решите дифференциальные уравнения в матричной форме при помощи dsolve
.
Рассмотрите эту систему дифференциальных уравнений.
Матричная форма системы
Пусть
Система теперь .
Задайте эти матрицы и матричное уравнение.
syms x(t) y(t) A = [1 2; -1 1]; B = [1; t]; Y = [x; y]; odes = diff(Y) == A*Y + B
odes(t) =
Решите матричное уравнение с помощью dsolve
. Упростите решение при помощи simplify
функция.
[xSol(t),ySol(t)] = dsolve(odes); xSol(t) = simplify(xSol(t))
xSol(t) =
ySol(t) = simplify(ySol(t))
ySol(t) =
Константы C1
и C2
появитесь, потому что никакие условия не заданы.
Решите систему с начальными условиями и . При определении уравнений в матричной форме необходимо задать начальные условия в матричной форме также. dsolve
находит значения для констант, которые удовлетворяют этим условиям.
C = Y(0) == [2;-1]; [xSol(t),ySol(t)] = dsolve(odes,C)
xSol(t) =
ySol(t) =
Визуализируйте решение с помощью fplot
.
clf fplot(ySol) hold on fplot(xSol) grid on legend('ySol','xSol','Location','best')