zoukankan      html  css  js  c++  java
  • 常数变易法的解释

    注: 本方法是对崔士襄教授写的《常数变易法来历的探讨》论文的解释。思路并非本人原创。特此注明。背景详见本人前一篇博文。

            我们来看下面的式子:

                                                        y’P(x)·y Q(x)…….(1)

    对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的xy分离上来。

     

      起初的一些尝试和启示

    先直接分离看一下:

                                                        dy/dxP(x)·y Q(x)  

                                  => dy ( Q(x)P(x)·y )·dx…….(2)

     

    从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x u   > y u·x . y u·x代入(1)

                                                     u’·xuP(x)·u·x Q(x)

                                     => u’·xu·(1P(x)·x) Q(x)

                                     => du/dx·x Q(x)u(1P(x)·x)

                                     => du [Q(x)u·(1P(x)·x)]·(1/x)·dx………(3)

     

    这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)0,那么那一项也消失了。当然这些假设都是不可能的,因为xP(x)等于几是你无法干预的。不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。

     

      进一步:变量代换法

    筒子们可能觉得要构造这么一个函数会很难。但结果会让你跌破眼镜。yu·v就是这么符合要求的一个函数。其中uv都是关于x的函数。这样求y对应于x的函数关系就转变成分别求u对应于x的函数关系和v对应于x的函数关系的问题。你可能觉得把一个函数关系问题变成两个函数关系问题,这简直是脑残的表现——非也,uv都非常有用,看到下面就知道了。

    让我们看看讲代换yu·v代入(1)式会出现什么:

       u’·vu·(v’P(x) ·v) Q(x) ………(4)

     

    如果现在利用分离变量法来求u对应于x的函数关系,那么u·(v’P(x) ·v)就是我们刚刚遇到的没法把u单独分离出来的那一项,既然分不出来,那么干脆把这一项变为零好了。怎么变?这是v的用处就有了。令v’P(x) ·v0,解出v对应x的函数关系,这本身就是一个可以分离变量的微分方程问题,可以将其解出来。

                              dv/dxP(x) ·v

                     => v C1·e^(-P(x)dx) ………(5)

     

    现在v解出来了,接下来该处理u了,实际上当v解出来后u就十分好处理了。把(5)式代入(4)式,则u·(v’P(x)·v)这一项便被消掉了。剩下的是

                                                    u’ ·C1·e^(-P(x)dx) Q(x)

    而这也是一个可以分离变量的微分方程。同样可以十分容易地解出来:

                                                       du/dx ·C1·e^(-P(x)dx)Q(x)

                       => du 1/C1·e^(P(x)dx)·Q(x)·dx

                               > u 1/C1·e^(P(x)dx)·Q(x)·dxC2………(6)

     

    现在uv都已求出,那么yu·v也迎刃而解:                  

                                     y   u·v

                                = [1/C1·e^(P(x)dx)·Q(x)·dxC2]·[C1·e^(-P(x)dx)]

     = [e^(P(x)dx)·Q(x)·dxC ]·e^(-P(x)dx) ………(7)  (这里C C1·C2)

     

    这个方法看上去增加了复杂度,实际上却把一个不能直接分离变量的微分方程化成了两个可以直接分离变量的微分方程。这个方法不是没有名字的,它叫“变量代换法”(挺大众的一名字),即用u·v代换了y。这时在你脑中不得不油然生出这么一种感觉:想了十一年想出来的法子,还真不是盖的。

     

      再进一步:常数变易法

    再进一步观察我们可以看出,求v的微分方程(即v’P(x)·v0)其实就是求

    y’P(x)·yQ(x)Q(x)0时的齐次方程。所以,我们可以直接先把非齐次方程当作齐次方程来解。即解出y’P(x)·y 0 的解来。 得:

    y C·e^(-P(x)dx) ………(8)

     

    注意这里的C·e^(-P(x)dx)并非最终答案,从上一环节我们知道这其实是v而已。而最终答案是u·v v仅是其中一部分。因此这里的C·e^(-P(x)dx)并不是我们要的y,因此还要继续。

     

    把(8)式和上面提到的(7)式比较一下:

    y u·e^(-P(x)dx) ………(7)

    y C·e^(-P(x)dx) ………(8)

     

    7)式是最终的结论,(8)式是目前我们可以到达的地方。那我们偷下懒好了:把(8)式的那个C换成u,再把这个u解出来,不就ok了么。所谓的“常数变易法”就是这么来的,即把常数C硬生生地变成了u。接下来的事情就简单多了,和前面是一个思路,把代换yu·e^(-P(x)dx)代入(1)式,由于e^(-P(x)dx)是一个可以令那个分离不出变量的项被消掉的特解,因此即可知一定会解得u’·e^(-P(x)dx)Q(x)。从中解出u,再带回y=u·e^(-P(x)dx)便可得到最终答案。

     

    个人觉得这个方法在思路上并无多大突破,只是利用“变量代换法”现成的结论倒推回去,“抄了一条近路”,但这么一抄不要紧,不解释清楚的话还真不知道这条路到底从哪冒出来的。所以就会引起我们“较劲”的冲动:为什么非齐次要当齐次来解,道理何在?为什么C就可以换成u,道理何在?…… 这么想想的话教科书(同济5版)也真TM不厚道,你不解释清楚就算了,好歹说两句交代背景的话啊。


    Ps1.常数变易法在这里并没有显出比变量代换法更好的优势(因为就是一个思路的正逆推导而已),但在解决高阶线性微分方程时就会方便得多。因此倒不能说常数变易法是鸡肋(我开始的想法就是这样的)。

    2.教科书上最后把方程的解拆成了一个齐次方程的通解和一个非齐次方程的特解之和,我看来简直有点脑残的表现,再往后看才知道,原来在解决高阶非齐次线性方程是要用到这个结构的,怪不得。

    3.因此关于中国的教科书以及中国的正统教育我突然有个结论(一排脑瓜子即灵光一现那种):中国的大多数学生之所以不喜欢学数学是因为觉得难,其实倒不是数学本身难,而是教科书缺少必要的说明逻辑。真正难的不是知识,而是读懂这些教育家企图教给我们的“知识”。

  • 相关阅读:
    深度分析:SpringBoot异常捕获与封装处理,看完你学会了吗?
    去年去阿里面试,面试官居然问我Java类和对象,我是这样回答的!
    面试官:小伙子,你给我详细说一下线程的状态有哪些吧?
    新鲜出炉!JAVA线程池精华篇深度讲解,看完你还怕面试被问到吗?
    面试官:小伙子,你给我讲一下java类加载机制和内存模型吧
    深度分析:面试90%被问到的多线程、创建线程、线程状态、线程安全,一次性帮你全搞定!
    close与shutdown
    select模型(二 改进服务端)
    select模型(一 改进客户端)
    5种IO模型
  • 原文地址:https://www.cnblogs.com/lookof/p/1370065.html
Copyright © 2011-2022 走看看