常数变易法的原理解释_微分方程常数变易法

常数变易法的原理解释_微分方程常数变易法高数看到常数变易法,不懂为什么要把C变成u,看了篇文章,感觉懂了转载自http://www.cnblogs.com/lookof/archive/2009/01/06/1370065.html注:本方法是对崔士襄教授写的《“常数变易法”来历的探讨》论文的解释。思路并非本人原创。特此注明。背景详见本人前一篇博文。      我们来看下面的式子:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

高数看到常数变易法,不懂为什么要把C变成u,看了篇文章,感觉懂了 转载自http://www.cnblogs.com/lookof/archive/2009/01/06/1370065.html

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

 

 

        我们来看下面的式子:

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

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

 

  起初的一些尝试和启示

先直接分离看一下:

                                                    dy/dx+P(x)·y = Q(x)  

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

 

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

                                                 u’·x+u+P(x)·u·x = Q(x)

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

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

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

 

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

 

  进一步:变量代换法

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

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

   u’·v+u·(v’+P(x) ·v) = Q(x) ………(4)

 

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

                          dv/dx+P(x) ·v = 0 

                 => 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)·dx+C2………(6)

 

现在u和v都已求出,那么y=u·v也迎刃而解:                  

                                 y   u·v

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

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

 

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

 

  再进一步:常数变易法

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

y’+P(x)·y=Q(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。接下来的事情就简单多了,和前面是一个思路,把代换y=u·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不厚道,你不解释清楚就算了,好歹说两句交代背景的话啊。

 

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207159.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 神经网络的若干关键基础理论研究_DLA深度神经网络

    神经网络的若干关键基础理论研究_DLA深度神经网络这是一篇关于神经网络算法设计的几个基本问题的理论分析的专题文章,涉及到比较多的原理推导。文章的主体来自IanGoodfellow的《DeepLearning》;AndrewNg在Coursera的《MachineLearning》课程;周志华老师的《机器学习》MichaelNielson的线上书籍:曹振华老师的《随机数学基础》。本文涉及到的概念和理论,尽可能参考自维基百科,保证所有观点的严密和权威。

    2022年8月11日
    10
  • Android修改字体_android设置字体样式

    Android修改字体_android设置字体样式1.将需要添加的ttf字体文件放在frameworks/base/data/fonts/目录A:frameworks/base/data/fonts/clock_thin.ttf2.修改frameworks/base/data/fonts/Android.mk文件,将字体文件编译到system/fonts/目录中M:frameworks/base/data/fonts/Android.mkfont_src_files:=\AndroidClock.ttf\clo

    2022年9月27日
    3
  • phpstorm配置了git后Terminal 不能使用显示:git’ 不是内部或外部命令,也不是可运行的程序…

    phpstorm配置了git后Terminal 不能使用显示:git’ 不是内部或外部命令,也不是可运行的程序…

    2022年2月8日
    88
  • 处理服务器恶意程序 kthreaddi挖矿

    处理服务器恶意程序 kthreaddi挖矿

    2021年6月4日
    263
  • struts2讲解

    struts2讲解Struts2部分1.JavaEE软件三层结构和MVC的区别?JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层)、业务逻辑层、数据持久层。【其中WEB层会使用前端控制器模式】MVC是一种思想,是一种模式,将软件分为Model模型、View视图、Controller控制器。【JavaEE开发更强调三层结构,web层开发更注重MVC】Struts2就是web层开发框架,符合MVC模式;struts1、webwork、jsf、SpringMVC都是MVC…

    2025年7月22日
    3
  • 【《重构 改善既有代码的设计》学习笔记4】构筑测试体系

    本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!如果想要进行重构,首要前提是 拥有一个可靠的测试环境。1、 自测代码的价值完成一个功能:设计+开发+调试,认真分析,程序员最多花费的时间不是开发(编码),而是用来调试。调试可能花费无数个小时,甚至通宵达旦。修复错误是快速的,而找出错误却是恶梦一场。当修复好一个错误,总是会有另一个错误的出现。而引…

    2022年2月27日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号