Ode学习log

博主又来开天坑了。

这篇博客主要作为自己学习ode的一个学习log,旨在写一些自己学习数学过程中的一些思考和感想。


一些准备:#

阅读这篇博客,你需要知道一些简单的术语:

  • 常微分方程: 形如方程称为关于的常微分方程,也可简称为微分方程,称为这个常微分方程的阶数,例如是一个一阶微分方程。

    在本博客中,微分方程即指常微分方程。与之相对应的还有偏微分方程的概念,其实就是方程中不止有一个自变量

  • 通解和特解:满足微分方程的解都是特解,

一阶微分方程:#

1. 一阶线性微分方程:#

若某一阶微分方程的方程函数关于因变量和导数集体是一个线性函数,则称这个微分方程为一阶线性微分方程,例如:是一个一阶线性微分方程。

一阶线性微分方程一般具有的形式

如果则称这个一阶线性微分方程是齐次的,否则称为非齐次的。

就我的感觉而言,微分方程解决的方法体系是这么形成的:

如果你拿到的是那么直接积分即可;

如果是简单的齐次方程,例如可以使用分离变量法,做法就是将这种简单的方程尝试化简成的形式,然后两端同时积分。

其原理应该是不定积分的第一代换定理,就是说,积分和变量的形式无关。

如果以上两种方法失败,我们尝试使用导数/微分的四则运算法则,将原方程进行化简成上面两种情形。例如可以化简成或者有一些不太好一眼看出来的方程,我们可以使用积分因子说白了就是给原始式子乘上一个未知函数,利用这个未知函数去找新形式下的微分方程能不能化简成一个微分,比如我们乘上一个待定的积分因子得到由于这个方程内有一项,考虑乘法下的微分原则,可能的那一个微分只能具有的形式。根据这一点我们可以确定另一个微分分量满足这就是一个齐次方程了,我们把这个解出来,就可以确定前面的那一个微分

这种齐次微分方程是比较好解的,我们可以使用

或者这个方程的阶数很高,我要是使用积分因子去找那个唯一一个的高阶微分,可能会比较麻烦,例如使用积分因子可能会导致你要求三阶微分,然后比对系数解方程,虽然思路清晰,但是比较难算。

我们可以尝试降阶数,这没有特别的方法,一般就是换元,观察方程的特点,然后换元降阶,例如上面这个方程,若令则有这是一个简谐振动类型的微分方程,可以待定系数完成,或者使用物理上的结论,此处不再赘述。

最后我们给出一阶线性微分方程的通解公式:其中,就是我们提到的积分因子,满足由于这个积分因子我们只需要那个最简单的即可,因而等价于请读者自己尝试证明上述结论,体会其中的解方程思路。并思考为什么公式中涉及积分的地方有的有,有的没有

如果你是观察力大师,你也可以多背一些初等函数乘法复合后导数的形式的公式,这在一些没什么思考含量的题中很好用,比如用在这个一阶线性微分方程,是很合适的,相当于你直接找到了这个微分的原型,这很直接,也很有效率,但是就是没什么令人惊叹的思考,有流于背公式的嫌疑。

2. 一阶线性微分方程的变体,和伯努利方程:#

伯努利方程是一阶线性微分方程的变体

我们只需要在中令即可得到 这就是伯努利方程的表示。

关于为什么伯努利方程要叫这个名字:是因为他做了一些推动这个方程解决的工作,呃,后面忘了。

我们还可以根据这个得到一些别的形式的变体。

列个表格看看

代换 新方程 化简之后 其他形式
伯努利方程

大概也就是这些内容。

3. 一阶微分方程下的齐次方程:#

这个齐次方程和之前的齐次方程定义不一样,之前的是

若一阶微分方程满足

则称此一阶微分方程是齐次方程

我们来分析一下这齐次方程的特点,重点在于这个齐次的性质。

假设我们已知某一点,那么根据齐次的性质,的这条直线上所有的在函数上的点处的导数值都相同

因而如果我们考虑所有这样的直线,我们就可以根据已知的性质,确定这个函数。

这些直线都是过原点的,因而我们就设,然后尝试将值转化成值,这个转化思路是来自于我们使用直线束来确定函数的方法的。

这里就比较玄乎了,由于齐次方程本身的特性,两个变量上乘以一个数可以视为没乘,于是接着化简但仔细想想也没什么,因为按照我们的思路,这条线上过函数的点处的值完全相同,也就是和自变量无关,当然可以消去。
我们接着变形成更直观的形式这下我们直接积分就可以了。如果是写题的话,最好从这里停止带公式,开始计算。

这里我的想法是这样的:我们解方程只是一种形式,真正在做的是确定这个函数的性态。这个过程中我们可以看到的是,函数具有齐次的性质,因而对那些在过原点的直线上的函数点而言,这些点处的导数是不变的,也就是跟无关,而和斜率有关,这也是最终结果是一个可分离变量方程的原因

给一个例子,解决

齐次方程,当然直接写出那个微分式子积分后逐步化简,再替换得到

虽然我在推导的时候说,t是自变量,p是因变量,然而,你稍微注意一下定义式就可以看出来,这个式子只要倒一下就还是一个齐次方程,所以这个齐次方程本质上没有自变量和因变量之分。这一点可以注意一下。我们也可以设斜率的倒数,这样就把p作为自变量了hh。

齐次方程当然还有拓展的方面,比如下面的式子给出了度数为n的齐次方程的定义。

依照前面的研究想法,我们可以发现,这种形式给出的结果就是,函数值和变量无关,而是和斜率的n次方(也可以是斜率的倒数)有关,于是我们可以将这个函数做类似的变量分离。设我们得到限于我目前的能力,这仿佛就是我能化简的极限了。原因在于,如果我们看重的是齐次的直线性质,我们换元后得到的直线上过函数的点的导数并不是固定不变的;如果我们考虑幂函数簇的话,或许会有些不同.

我们得到

好像,也没什么好做的,这是因为我们看中了幂函数的不变性,但是由于放弃了直线性质,我们的内部还是存在变元。

因而就到此为止。

例题:#

课后题仿佛就没这个第二类齐次方程(我瞎起的名字)

4. 全微分方程:#

为什么要研究全微分方程:#

我认为研究全微分方程的根源是这样的:我们解微分方程的目的是为了得到函数的表达式,不过函数既可以使用显示表达,也可以隐式表达(也就是常说的隐函数),从而我们的目的是找到一个变量之间的关系式其等价条件是从而只要我们找到了一个全微分方程,我们就能找到的关系式。确定这个函数。

由上可见,全微分方程是更加广泛的微分方程专题,将一个多微分的方程转换为全微分方程也是非常自然的想法。接下来我们就来研究一下我们该怎么找全微分方程

初识:#

这个大名鼎鼎了,即使没学常微分方程,学了微积分甲下也接触过。给出定义:
若微分方程满足也即存在多元函数满足那么就称这个微分方程是全微分方程

然后就是判断这个全微分的定理:向量场是有势场的充分必要条件是无旋场

有关积分与路径无关的那几个等价条件,我推荐阅读这篇文章,相信你读完后会对旋度的计算、无旋场的性质有更深刻的理解。

进一步了解:#

按照之前的想法,我们会想到:既然存在关系式就有全微分方程,那么对于一些非全微分方程来说,应该也存在一个全微分方程才对,可是我们拿到手的是一个非全微分啊?这是为什么?

我们来思考一下非全微分方程和全微分方程之间的关系。假设我们得到的非全微分方程是最后解出来的关系式是也即我们给定曲线上的任意一个小位移,必然这两个关系式都要满足,从而我们得到一个平行关系那么这两个向量之间相差一个伸缩倍数,这个伸缩倍数就是积分因子。

因而如果我们拿到手的是一个非全微分方程,我们就能明白,是提出了一个积分因子导致全微分性质的破裂。我们只需要找出那个伸缩倍数即可。

假设我们的积分因子是(当然,这是为了一般化设成双变量,实际有可能只需要单变量就能解决),我们将这个积分因子乘以到微分方程两端,得到利用等价条件,得到但是这个式子还是挺抽象的,我反正不会背这个,还不如针对题来写过程。

然后是公式推导:#

不过,我们可以分析一些简单情况来做备用,比如如果我们的积分因子最终只和单变量有关,不妨设为,那么其对的偏导数就是,从而可以简化我们的积分因子表达式为但我们怎么知道什么时候这么用?其实看一眼就明白了:这个式子如果要成立,那么右边的函数结果不能带有,也就是所以我们可以做出一些检验,如果符合的话,我们就可以设一个单变量的积分因子,而且解起来还很方便。因为我们要解的是,而简化后的式子是一个一阶线性齐次微分方程。你甚至可以直接用背公式的方法得到解,解具有如下的形式请思考这里没有的原因。

一个回过头来的应用:#

我们来解释开头提出的观点。考虑一个标准的一阶线性微分方程我们可以将其写为这是一个非全微分的形式,我们尝试使用积分因子来凑一下全微分。

先贪心一下,代入到这很好,所以我们直接得到了积分因子,所以我们可以得到某个函数的一对偏导数我们想要确定的形式,观察一下,第二个式子很简单,因而将第二个式子对积分得到我们现在要做的是确定,再代入第一个式子等式两端对任意值均成立,因而比对系数得到解第二个式子,得到这样我们就确定了,也就是把自变量之间的关系找到了。写出来就是从而这和我们之前的得到的结果是一样的。

做点题:#

将下面的非全微分转化成全微分:

    • solution:这个我算不出单变量的积分因子,烦请读者试试。

5. 近似解的求解:#

这节内容还是挺有意思的,假如我们知道了的函数,并给定了初值,并且有那么我们如何确认这个方程有没有解,有几个解。

一个很神奇的想法是这样的:我们现在已知的是也即注意到出现在了等式的左右,我们可以根据这一点来逼近。具体做法是令一个序列满足并且使这个函数数列极限存在,那么就有这么一个解,并且还可以证明这个解是唯一的。

这个想法来源于转化后的积分方程是一个很像不动点方程的方程,等式的两端都有,那我们就可以尝试使用压缩映射来解决这个问题。当然前提是这个函数空间要满足压缩映射的条件。

为什么会有这样的想法:#

我们来将我们拟合的函数设成,最终存在的那个解设成,那么显然有。我们现在希望尽量的小。

(是不是有点变分法的意思?我也是这么想的,不过当时有没有提出这个观点我就不知道了

既然我们要拟合,一个自然的想法是,我们尝试计算出的若干阶导数,然后用泰勒级数来拟合这个东西。

要计算其若干阶导数,我们可以利用的只有那个微分式子。现在我们来一项一项地算算看:

第一项是,这由递推式即可得到是

第二项是,对递推式左右取二阶导数得到因而我们可以得到其二阶导数的具体值。

我们可以归纳出,第阶导数是前阶导数的组合,因而我们可以通过递推的方式计算出一个类似于泰勒展开的级数来,不过这个级数是否收敛到原函数上,还需要确认。

最后我们来验证这个级数什么时候是收敛的。

二阶微分方程:#

目前我们能比较充分地解决的二阶微分方程是二阶线性微分方程。

二阶线性微分方程:#

给出标准式其齐次形式为我们有相应的判断定理,当系数函数连续,且给定某一点后,解存在且唯一。

这是一个很重要的定理,这个定理表现出,二阶线性微分方程的解的自由度是。其实你这么想,对于一个最简单的而言,积分两次即可得到原函数,其含有两个未定常数,自由度也是二。

接下来我们来看看为什么称之为线性,这一点非常重要:

齐次方程线性的来源:#

给定两个解,那么也是原方程的解。

这个很好证明,你只需要代入计算一下,新的函数是否满足我们所做的约束(那个方程)即可。

然而,是否只要我们找到了两个解,我们就能把所有的解拆写成这个形式呢?

如果我们找到的是一组线性相关的解,那么张成的解空间并不一定能填满整个方程组的解空间。但如果我们找到了一组线性无关的解,那么也有定理说明,只要其朗斯基行列式不为0,对于任意的给定值,解一定可以拆写成这两种形式。

我们所做的只是计算出解的两个常数,如果能算出来,说明给定了这组初值可以满足,否则不能。

利用已知条件,也即解算这个线性方程组。只需其行列式不等于0即有解,也即由于我们的是任意定义域内的,所以上述行列式变成函数形式,也就是朗斯基(Wronsky)行列式

总之,我们只需要知道二阶线性齐次微分方程的解只要找到两个线性无关的解即可。然后就是线性组合了。

一阶是不是也是这样呢?我想必然是的,只不过那个可以用别的方法解决罢了。

朗斯基行列式很有用,可以判断区间上是否两函数是否线性无关。首先写出满足某二阶齐次线性微分方程的两特解的的朗斯基行列式为那么有这是关于的一阶线性齐次方程,从而从而区间上只要有一点值为0,区间必然全为0。这就可以作为判断线性相关或无关的条件。

这是因为,如果行列式全为0,说明两由函数组成的向量线性相关,也就是竖列的两列向量线性相关,这样就因除了判断两函数线性相关的定理。

当然这个条件看似比较强,还规定了其导函数也是线性相关的,不过我们很容易想到,区间上可导函数线性相关,其导函数必然也是线性相关的,这是由微分算子的线性性决定的,因而我们就可以知道,朗斯基行列式等于零和函数线性相关是等价条件。

计算另一个解:#

假设我们看出了一个解,我们可以使用下面的方法得到另外一个解,设已知解,未知解,那么我们来计算如果这个二阶齐次线性方程的解的充要条件。

通过计算得到代入到齐次线性方程之中,可以得到注意到只含有若干项可以写成由于我们已知是原齐次线性方程的一个解,因而这一项为0,从而我们得到只含有未定函数的二阶导数和一阶导数的微分方程从而解得不过一般为了简单起见,选择这里常数为1,进而不过一般不使用最后这个公式直接计算,而是算出导数,化简再积分。

二阶齐次常系数方程:#

我们来看一类简单的二阶方程,形式如下:
其中abc全为常数。

最容易看出来的解是指数函数,正好其导数和原函数之间相差一个系数(底数),因此为简便起见我们可以设代入其中后都得到特征方程然后我们就可以分情况讨论。

有两不同实根:#

得到两个指数解,因而通解就是这两个解的线性组合。

有两相同实根:#

得到一个指数解,因而我们还要找出另外一个解来,这件事情我们之前做过了,我们可以仿照之前的做法,得到另外一个解满足的条件是因而我们可以选取作为解的另一部分,从而得到方程的通解是

有两不同复根:#

这个时候得到的解就是复变函数了。可以使用欧拉的那个定理来将含有虚数的两个指数拆成三角函数形式,最终整理为其中是原方程的两复根。

二阶非齐次线性方程的解的结构:#

类比线性方程组的解的结构,只需要找出非齐次的一个特解,然后再加上齐次方程的通解即可。

如果我们找到了两个齐次解,怎么找出那个特解呢?我们可以设那个新解为然后代回去得到一个关系。当然我们这里设了两个变量,实际上并不需要这么多,我们最终只需要一个特解即可,剩下的都是系数,因此我们可以在这个过程中找一个比较简单的两者的关系,方便我们解决。

特殊的二阶非齐次方程:#

这部分没什么意思。

是幂*指函数#

是幂*弦函数#

是二者的混合#

向更高阶出发:#

对于更高阶的方程,我们有一个很粗糙的降阶方法,就是一阶一阶设一个未知数,写成方程组的形式,例如
可以写成
然后我们就可以快乐的?使用矩阵来表示啦。
我们使用如下标记来表示一般的方程组其中每个系数既可以是函数,也可以是常数,不过我所使用的这本书只考虑常数。

于是我们就可以这么写上面这个方程

我们知道,n维的这种方程有n个线性无关的解,这和阶数是相对应的,之前一阶的时候有一个线性无关的解,二阶的时候就是两个。

这和我们之前看到的是类似的,我们进而想,矩阵函数中有没有这样神奇的东西,能够求完一次导数之后系数增加一个矩阵的?虽然没有这种显式的函数,不过我们可以使用级数,也就是来代替指数函数作为其结果。

然而这进而引出了一个新问题,就是如何计算更高阶的矩阵,总不能我们一个一个乘把,而且项数是无穷项,我们真的在实际应用上解决了问题吗?

当然前人已经为我们想好了解决方法:一方面,我们可以将矩阵分解成为各个特征向量上的一个更简单的矩阵(其实就是线性变换的最简单矩阵表示);同时我们可以将右边的未定向量分解为这组特征向量上的一个表示。

不过大多数情况下特征向量是不够用的,这时候需要广义特征向量,其实就是循环子空间的那一组向量。这组向量保证了我们的分解出来的基的个数和矩阵的秩是相同的。详见jordan标准型的相关讨论。

基解矩阵:#

将所有的解组成为一个矩阵,类似于我们将之前的解写成一个通解,我们可以得到一个矩阵,称之为基解矩阵。

基解矩阵列出了所有的解,并且不同形式的基解矩阵之间是等价的,只相差一个线性组合(常矩阵)

我们还可以得知,矩阵指数函数是原方程的一个基解矩阵,也就是说,矩阵指数函数得到的那个矩阵中所有的列向量就是原方程的所有解。

从而我们计算矩阵指数函数的方法又多了一个,我们首先找出所有的解,然后再使用初值来确定系数。

非齐次:#

解法和一元的方程是一样的,先找出积分因子,然后再计算结果,只不过除法要换成逆矩阵。

拉普拉斯变换:#

这本书讲拉普拉斯变换只讲了三个内容:如何使用拉普拉斯变换/如何使用逆变换推导正变换作用的对象/如何使用拉普拉斯变换求解微分方程。其中重点必然是后两者,但是只是应用方面的,并没有很深刻的理论解释。

稳定性理论:#

未深入研究,研究某个微分方程所确定的系统在微小扰动下的变化。在控制系统/电子系统/生态系统的研究中很有应用。

end:#

本书作者:周宇虹 罗建书;
出版社:科学出版社;

  • 丛书名称:
    • 常微分方程及其应用–理论与模型
    • ordinary differential equations and their applications–theories and models

感受:工科数学。