如何解二阶齐线性微分方程

二阶齐线性微分方程就是指形如 y ′ ′ + p y ′ + q = 0 y''+py'+q=0 y+py+q=0的微分方程,一种解法就是使用二阶微分方程的公式,这里介绍另一种方法。

对于二阶微分方程,如果找到两个线性无关的特解 y 1 , y 2 y_1,y_2 y1,y2,那么通解为
y = C 1 y 1 + C 2 y 2 y=C_1y_1+C_2y_2 y=C1y1+C2y2

根据这个定理,我们只需要找到两个线性无关的特解,就能解出通解。

y = e r x y=e^{rx} y=erx,其中 r r r是一个实数。代入微分方程得
r 2 e r x + p r e r x + q e r x = 0 r^2e^{rx}+pre^{rx}+qe^{rx}=0 r2erx+prerx+qerx=0
消去 e r x e^{rx} erx r 2 + p r + q = 0 r^2+pr+q=0 r2+pr+q=0
我们只需要解这个一元二次方程得两根 r 1 , r 2 r_1,r_2 r1,r2即可。下面分类讨论

1.若 r 1 , r 2 r_1,r_2 r1,r2为不等的两个实根

得到两个线性无关的特解 y 1 = e r 1 x , y 2 = e r 2 x y_1=e^{r_1x},y_2=e^{r_2x} y1=er1x,y2=er2x,所以通解为
y = C 1 e r 1 x + C 2 e r 2 x y=C_1e^{r_1x}+C_2e^{r_2x} y=C1er1x+C2er2x

2.若 r = r 1 = r 2 r=r_1=r_2 r=r1=r2为相等实根

我们只能得到一个特解 y 1 = e r x y_1=e^{rx} y1=erx,那么再令 y = u e r x y=ue^rx y=uerx,其中 u u u是关于 x x x的函数。
e r x ( u ′ ′ + 2 r u ′ + r 2 u + p u ′ + p r u + q u ) = 0 e^{rx}(u''+2ru'+r^2u+pu'+pru+qu)=0 erx(u+2ru+r2u+pu+pru+qu)=0 u ′ ′ + ( 2 r + p ) u ′ + ( r 2 + p r + q ) = 0 u''+(2r+p)u'+(r^2+pr+q)=0 u+(2r+p)u+(r2+pr+q)=0注意到 2 r + p = r 2 + p r + 1 = 0 2r+p=r^2+pr+1=0 2r+p=r2+pr+1=0,故
u ′ ′ = 0 u''=0 u=0 u = x u=x u=x,则 y 2 = x e r x y_2=xe^{rx} y2=xerx,所以通解为
y = ( C 1 + C 2 x ) e r x y=(C_1+C_2x)e^{rx} y=(C1+C2x)erx

3.若 r 1 , r 2 r_1,r_2 r1,r2为一对共轭复根

r 1 = α + β i , r 2 = α − β i r_1=\alpha+\beta i,r_2=\alpha-\beta i r1=α+βi,r2=αβi,那么
y 1 = e α ( i s i n β x + c o s β x ) , y 2 = e α ( − i s i n β x + c o s β x ) y_1=e^\alpha(isin\beta x+cos\beta x),y_2=e^\alpha(-isin\beta x+cos\beta x) y1=eα(isinβx+cosβx),y2=eα(isinβx+cosβx)可以得到两个特解 y 3 = y 1 + y 2 2 , y 4 = y 1 − y 2 2 i y_3=\frac{y_1+y_2}{2},y_4=\frac{y_1-y_2}{2i} y3=2y1+y2,y4=2iy1y2
y 3 = e α s i n β x , y 4 = e α c o s β x y_3=e^\alpha sin\beta x,y_4=e^\alpha cos\beta x y3=eαsinβx,y4=eαcosβx所以通解为
y = e α ( C 1 s i n β x + C 2 c o s β x ) y=e^\alpha(C_1sin\beta x+C_2cos\beta x) y=eα(C1sinβx+C2cosβx)

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Matlab中一元二阶齐次方程,可以使用ode45函数。ode45是一个求微分方程组的函数,可以用来求二阶齐次方程。首先需要将二阶齐次方程转化为一阶方程组的形式。 假设我们的二阶齐次方程为D^2y=f(y),其中f是一个由一些向量点乘、叉乘等得出来的以y为自变量的函数。 首先,我们可以引入一个新的变量v,令v=dy/dx,然后将二阶方程转化为一个一阶方程组: dy/dx = v dv/dx = f(y) 然后,我们可以定义一个匿名函数,表示一阶方程组: func = @(x, y) [y(2); f(y(1))] 其中,y(1)表示y,y(2)表示v。 接下来,我们可以使用ode45函数来求这个一阶方程组。假设我们要求的区间为[x0, xf],初始条件为y0和v0,则可以使用以下代码进行求: [t, y] = ode45(func, [x0, xf], [y0, v0]) 其中,t是时间数组,y是y和v的值的数组。 通过以上步骤,就可以在Matlab中求一元二阶齐次方程了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [用牛顿方法一元非线性方程的根(Matlab实现)](https://blog.csdn.net/weixin_28958733/article/details/115951391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [求一个复杂的二阶微分方程的数值,不会写代码= =](https://blog.csdn.net/weixin_39574287/article/details/116124797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值