一階非齊次線性微分方程的算法

本章涉及知識點

1、微分方程的定義

2、一階線性微分方程的定義

3、求齊次線性方程通解的算法

4、求非齊次線性方程通解的算法

5、伯努利方程的變化算法

6、案例微分方程的分析

7、純數學算法推導案例的微分方程

8、Euler算法的推導

9、編程實戰案例微分方程在不同算法下的計算結果和誤差

一、微分方程的定義

在許多實際問題,尤其是金融問題,往往不能直接列出所需要研究的函數的具體表達式,但是根據使用場景,卻可以列出待研究的函數與其導數的關系式,而關于函數和其導數的方程就稱之為微分方程,那么從這個方程中找出未知函數,就是求解微分方程的解

一般的,在滿足初始條件下,微分方程包含未知函數的一階導數

一階微分方程

上述微分方程就叫做一階微分方程

二、一階線性微分方程的定義

一階線性微分方程

上述方程是關于未知函數y及其一階導數的一次方程,我們稱之為一階線性微分方程

方程是齊次的定義為

齊次

而方程是非齊次的定義為

非齊次

求解非齊次微分方程的解,我們需要

(1)、寫出對應于非齊次線性方程的齊次線性方程,求出齊次線性方程的通解

(2)、通過常數易變法,求出非齊次線性方程的通解

三、求齊次線性方程通解的算法

對于齊次方程,我們用分離變量法,得到

求解齊次方程

提出常數C1化簡得

齊次方程的通解

四、求非齊次線性方程通解的算法

得到齊次方程的通解后,我們使用常數易變法,將齊次方程通解中的常數C換做未知函數u(x),變化得

常數易變法

我們對y進行求導,得到

y的導數

將導數帶入非齊次線性方程中,得

非齊次線性方程解法-1

兩端積分得

非齊次線性方程解法-2

將求解到的u帶入y,就得到了非齊次方程的通解

非齊次方程的通解

我們將通解寫成兩項之和,得到

非齊次方程的通解意義

觀察分析上式可以看到,一階非齊次線性微分方程的通解 = 齊次方程的通解 + 非齊次方程的一個特解

五、伯努利方程的變化算法

從一階線性微分方程中可以看到,P(x)和Q(x)當只有P(x)是關聯未知函數y,我們可以用上述算法求解該方程。但是當Q(x)也關聯未知函數y,此時應該如何求解方程呢?

伯努利方程

上述方程叫做伯努利方程,顯然當n=0或n=1時,就是非齊次線性方程,而當n不等于0和1時,這個方程就不是線性的,為此,我們需要利用上述算法求解該方程,就需要通過變量的代換,將它轉化為線性的即可

我們將伯努利方程兩端同時除以y^n得

伯努利方程變化-1

因為

伯努利方程變化-2

為此我們引入新的因變量z

引入新的因變量z

則z的導數寫為

z的導數

將伯努利方程兩端同時乘以(1-n)得

伯努利方程變化-2

可以看到上式的P(x)與z有關聯,而Q(x)已經和z沒有了關聯,即原方程已經變成了線性方程,我們就可以按照之前的算法求出方程的通解,在用z帶回y就可以得到伯努利方程的通解

六、案例微分方程的分析

介紹了非齊次線性方程和伯努利方程求解通解的算法后,我們來求下面方程的通解

案例方程

分析可知,該方程數非線性方程,屬于n=-1的伯努利方程,直接的數學解法需要做伯努利變化為線性方程,再利用非齊次線性方程的解法來求解通解,下面我們先用數學方法來求解

七、純數學算法推導案例的微分方程

將案例方程兩端同時乘以y得

案例方程求解-1

案例方程求解-2

帶入y得

案例方程求解-3

我們從上式中寫出P(x)、Q(x)以及P(x)的積分

案例方程求解-4

帶入非齊次線性方程的通解得

案例方程求解-5

下面我們需要單獨來求解上式中的積分,使用分部積分法

案例方程求解-6

將積分的結果帶入非齊次線性方程的通解得

案例方程求解-7

將z帶回y得

案例方程求解-8

為此我們求出了案例方程的通解,下面帶入初始條件y(0)=1得

案例方程求解-9

最終我們得到了案例方程的精確解為

案例方程的精確解

八、Euler算法的推導

上面我們用純數學知識推導出了案例方程的精確解,但是計算機顯然不會分部積分法,我們任然需要從微分方程的原理出發

我們回到微分方程的定義

微分方程的定義

我們將微分方程在區間[ti,ti+1]上積分得

同時積分

在區間[ti,ti+1]上將f(t,u)近似的看做常數f(ti,ui),則有

Euler算法

上式稱為Euler算法,可以看到這是一個遞推式算法,可以由已知初值u0推導至un

而Euler算法的幾何意義為:

過點(t0,u0),以f(t0,u0)作為斜率作直線L0,得

Euler算法的幾何意義-1

求出直線L0在t1=t0+h的值u1,得

Euler算法的幾何意義-2

得到u1后,再過點(t1,u1),以f(t1,u1)作為斜率作直線L1,得

Euler算法的幾何意義-3

求出直線L1在t2=t1+h的值u2,得

Euler算法的幾何意義-4

如此繼續迭代下去,可以求出經過

Euler算法的幾何意義-5

節點列表的一條直線,所以Euler算法也叫做折線法,用n段直線繪制成一條折線,來擬合函數曲線

九、編程實戰案例微分方程在不同算法下的計算結果和誤差

下面我們通過伯純數學的努利算法和Euler迭代算法來編程比較案例方程的結果值

伯努利算法
Euler算法

定義區間和步長為

實驗區間和步長

作圖畫出兩種算法的計算結果來直觀比較

h=0.05時兩種算法的計算結果比較

可以看到當步長h=0.05時,Euler算法的精確度在下降,證明了誤差在迭代傳播

我們用伯努利理論值減去Euler值,畫出Euler算法的誤差曲線

h=0.05時Euler算法的誤差曲線

當我們縮小步長h=0.01時,兩種算法的計算結果和Euler算法的誤差為

h=0.01時兩種算法的計算結果比較??
h=0.01時Euler算法的誤差曲線

可以看到步長的縮小,擬合效果更加出色,誤差也在減小

案例代碼見:一階非齊次微分方程的算法

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 2017年考研數學一大綱原文 考試科目:高等數學、線性代數、概率論與數理統計 考試形式和試卷結構 一、試卷滿分及考...
    SheBang_閱讀 648評論 0 7
  • 考試形式和試卷結構一、試卷滿分及考試時間 試卷滿分為150分,考試時間為180分鐘 二、答題方式 答題方式為閉卷、...
    幻無名閱讀 770評論 0 3
  • 三、旅行的意義 很多書中都說了旅行的意義,我不想再多說,我只想說說我的感受和改變。 1.人的生命真的很短暫,當回憶...
    SShineling閱讀 350評論 0 0
  • ARM指令長度概述 32 bits 長 (ARM狀態下) 16 bits 長 (Thumb狀態) ARM7TDM...
    陳超眾閱讀 1,134評論 0 0
  • 你說明天天氣不錯 可我不能陪你出去旅游 你說最近心里比較煩 我只陪你聊到深夜,別的什么也做不了 你說想吃橘子了 我...
    酥白閱讀 166評論 0 3