[每日一氵]求解一阶线性常系数微分方程组

求解一阶线性常系数微分方程组

关键字有这么多:

  • 一阶
  • 线性
  • 常系数
  • 微分方程

直接给例子吧:
d x 1 d t = x 2 d x 2 d t = x 3 d x 3 d t = − 6 x 1 − 11 x 2 − 6 x 3 \begin{aligned} \frac{dx_1}{dt} &= x_2 \\ \frac{dx_2}{dt} &= x_3 \\ \frac{dx_3}{dt} &= -6x_1 - 11x_2 - 6x_3 \end{aligned} dtdx1dtdx2dtdx3=x2=x3=6x111x26x3

则可以有:
x ˙ = A x \dot{x} = A x x˙=Ax

A = [ 0 1 0 0 0 1 − 6 − 11 − 6 ] A=\begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ -6 & -11 & -6 \end{bmatrix} A=0061011016

A A A特征值,并将其对角化,有:

Λ = [ − 1 − 2 − 3 ] \Lambda = \begin{bmatrix} -1 & & \\ & -2 & \\ & & -3 \end{bmatrix} Λ=123

A A A的一组特征向量:
ξ 1 = [ 1 − 1 1 ] , ξ 2 = [ 1 − 2 4 ] , ξ 2 = [ 1 − 3 9 ] \xi_1= \begin{bmatrix} 1\\ -1\\ 1 \end{bmatrix}, \xi_2= \begin{bmatrix} 1\\ -2\\ 4 \end{bmatrix}, \xi_2= \begin{bmatrix} 1\\ -3\\ 9 \end{bmatrix} ξ1=111,ξ2=124,ξ2=139

由于 A A A Λ \Lambda Λ相似,有:

Λ = P − 1 A P \Lambda = P^{-1} A P Λ=P1AP

其中,
P = [ ξ 1 , ξ 2 , ξ 3 ] = [ 1 1 1 − 1 − 2 − 3 1 4 9 ] P = [\xi_1, \xi_2, \xi_3] = \begin{bmatrix} 1 & 1 & 1 \\ -1 & -2 & -3 \\ 1 & 4 & 9 \end{bmatrix} P=[ξ1,ξ2,ξ3]=111124139


到这里咱的准备工作就结束了,接下来就是把准备好的东西用进来
x ˙ = A x \dot{x} = A x x˙=Ax
看上边那个式子,我要把对角阵 Λ \Lambda Λ 用进来,建议直接带入 A = P Λ P − 1 A=P\Lambda P^{-1} A=PΛP1

x ˙ = P Λ P − 1 x P − 1 x ˙ = Λ P − 1 x \begin{aligned} \dot{x} &= P\Lambda P^{-1} x\\ P^{-1}\dot{x} &= \Lambda P^{-1} x \end{aligned} x˙P1x˙=PΛP1x=ΛP1x

因为这个问题他是线性的,所以令:
y = P − 1 x \begin{aligned} y &= P^{-1} x \\ \end{aligned} y=P1x
显然有:
y ˙ = P − 1 x ˙ \begin{aligned} \dot{y} &= P^{-1} \dot{x} \\ \end{aligned} y˙=P1x˙

y y y y ˙ \dot{y} y˙带入:
P − 1 x ˙ = Λ P − 1 x P^{-1}\dot{x} = \Lambda P^{-1} x P1x˙=ΛP1x
则有:
y ˙ = Λ y \dot{y} = \Lambda y y˙=Λy

又:
y = [ y 1 y 2 y 3 ] y = \begin{bmatrix} y_1\\ y_2\\ y_3 \end{bmatrix} y=y1y2y3
有:
y ˙ = [ y 1 ˙ y 2 ˙ y 3 ˙ ] = [ − y 1 − 2 y 2 − 3 y 3 ] \dot{y} = \begin{bmatrix} \dot{y_1}\\ \dot{y_2}\\ \dot{y_3} \end{bmatrix}= \begin{bmatrix} -y_1\\ -2y_2\\ -3y_3 \end{bmatrix} y˙=y1˙y2˙y3˙=y12y23y3

这就变成了普通的独立的三个线性常系数微分方程

y 1 ′ ( t ) = − y 1 y 2 ′ ( t ) = − 2 y 2 y 3 ′ ( t ) = − 3 y 3 \begin{aligned} y_1'(t) &= -y_1 \\ y_2'(t) &= -2y_2 \\ y_3'(t) &= -3y_3 \\ \end{aligned} y1(t)y2(t)y3(t)=y1=2y2=3y3

解得:
y 1 ( t ) = c 1 e − t y 2 ( t ) = c 2 e − 2 t y 3 ( t ) = c 3 e − 3 t \begin{aligned} y_1(t) &= c_1 e^{-t} \\ y_2(t) &= c_2 e^{-2t} \\ y_3(t) &= c_3 e^{-3t} \\ \end{aligned} y1(t)y2(t)y3(t)=c1et=c2e2t=c3e3t
y 1 y_1 y1 就是 y 1 ( t ) y_1(t) y1(t) y 2 y_2 y2 就是 y 2 ( t ) y_2(t) y2(t) y 3 y_3 y3 就是 y 3 ( t ) y_3(t) y3(t)
即:
y = [ c 1 e − t c 2 e − 2 t c 3 e − 3 t ] y = \begin{bmatrix} c_1 e^{-t} \\ c_2 e^{-2t} \\ c_3 e^{-3t} \end{bmatrix} y=c1etc2e2tc3e3t

有了 y y y, 根据 x = P y x=Py x=Py
x = P y = [ 1 1 1 − 1 − 2 − 3 1 4 9 ] [ c 1 e − t c 2 e − 2 t c 3 e − 3 t ] x = Py = \begin{bmatrix} 1 & 1 & 1 \\ -1 & -2 & -3 \\ 1 & 4 & 9 \end{bmatrix} \begin{bmatrix} c_1 e^{-t} \\ c_2 e^{-2t} \\ c_3 e^{-3t} \end{bmatrix} x=Py=111124139c1etc2e2tc3e3t

最后那一梭子自己推导一下吧

原出处:
https://www.bilibili.com/video/BV16E411D7R8?p=2&share_source=copy_pc

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们要求解如下的一阶线性微分方程: dx/dt = f1(x,y,t) dy/dt = f2(x,y,t) 其中,f1、f2是一些已知的非线性函数,而x、y是未知函数,t是自变量。 采用欧拉法求解该方程的步骤如下: 1. 设定初值条件:x(0) = x0,y(0) = y0。 2. 设定时间步长:delta_t。 3. 对于每个时间步长,计算x和y的新值: x(i+1) = x(i) + delta_t * f1(x(i),y(i),t(i)) y(i+1) = y(i) + delta_t * f2(x(i),y(i),t(i)) 其中,i表示当前时间步数,i+1表示下一个时间步数。 4. 重复步骤3,直到达到所需的终止时间。 下面是一个matlab程序示例,用欧拉法求解一阶线性微分方程: ``` % 定义非线性函数f1和f2 f1 = @(x,y,t) x + y * sin(t); f2 = @(x,y,t) y + x * cos(t); % 设定初值条件和时间步长 x0 = 1; y0 = 2; delta_t = 0.1; t_end = 10; % 计算总步数 n = ceil(t_end / delta_t); % 初始化x和y的数 x = zeros(n, 1); y = zeros(n, 1); % 将初值条件赋给x和y的第一个元素 x(1) = x0; y(1) = y0; % 循环求解微分方程 for i = 1:n-1 x(i+1) = x(i) + delta_t * f1(x(i), y(i), (i-1)*delta_t); y(i+1) = y(i) + delta_t * f2(x(i), y(i), (i-1)*delta_t); end % 绘制x和y随时间的变化曲线 t = linspace(0, t_end, n); plot(t, x, 'r-', t, y, 'b-'); legend('x', 'y'); xlabel('t'); ylabel('x, y'); ``` 需要注意的是,欧拉法是一种一阶数值解法,其精度较低,当时间步长越小时,误差越小,但计算量也越大。因此,在实际应用中,需要根据问题的特点选择合适的数值解法和时间步长。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值