解一个微分方程组

用。来求解一个包含多个变量的常微分方程组dsolve功能,有或没有初始条件。为了解决单个差分方程,见解微分方程

求解微分方程组

解这个线性一阶微分方程组。

d u d t = 3. u + 4 v , d v d t = 4 u + 3. v

首先,代表uv通过使用信谊创建符号函数U(T)v (t)

信谊u (t) v (t)

使用以下工具定义方程= =以及使用所述代表分化diff函数。

ode1 = diff(u) == 3*u + 4*v;ode2 = diff(v) == -4*u + 3*v;常微分方程= [ode1;ode2]
常微分方程(t) = diff (u (t) t) = = 3 * u (t) + 4 * v (t) diff (v (t), t) = = 3 * v (t) - 4 * u (t)

用。求解方程组dsolve函数,该函数将解决方案作为结构的元素返回。金宝搏官方网站

S = dsolve(常微分方程)
S = struct with fields: v:[1×1 sym] u:[1×1 sym]

如果dsolve不能解出你的方程,那就试着用数值解出方程。看到数值求解二阶微分方程

访问U(T)v (t),索引到结构中年代

uSol S (t) =。uv年代ol(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(ode)
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)

常数C1C2出现是因为没有指定任何条件。用初值条件解方程组u (0) = = 0v (0) = = 0。的dsolve函数查找满足这些条件的常数的值。

COND1 = U(0)== 0;COND2 = V(0)== 1;conds = [COND1;COND2];[USOL(T),vSol(T)] = dsolve(赋,conds)
uSol (t) =罪(4 * t * exp (3 * t) vSol (t) = cos (4 * t * exp (3 * t)

使用以下工具可视化解决方案fplot

fplot (uSol)fplot (vSol)网格传奇(“uSol”,“vSol”,'位置',“最佳”)

以矩阵形式解微分方程

用矩阵形式解微分方程dsolve

考虑这个微分方程组。

d x d t = x + 2 y + 1 , d y d t = x + y + t

方程组的矩阵形式为

( x y ] = ( 1 2 1 1 ] ( x y ] + ( 1 t ]

Y = ( x y ] , 一个 = ( 1 2 1 1 ] , B = ( 1 t ]

系统现在是Y′=一个Y+B

定义这些矩阵和矩阵方程。

syms x(t) y(t) A = [12;1 1];B = [1;t];Y = [x;y);ode = diff(Y) == A*Y + B
常微分方程(t) = diff (x (t), t) = = x (t) + 2 * y (t) + 1 diff (y (t), t) = = t - x (t) + y (t)

利用矩阵方程求解dsolve。使用。来简化该解决方案简化函数。

[xSol(t), ySol(t)] = dsolve(ode);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) *罪(2 ^ (1/2)* t) + 1/9 ySol (t) = C1 * exp (t) * cos (2 ^ (1/2) * t - t / 3 C2 * exp (t) *罪(2 ^ (1/2)* t) - 2/9

常数C1C2出现是因为没有指定任何条件。

用初值条件解方程组u(0)= 2v(0)= 1。当指定以矩阵形式方程,你必须得指定矩阵形式的初始条件。dsolve找到满足这些条件的常数的值。

C = Y(0) == [2;1);[xSol(t), ySol(t)] = dsolve(ode,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)fplot (xSol)网格传奇(“ySol”,“xSol”,'位置',“最佳”)

另请参阅