微分方程求解一(常微分方程求解)

常微分方程求解方法

(1)初值问题(给某一点的函数值或者微分值)

1.初值问题(给某一点的函数值或者微分值)

  • 问题类型:
    d y d x = f ( x , y )    y ( x 0 ) = y 0 \frac{dy}{dx}=f(x,y)\\ ~~\\ y(x_0)=y_0 dxdy=f(x,y)  y(x0)=y0
  • 注意初值的个数不能少于阶数。
  • 求解方法:
    • 欧拉法
    • 龙格库塔法
    • 预测校正法

(2)边值问题(给定在一个区域的边界上的函数值或微分值)

  • 问题类型:
    d 2 y d x 2 = f ( x , y , d y d x )    y ( a ) = α , y ( b ) = β \frac{d^2y}{dx^2}=f(x,y,\frac{dy}{dx})\\ ~~\\ y(a)=\alpha,y(b)=\beta dx2d2y=f(x,y,dxdy)  y(a)=α,y(b)=β

1.试射法

  • 先猜初值,再使用迭代法寻找正确的初值。
  • 一个例子:

d 2 y d x 2 = y    y ( 0 ) = 0 , y ( 1 ) = 1 \frac{d^2y}{dx^2}=y\\ ~~\\ y(0)=0,y(1)=1 dx2d2y=y  y(0)=0,y(1)=1

  • 拆分: d y d x = y 1    d y 1 d x = y \frac{dy}{dx}=y_1\\ ~~\\ \frac{dy_1}{dx}=y dxdy=y1  dxdy1=y
  • 注意这里仅有 y y y的初值,因此这里首先就要求解出 y 1 y_1 y1的初始,然后通过初值问题的解法就可以求解。
  • y 1 ( 0 ) = 0 → y ( 1 ) = 0 y_1(0)=0\rightarrow y(1)=0 y1(0)=0y(1)=0 不符合题设,猜 y 1 ( 0 ) = 0 → y ( 1 ) = 1.122532 y_1(0)=0\rightarrow y(1)=1.122532 y1(0)=0y(1)=1.122532 不符合题设,最终可以求出当 y 1 ( 0 ) = 0.890843 y_1(0)=0.890843 y1(0)=0.890843 y ( 1 ) = 1 y(1)=1 y(1)=1

2.有限差分法

  • 核心:根据泰勒公式的思想进行直接的差分公式的替换 d 2 y d x 2 = y i + 1 − 2 y i + y i − 1 h 2    d y d x = y i + 1 − y i − 1 2 h \frac{d^2y}{dx^2}=\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}\\ ~~\\ \frac{dy}{dx}=\frac{y_{i+1}-y_{i-1}}{2h} dx2d2y=h2yi+12yi+yi1  dxdy=2hyi+1yi1
  • 线性常微分方程

    d 2 y d x 2 + P ( x ) d y d x + Q ( x ) y = R ( x )    y ( a ) = α , y ( b ) = β \frac{d^2y}{dx^2}+P(x)\frac{dy}{dx}+Q(x)y=R(x)\\ ~~\\ y(a)=\alpha,y(b)=\beta dx2d2y+P(x)dxdy+Q(x)y=R(x)  y(a)=α,y(b)=β

  • x i x_i xi点处代入差分公式 y i + 1 − 2 y i + y i − 1 h 2 + P ( x i ) y i + 1 − y i − 1 2 h + Q ( x i ) y i = R ( x i ) \frac{y_{i+1}-2y_i+y_{i-1}}{h^2}+P(x_i)\frac{y_{i+1}-y_{i-1}}{2h}+Q(x_i)y_i=R(x_i) h2yi+12yi+yi1+P(xi)2hyi+1yi1+Q(xi)yi=R(xi)
  • 整理可得 ( 1 + h 2 P i ) y i + 1 + ( h 2 Q i − 2 ) y i + ( 1 − h 2 P i ) y i − 1 = h 2 R i (1+\frac{h}{2}P_i)y_{i+1}+(h^2Q_i-2)y_i+(1-\frac{h}{2}P_i)y_{i-1}=h^2R_i (1+2hPi)yi+1+(h2Qi2)yi+(12hPi)yi1=h2Ri
  • 最后代入所有的点,得到一个线性方程组,然后通过线性方程组的求解可得。
  • 注意 y ( a ) = α , y ( b ) = β y(a)=\alpha,y(b)=\beta y(a)=α,y(b)=β也是这个线性方程组方程的一部分,如果给出的是 d y d x ∣ x = a = α , d y d x ∣ x = b = β \frac{dy}{dx}|_{x=a}=\alpha,\frac{dy}{dx}|_{x=b}=\beta dxdyx=a=α,dxdyx=b=β就要通过对边界量求差分,将边界量引入到差分方程中,比如已知 x 4 x_4 x4 x 0 x_0 x0处导数值,就要引入 x − 1 x_{-1} x1 x 5 x_5 x5

猜你喜欢

转载自blog.csdn.net/weixin_44618906/article/details/109585572