非線性方程的數值解法

2021-10-03 22:23:18 字數 4564 閱讀 6278

許多問題都可以歸結為求解一元函式方程 ? ? = 0. 若?(?)為?次多項式,則稱其為?次多項式方程或代數方程;

若?(?)為超越函式,則稱其為超越方程;

求解一元函式方程 ? ? = 0 可大致分為三個步驟:

1. 二分法

原理:

若 f 在[a, b]上連續,且 f (a) · f (b) < 0,則 f 在 (a, b) 上至少有一實根。

基本思想:逐步二分區間[ a , b ],通過判斷兩端點函式值的符號,進一步縮小有根區間,將有根區間的長度 縮小到充分小,從而求出滿足精度要求的根?∗的近似值。

二分法的計算過程:

計算?(?)在有解區間[a, b]端點處的值,? ? ,? ? .

計算?(?)在中點?0 = ?+? / 2 處的值?(?0),

若?(?0) = 0,則?0為根,否則判斷: 若? ?0 · ? ? < 0, 則根位於區間[?,?0]; ?1 = ?0,?1 = ? 若? ?0 · ? ? < 0, 則根位於區間[?0,?]; ?1 = ?,?1 = ?0 反覆執行2,3步驟,便可以得到一系列的有根區間: (a, b), (a1, b1), …, (ak, bk), …

誤差分析:

第1步產生的x1 = ( a + b )/ 2 有誤差| x1- x*| <= ( b - a ) / 2;

第k步產生的xk 有誤差| xk- x*| <= ( b - a ) / 2的k次方

對於給定的精度r ,可估計二分法所需的步數 k:

( b - a ) / 2的k次方 < r ==> k > [ ln( b - a ) - lnr ] / ln2

2.迭代法

基本思想:已知非線性方程? ? = 0的乙個近似根,通過構造乙個遞 推關係即迭代格式,並根據這個迭代格式反覆校正根的 近似值,計算出根的近似值序列,使之逐步精確化,直 到滿足給定精度要求為止

迭代法是用某種收斂於所給問題精確解的乙個極限過程, 來逐步逼近的一種計算方法,從而可以用有限步驟算出 精確解的具有指定精度的近似解,是求方程根的最重要 方法之一

1.不動點迭代法及收斂性

(1)不動點迭代法

方程 ? ? = 0可改寫成等價形式 ? = ? ? .

若? ?∗ = 0,則 ?∗ = ? ?∗ ,稱?∗為?? 的乙個不動點。 從?∗附近的乙個初值?0出發,有: ?1 = ? ?0 ,?2 = ? ?1 ,…,??+1 =? ?? , 若的極限存在,則稱迭代過程收斂,顯然有: ?∗ = lim ?→∞ ?? 故有?∗ = ??∗ ,從而? ?∗ = 0。

?0:初始近似值

??:第?次迭代近似值

? ? :迭代函式

幾何解釋為:

(2)不動點收斂定理

設迭代函式?(?)滿足條件:

當? ∈ [?,?]時,? ≤ ?(?) ≤ ?;

存在正數? < 1,使對任意?,? ∈ [?,?],都有 |? ? − φ y | ≤ ?|? − ?|成立。

則方程? = ?(?)在[?,?]上有 唯一解?∗,且對任意初始近似值?0 ∈ [?,?],迭代過程??+1 = φ ?? , ? = 0,1,2,… 收斂,且lim ?→∞ ?? = ?∗.

證明:

1.不動點的存在性

由條件∀ ?,? ∈ [?,?],都有|? ? − φ y | ≤ ?(? − ?)成立可 知?(?)在[?,?]上連續。 做輔助函式? ? = ? − ?(?),則?(?)連續。 由? ≤ ?(?) ≤ ?可知,? ? = ? − ? ? ≤ 0,? ? = ? − ? ? ≥ 0, 由連續函式性質可知,必有?∗ ∈ [?,?],使? ?∗ = 0,即 ?∗ = ?(?∗).

2.不動點的唯一性

若在[?,?]上另有一?1 ∗也滿足?1 ∗ = ?(?1 ∗),則由條件|? ? − φ y | ≤ ?|? − ?|可得 ?∗ − ?1 ∗ = ? ?∗ − φ x1 ∗ ≤ ? ?∗ − ?1 ∗ , 由條件? < 1引出矛盾。故唯一性得證。 3.序列收斂 ?∗ − ??+1 = ? ?∗ − φ ?? ≤ ? ?∗ − ?? , ?∗ − ?? ≤ ? ?∗ − ??−1 ≤ ?2 ?∗ − ??−2 ≤ ⋯ ≤ ?? ?∗ − ?0 . 因為? < 1,所以有lim ?→∞?∗ − ?? ≤ lim ?→∞?? ?∗ − ?0 = 0, lim ?→∞?? = ?∗

(3)收斂性定理二

設迭代函式? ? ∈ ℂ1[?,?],滿足條件:

當? ∈ [?,?]時,? ≤ ?(?) ≤ ?;

存在正數? < 1,使對任意? ∈ [?,?],都有 ?′ ? ≤ ? < 1成立。則方程? = ?(?)在[?,?]上有唯一 解?∗,且對任意初始近似值?0 ∈ [?,?],迭代過程 ??+1 = φ ? , ?> = 0,1,2,… 收斂,且lim ?→∞ ?? = ?∗.

證明:

1.不動點的存在性同上一定理

若在[?,?]上另有一?1 ∗也滿足?1 ∗ = ?(?1 ∗),則由微分中值定理,有

?∗ − ?1 ∗ = ? ?∗ − ? ?1 ∗ = ?′ ? (?∗ − ?1 ∗) ?∗ − ?1 ∗ 1 − ?′ ? = 0 其中? ∈ ?∗,?1 ∗ ∈ ?,? ,由條件 ?′ ? ≤ ? < 1可知?∗ = ?1 ∗ 。 故唯一性得證。

2.不動點的唯一性

3.收斂性證明

由中值定理,有 ?∗ − ??+1 = ? ?∗ − φ ?? = φ′ ? ?∗ − ?? , 其中?是?∗與??之間的某一點,由條件 φ′ ? ≤ ?,有 ?∗ − ??+1 ≤ ? ?∗ − ?? , ?∗ − ?? ≤ ? ?∗ − ??−1 ≤ ?2 ?∗ − ??−2 ≤ ⋯ ≤ ?? ?∗ − ?0 . 因為? < 1,所以有lim ?→∞?∗ − ?? ≤ lim ?→∞?? ?∗ − ?0 = 0,lim ?→∞?? = ?∗

(4)誤差分析

考慮方程? = ?(?),?(?) ∈ ℂ1[?,?],若:

當? ∈ [?,?]時,? ≤ ?(?) ≤ ?;

存在正數? < 1,使對任意?,? ∈ [?,?],都有 ?′ ? ≤ ? < 1成立。則任取?0 ∈ [?,?],得到的收斂序列 ?? ?=0 ∞ 有誤 差估計式:

?∗ − ?? ≤1 /1 − ???+1 − ?? ,

?∗ − ?? ≤?? /1 − ??1 − ?0

(5)區域性收斂性

如果存在?∗ 的某鄰域?(?∗,?),使得∀?0 ∈ ?(?∗,?),迭代過程 ??+1 = ?(??)所產生的序列都收斂於?∗ , 稱迭代過程在根?∗ 附近區域性收斂

設?(?)在方程? = ?(?)的根?∗附近有連續的一階導數, 且 ?′ ?∗ < 1,則迭代過程??+1 = ?(??)區域性收斂

2.迭代過程的加速方法

乙個迭代法要具有使用價值,不僅要求它收斂,而且要求它 的收斂速度比較快。所謂迭代法的收斂速度,是指在接近收斂時, 迭代誤差的下降速度

設迭代過程??+1 = ?(??)收斂於方程? = ?(?)的根?∗, 記誤差?? = ?∗ − ??,若存在某實數? ≥ 1及常數? ≠ 0,使lim ?→∞|??+1| / | ?? ?= ?,則稱迭代過程是?階收斂的。

對於迭代過程,如果??+1 = ?(??),如果??(?)在所求根?∗ 的鄰近連續,並且 ?′ ?∗ = ?′′ ?∗ = ⋯ = ?(?−1) ?∗ = 0,?(?) ?∗ ≠ 0, 則稱該迭代過程在點?∗鄰近是?階收斂的。

3.newton-raphson方法

切線法一般迭代法是建立等價的代數方程,從而得到迭代格式,但是構 造出來的迭代格式是否收斂隨意性比較大,迭代格式取得好則收斂, 取得不好,則有可能發散。 newton方法是方程求根的乙個基本方法,基本思路是將非線性方 程? ? = 0逐步線性化,更具普遍性和通用性。

利用一階taylor展開式來近似方程?(?)有 ? ?0 + ?′ ?0 ? − ?0 = 0, 其根 ?1 = ?0− ?(?0) ?′(?0) 可看成原方程? ? = 0的新的近似根,重複上述過程,可得迭代格式 ??+1 = ?? −?(??) ?′(??)

(收斂的充分條件)設 f 屬於c2[a, b],若

① f (a) f (b) < 0;

② 在整個[a, b]上 f 』(x)  0;

③ 在整個[a, b]上?′′(?)不變號;

④? ? ?′ ?≥ ? − ?,? ? ?′ ?≤ ? − ?

則newton』s method產生的序列 收斂到f (x) 在 [a, b] 的 唯一根。

割線法

切線法:用曲線? = ?(?)上的點(??,?(??))的切線代替曲線? = ?(?),將切線與?軸交點的橫座標??+1作為近似根。

割線法:過曲線上兩點(??−1,?(??−1))和(??,?(??))的割線與?軸 交點的橫座標作為近似根。

數值分析4 非線性方程求根

這部分演算法實現起來比較弱智 直接放碼吧 1 簡單迭代 求根 x 4 3x 2 0.include include include include include include using namespace std typedef long long ll const int maxn 501 ...

計算方法 一元非線性方程數值解法

非線性方程f x 0的求根問題 1.基本知識點 1 f x 0的根成為f x 的零點 2 若f x 可以分解成f x x x m g x m為正整數且g x 不等於0 稱x 是f x 的m重根 2.求根的三個步驟 1 判斷根是否存在 2 確定根的分布範圍 3 根的精確解 3.方法 1 二分法 利用零...

非線性方程求根

假設本金為2000元,分2個月還,每個月還1100,月利率為x,則 2000 1 x c 1 x c 0,令f x 2000 1 x c 1 x c,當f x 0時,說明月利率太高了 當f x 0時說明月利率正確 當f x 0時,月利率過低。結果要求輸出三位小數。include include in...