【正文】
第九章 常微分方程初值問(wèn)題數(shù)值解法 引言 簡(jiǎn)單的數(shù)值方法與基本概念 龍格-庫(kù)塔方法 單步法的收斂性與穩(wěn)定性 線(xiàn)性多步法 方程組和高階方程 引言 本章討論一階常微分方程的初值問(wèn)題: 只要函數(shù) 適當(dāng)光滑 — 如滿(mǎn)足利普希茨條件: 理論上就能保證初值問(wèn)題的解 存在并且唯一。 所謂數(shù)值解法,就是尋求解 在一系列離散點(diǎn) 上的近似值 ,相鄰兩個(gè)點(diǎn)間的距離 稱(chēng)為步長(zhǎng)。一般情況下我們?nèi)? 為常數(shù),這是節(jié)點(diǎn)為: 00( , )()y f x yy x y? ??? ??( , )f x y( , ) ( , )f x y f x y L y y? ? ?()y y x?1 2 1nnx x x x ?? ? ? ? ?1 2 1, , , , ,nny y y y ?1n n nh x x??? ( 1, 2 , )ih h i??0 , 0 , 1 , 2 ,nx x n h n? ? ?()yx 引言 初值問(wèn)題的求解有一個(gè)基本特點(diǎn),它們都是采取 “ 步進(jìn)式 ” 求解的,即,一步一步地求函數(shù)的值。 求解的主要方法是:先對(duì)方程進(jìn)行離散化,建立 求數(shù)值解的遞推公式,一類(lèi)在計(jì)算 時(shí)只用到前面一 步的 ,稱(chēng)為單步法。另一類(lèi)在計(jì)算 時(shí)除了用到 理論上就能保證初值問(wèn)題的解 存在并且唯一。 所謂數(shù)值解法,就是尋求解 在一系列離散點(diǎn) 上的近似值 ,相鄰兩個(gè)點(diǎn)間的距離 稱(chēng)為步長(zhǎng)。一般情況下我們?nèi)? 為常數(shù),這是節(jié)點(diǎn)為: ()y y x?1 2 1nnx x x x ?? ? ? ? ?1 2 1, , , , ,nny y y y ?1n n nh x x??? ( 1, 2 , )ih h i??0 , 0 , 1 , 2 ,nx x n h n? ? ?()yx1ny?ny 1ny? 初值問(wèn)題的求解有一個(gè)基本特點(diǎn),它們都是采取 “ 步進(jìn)式 ” 求解的,即,一步一步地求函數(shù)的值。 求解的主要方法是:先對(duì)方程進(jìn)行離散化,建立 求數(shù)值解的遞推公式,一類(lèi)在計(jì)算 時(shí)只用到前面一 步的 ,稱(chēng)為單步法。另一類(lèi)在計(jì)算 時(shí)除了用到 前利用前面一步的 ,還要用到前面的 等,這種 方稱(chēng)為多步法。 其次,要研究公式的局部截?cái)嗾`差和階。數(shù)值解和 精確解的誤差估計(jì)和收斂性,還有遞推迭代公式的數(shù) 值穩(wěn)定性問(wèn)題。 1ny?ny 1ny?ny 1ny?? 顯式歐拉法 在 平面上,微分方程初值問(wèn)題的解 稱(chēng)作方 程的積分曲線(xiàn)。積分曲線(xiàn)上每一點(diǎn) 的斜率等于該 點(diǎn)的函數(shù)值 。如果按函數(shù) 在 平面上建 立一個(gè)方向場(chǎng),那么,積分曲線(xiàn)上每一點(diǎn)的切線(xiàn)方向 均與方向場(chǎng)在該點(diǎn)的方向一致。 方稱(chēng)為多步法。 其次,要研究公式的局部截?cái)嗾`差和階。數(shù)值解和 精確解的誤差估計(jì)和收斂性,還有遞推迭代公式的數(shù) 值穩(wěn)定性問(wèn)題。 xy ()y y x?( , )xy( , )f x y ( , )f x y xy 簡(jiǎn)單的數(shù)值方法與基本概念 ? 顯式歐拉法 在 平面上,微分方程初值問(wèn)題的解 稱(chēng)作方 程的積分曲線(xiàn)。積分曲線(xiàn)上每一點(diǎn) 的斜率等于該 點(diǎn)的函數(shù)值 。如果按函數(shù) 在 平面上建 立一個(gè)方向場(chǎng),那么,積分曲線(xiàn)上每一點(diǎn)的切線(xiàn)方向 均與方向場(chǎng)在該點(diǎn)的方向一致。 基于上面的幾何解釋?zhuān)覀儚某跏键c(diǎn) 出發(fā), 先依方向場(chǎng)在該點(diǎn)的方向推進(jìn)到 上一點(diǎn) ,然后 再?gòu)? 依方向場(chǎng)的方向推進(jìn)到 上一點(diǎn) ,循此前 進(jìn)做出一條折線(xiàn) 。 xy ()y y x?( , )xy( , )f x y ( , )f x y xy0 0 0( , )P x y1xx? 1P2xx? 2P0 1 2P PP 簡(jiǎn)單的數(shù)值方法與基本概念 一般地,設(shè)已做出該折線(xiàn)上的頂點(diǎn) ,過(guò) 依方向場(chǎng)的方向再推進(jìn)到 ,顯然兩個(gè)頂點(diǎn) 的坐標(biāo)有如下關(guān)系 即 基于上面的幾何解釋?zhuān)覀儚某跏键c(diǎn) 出發(fā), 先依方向場(chǎng)在該點(diǎn)的方向推進(jìn)到 上一點(diǎn) ,然后 再?gòu)? 依方向場(chǎng)的方向推進(jìn)到 上一點(diǎn) ,循此前 進(jìn)做出一條折線(xiàn) 。 0 0 0( , )P x y1xx? 1P2xx? 2P0 1 2P PPnP ( , )n n nP x y1 1 1( , )n n nP x y? ? ?1,nnPP?11( , )nn nnnnyy f x yxx??? ??1 ( , )n n n ny y h f x y? ?? 一般地,設(shè)已做出該折線(xiàn)上的頂點(diǎn) ,過(guò) 依方向場(chǎng)的方向再推進(jìn)到 ,顯然兩個(gè)頂點(diǎn) 的坐標(biāo)有如下關(guān)系 即 這就是著名的歐拉公式。若初值 已知,則依該公式 可逐步算出: nP ( , )n n nP x y1 1 1( , )n n nP x y? ? ?1,nnPP?11( , )nn nnnnyy f x yxx??? ??1 ( , )n n n ny y h f x y? ??0y1 0 0 0( , )y y h f x y??2 1 1 1( , )y y h f x y??1 ( , )n n n ny y h f x y? ?? 例 1 求解初值問(wèn)題: (其解為 ) 解:根據(jù)歐拉方法,得到: 這就是著名的歐拉公式。若初值 已知,則依該公式 可逐步算出: 0y1 0 0 0( , )y y h f x y??2 1 1 1( , )y y h f x y??1 ( , )n n n ny y h f x y? ??2 ( 0 1 )( 0 ) 1xy y xyy? ? ? ? ? ???? ??12() nn n nnxy y h yy? ? ? ?12yx?? 例 1 求解初值問(wèn)題: (其解為 ) 解:根據(jù)歐拉方法,得到: 取步長(zhǎng) ,計(jì)算得到如下結(jié)果: 2 ( 0 1 )( 0 ) 1xy y xyy? ? ? ? ? ???? ??12() nn n nnxy y h yy? ? ? ?? nx ny ()nyx nx ny ()nyx12yx??? 隱式歐拉法 在前面的討論中,近似計(jì)算公式 可以看成是由 在區(qū)間 上積分得到,而 右邊的積分是利用左矩形公式 近似,再以 代替 得到,現(xiàn)在右端的積分用右矩形公式,則得 到: 取步長(zhǎng) ,計(jì)算得到如下結(jié)果: ? nx ny ()nyx nx ny ()nyx1 ( , )n n n ny y h f x y? ??( , )y f x y? ? 1[ , ]nnxx?( , )nnhf x y ny()nyx1 1 1( , )n n n ny y h f x y? ? ???? 隱式歐拉法 在前面的討論中,近似計(jì)算公式 可以看成是由 在區(qū)間 上積分得到,而 右邊的積分是利用左矩形公式 近似,再以 代替 得到,現(xiàn)在右端的積分用右矩形公式,則得 到: 此式的右端包含 ,是一種隱式的單步法,稱(chēng)為隱式 歐拉方法。利用此法,每一步都要把該式作為 的方 程來(lái)求解。從數(shù)值積分的誤差來(lái)分析,很難期望隱式 歐拉方法比顯式歐拉方法精確。為了得到更精確的方 法,我們用梯形公式來(lái)近似前面的積分,得到梯形方 法: 它也是一種隱式單步法。 1 ( , )n n n ny y h f x y? ??( , )y f x y? ? 1[ , ]nnxx?( , )nnhf x y ny()nyx1 1 1( , )n n n ny y h f x y? ? ???1ny?1ny?1 1 1[ ( , ) ( , ) ] / 2n n n n n ny y h f x y f x y? ? ?? ? ?? 改進(jìn)的歐拉法 從梯形法的推導(dǎo),可望它比歐拉法更精確,但它計(jì) 算量較大,在實(shí)際計(jì)算中,可取歐拉法的結(jié)果為迭代 計(jì)算 的初值,然后再用梯形公式計(jì)算一次,得到: 歐拉方法。利用此法,每一步都要把該式作為 的方 程來(lái)求解。從數(shù)值積分的誤差來(lái)分析,很難期望隱式 歐拉方法比顯式歐拉方法精確。為了得到更精確的方 法,我們用梯形公式來(lái)近似前面的積分,得到梯形方 法: 它也是一種隱式單步法。 1ny?1 1 1[ ( , ) ( , ) ] / 2n n n n n ny y h f x y f x y? ? ?? ? ?1ny?11 1 1( , )[ ( , ) ( , ) ]2n n n nn n n n n ny y h f x yhy y f x y f x y?? ? ?????? ? ? ???? 改進(jìn)的歐拉法 從梯形法的推導(dǎo),可望它比歐拉法更精確,但它計(jì) 算量較大,在實(shí)際計(jì)算中,可取歐拉法的結(jié)果為迭代 計(jì)算 的初值,然后再用梯形公式計(jì)算一次,得到: 或?qū)懗桑? 改進(jìn)的歐拉法是一種顯式單步法,有時(shí)為了計(jì)算方 便,也用下面的公式: 其中: 1ny?11 1 1( , )[ ( , ) ( , ) ]2n n n nn n n n n ny y h f x yhy y f x y f x y?? ? ?????? ? ? ???11 [ ( , ) ( , ( , ) ) ]2n n n n n n n nhy y f x y f x y h f x y??? ? ? ?1 1 222nnhhy y K K? ? ? ? 1 2 1( , ) , ( , )n n n nK f x y K f x h y h K? ? ? ?? 單步法的截?cái)嗾`差與階 初值問(wèn)題的單步法可用一般形式表示為: 其中多元函數(shù) 與 有關(guān),當(dāng) 含有 時(shí),方法是 隱式的,不含 時(shí)則為顯式的,所以顯式單步法可 表示為: 稱(chēng) 為增量函數(shù),對(duì)于歐拉法, 或?qū)懗桑? 改進(jìn)的歐拉法是一種顯式單步法,有時(shí)為了計(jì)算方 便,也用下面的公式: 其中: 11 [ ( , ) ( , ( , ) ) ]2n n n n n n n nhy y f x y f x y h f x y??? ? ? ?1 1 222nnhhy y K K? ? ? ? 1 2 1( , ) , ( , )n n n nK f x y K f x h y h K? ? ? ?11( , , , )n n n n ny y h x y y h?????? ( , )f x y ? 1ny?1ny?1 ( , , )n n n ny y h x y h?? ??( , , )x y h? ( , , ) ( , )x y h f x y? ?? 單步法的截?cái)嗾`差與階 初值問(wèn)題的單步法可用一般形式表示為: 其中多元函數(shù) 與 有關(guān),當(dāng) 含有 時(shí),方法是 隱式的,不含 時(shí)則為顯式的,所以顯式單步法可 表示為: 稱(chēng) 為增量函數(shù),對(duì)于歐拉法, 為了分析