• 数理方程:常微分方程基础


    更新:25 MAR 2016

    一阶线性常微分方程

    齐次

    (large y’(x)+p(x)y(x)=0)

    分离        //注意不是“分离变量”,因为y是x的函数

    (large dfrac{dy}{y}=-p(x)dx)

    两边积分即可

    非齐次

    (large y’(x)+p(x)y(x)=q(x))

    积分因子法

    (large y_h(x)=Cexp[-int p(x)dx])

    定义积分因子

    (large m(x)=exp[int p(x)dx])

    注意

    (large m’(x)=m(x)p(x))

    因此

    (large frac{d}{dx}(m(x)y(x))=m(x)(y’(x)+p(x)y(x)))
    这样可以直接得到

    (large y(x)=dfrac{1}{m(x)}int m(x)q(x)dx)

    常数变易法

    从齐次方程的解出发

    (large y_h(x)=Cexp[-int p(x)dx])

    将其中的常数C替换为x的函数C(x)

    (large y(x)=C(x)exp[-int p(x)dx])

    代回原方程

    (large C’(x)exp[int p(x)dx]-C(x)p(x)exp[int p(x)dx]+p(x)C(x)exp[int p(x)dx]=q(x))

    消掉了其中两项,

    (large C’(x)exp[int p(x)dx]=q(x))

    积分即可。

    二阶线性常系数常微分方程

    齐次

    (large y’’(x)+by’(x)+cy(x)=0)

    特征方程法

    由于默认方程解为(y(x)=e^{rx})形式,代入得到特征方程

    (large r^2+br+c=0)

    一元二次方程,(d=b^2-4c)

    d>0, 根(r_1 eq r_2)

    (large y(x)=C_1e^{r_1x}+C_2e^{r_2x})

    d=0, 根(r_1=r_2)

    (large y(x)=C_1e^{rx}+C_2xe^{rx})

    d<0, 视r为复数即可。利用欧拉公式可以化为实数三角函数式。

    非齐次

    (large y’’(x)+by’(x)+cy(x)=f(x))

    由于没有一般的解法,只能总结常见的特殊情况

    一般思路:按照齐次方程解法解出其基础解系,再找到一个特解相加得到所有通解

    1. (large f(x)=e^{lambda x}P_m(x))型

    注:(P_m(x))指m阶多项式。

    设(y(x)=g(x)e^{lambda x}),代入原方程,

    (large g’’(x)+(2lambda +b)g’(x)+(lambda^2+plambda+q)g(x)=P_m(x))

    讨论:

    i. 若(lambda)不是特征方程的根:(lambda^2+plambda+q eq 0)

    设(g(x)=g_m(x))为m阶多项式,待定系数求解,特解(y=g_m(x)e^{lambda x})

    ii. 若(lambda)是特征方程的单根:(lambda^2+plambda+q=0),而(2lambda +b eq 0)

    设(g(x)=xg_m(x)),待定系数求解,特解(y=xg_m(x)e^{lambda x})

    iii. 若(lambda)是特征方程的重根:(lambda^2+plambda+q=0),且(2lambda +b=0)

    设(g(x)=x^2g_m(x)),待定系数求解,特解(y=x^2g_m(x)e^{lambda x})

    2. (large f(x)=e^{lambda x}P_m(x)cosomega x)型

    利用欧拉公式合并,(lambda'=lambda +mathrm{i}omega)。用上面方法求特解,取其实部。对于(sinomega x),取虚部。

    3.(large f(x)=e^{lambda x}[P_l(x)cosomega x+P_n(x)cosomega x])型

    利用欧拉公式合并,得到和的形式,拆成两个方程,分别按照上面方法求特解,再将两个特解加即可(必要时再展开成三角函数)。

  • 相关阅读:
    strcpy,memset,memcpy三者之间的根本区别
    最便捷、最强大、速度最快的C++序列化框架
    C++读写二进制文件
    boost binary 序列化
    febird.dataio和boost.serialization性能对比
    Boost文本序列化和二进制序列化的效率比较
    Boost文本序列化和二进制序列化的效率比较
    c++的vector赋值方法汇总
    OCP-1Z0-051-V9.02-36题
    遍历list或map时删除元素(较巧妙)
  • 原文地址:https://www.cnblogs.com/fnight/p/5318440.html
Copyright © 2020-2023  润新知