tft每日頭條

 > 生活

 > 方程的小解

方程的小解

生活 更新时间:2024-09-08 16:23:09

今天這一篇我們不講難懂的,講一下大家都能看懂的知識,那就是方程的近似解。

順便說一下由于時間關系今天我們就作一下簡單的介紹,雖然簡單介紹,但是我相信絕大部分人能看懂。

解方程一般分為解析法與數值方法,但是衆所周知,解析法能解出的方程數量,可以說是九牛一毛,隻要随便寫出一個方程基本沒有一般方法能得到方程的精确解。也就是說,在現有的數學框架下,想要得到任意一個方程的精确解,基本是不可能的,當然了簡單方程除外。所以得到一個方程在任意指定的誤差範圍内的近似解就成為了主要研究對象。下面我們就簡單介紹兩種數值方法來得到方程的近似解。

方程的小解(方程的近似解)1

一、二分法:

這種方法我相信絕大部分人都聽過,也就是根據零點定理找到兩點a、b,使得f(a)·f(b)<0,然後根據這兩點開始二分法。

設f(x)在[a,b]上連續,且有f(a)·f(b)<0,那麼在[a,b]中至少存在一個解x*,我們現假定隻有一個解,并指定一個精度要求精确到如10⁻³、10⁻⁸,記為ε。那麼我們希望能找到的一個近似值x',滿足:

|x'-x*|<ε,

當然了,這樣就存在一個問題,精确值x*我們事先并不知道,那該怎樣确定呢?其實很簡單,我們取兩次二分得到的近似值x'、x'',隻需要滿足 |x'-x''|<ε即可。為什麼滿足|x'-x''|<ε就行呢?原因等講過二分法的具體操作之後再說。

1、二分法的操作步驟:

①、在閉區間[a,b]中,首先令x₁=(a b)/2。

②、計算f(x₁)的值,如果有f(x₁)=0,那麼x₁就是解,否則,繼續下面的步驟。

③、如果有f(x₁)·f(a)<0,那麼取區間[a,x₁],并取x₂=(a x₁)/2,否則f(x₁)·f(b)<0,那麼取區間[x₁,b],并取x₂=(x₁ b)/2。

④、同樣如果有f(x₂)=0,那麼x₂就是解,否則,繼續下面的步驟。

⑤、如果解在區間[a,x₁],并且有f(x₂)·f(a)<0,那麼取區間[a,x₂],并取x₃=(a x₂)/2;否則有f(x₂)·f(x₁)<0,那麼取區間[x₂,x₁],并取x₃=(x₁ x₂)/2。當然了,要是解在區間[x₁,b],取法類似。就不在重複了。

⑥、同樣的驗證函數在x₃的值,然後重複上面的步驟。

現在來說一下為什麼隻需驗證兩次二分的差的絕對值小于ε,就是滿足精度的近似值。其實很簡單,因為每作一次步驟,它們之間的距離就變為之前的一半,而方程的精确解必定位于每一次分法的某一邊(左或右)。而因為是二分,所以兩邊的長度是相等的,因此隻要有|x'-x''|≤ε,那麼就必定有|x'-x*|≤ε。

現在來說一下,對于某一确定的精度ε,具體最多要作多少次操作就能滿足精度要求。

其實很簡單,有上面分析可知,隻需要兩次分法的距離小于ε即可,而每次分法距離變為原來的一半,因此對于n次分法,距離就變為(b-a)/2ⁿ,因此隻需要使得(b-a)/2ⁿ<ε,并且解出n,就可以得到需要作多少次步驟,就可以得到滿足精度要求的近似解。

我們舉一個簡單的例子,如求方程3x²-2x-2=0的解要求精度為10⁻³。

我們先設函數f(x)=3x²-2x-2,并且很容易能找到一個區間滿足上面的二分條件,區間[0,2]滿足,現在确定大概需要多少步,2/2ⁿ≤10⁻³,算了一下,需要十步就能得到滿足的近似解。在此我們就不具體解答了。

下面我們在介紹另一種方法,牛頓疊代法。

二、牛頓疊代法:

在數值計算中,我們一般情況下,是能用牛頓疊代法就不用二分法,因為二分法收斂速度慢,計算步驟比較多,當我們介紹了疊代法後,就可以知道它的收斂速度是二次的。當然了,相比于疊代法,二分法也有優勢,後面會具體說明。

疊代法就是将原來的方程f(x)=0化為等介形式,即

x=F(x),

也就是說,若x*是方程f(x)=0的解,那麼也成立

x*=F(x*),

反之亦然,F(x)稱為疊代函數。

構造疊代函數的方法有多種,最簡單的莫過于

F(x)=x±f(x)。

下面介紹一下執行步驟。

執行步驟:

首先,我們選取一個合适的x₀作為初始疊代值,并且按照

xₙ₊₁=F(xₙ),(n=1、2、…)

的方式來構造序列{xₙ}(當然了,設疊代後的每個值都在F(x)的定義域之内),如果我們在理論上成立數列{xₙ}收斂于某一值x*,那麼我們很容易知道這個收斂值x*就是原方程的解了。

對于某一指定的精度要求ε,我們依然隻需要兩次疊代的值xₙ、xₙ₊₁差的絕對值滿足

|xₙ₊₁-xₙ|≤ε,即可。

具體原因是數列{xₙ}是基本列,所以對于任意的指定的精度ε,存在一個N∈N ,對于任意的n、m,隻要n、m>N,就有|xₙ-xₘ|≤ε,因而就有|xₙ-x*|≤ε。

現在我們用泰勒公式來導出牛頓疊代法中的F(x)。

由泰勒公式的運用條件,首先我們設f(x)在含有解x*的區間[a,b]内具有連續二階導數,且對于任意x∈[a,b],都有f'(x)≠0,這樣我們對f(x)運用泰勒公式,由于x*是方程f(x)=0的解,因此有

f(x*)=f(x) f'(x)(x*-x) f"(ξ)(x* -x)²/2=0,

把x*單獨移出來得

x*=x-f(x)/f'(x)-f"(ξ)/f'(x)·(x* -x)²/2,

而當x趨于x*時,右邊最後一項是趨于0的,因而有

x*=x*-f(x*)/f'(x*),

這樣我們得到一個滿足疊代條件疊代函數的,即

F(x)=x-f(x)/f'(x),

由此得到疊代公式:

xₙ₊₁=F(xₙ)=xₙ-f(xₙ)/f'(xₙ),

上面介紹的就是牛頓疊代法。

三、幾何意義:

大家都知道,我們要求解方程f(x)=0的解,實際上就是求函數f(x)曲線與x軸的交點的橫坐标,那麼我們所取的初始值x₀在曲線f(x)的坐标點為(x₀,f(x₀)),那麼過這點曲線的切線方程為:

y=f'(x₀)(x-x₀) f(x₀),

而這切線與x軸交點的橫坐标恰為

x=x₀-f(x₀)/f'(x₀)=x₁,

這說明了,牛頓疊代法實際上是通過一系列的切線與x軸交點的橫坐标來逼近曲線與x軸交點的橫坐标。

下面我們給出如下定理:

設f(x)在區間[a,b]中具有連續的二階導數,且滿足一下三個條件:

(1)、f(a)·f(b)<0;

(2)、f'(x)在區間(a,b)上符号保持不變;

(3)、f''(x)在區間(a,b)上符号保持不變;

并在(a,b)上取一點x₀,滿足

f(x₀)·f''(x₀)>0,

的點,那麼以x₀為初始值的牛頓疊代過程

xₙ₊₁=F(xₙ)=xₙ-f(xₙ)/f'(xₙ),(n=0、1、2…)

所産生的序列{xₙ}單調且收斂于方程

f(x)=0

在區間[a,b]中的唯一解。

下面我們對上面的定理作出必要的證明:

條件(1)保證了,函數f(x)在區間[a,b]上有零點,也就是方程f(x)=0在a在b之間有解。

條件(2)确定了函數在區間[a,b]上單調,保證了方程在[a,b]中解的唯一性。

條件(3)保證了函數在區間[a,b]上的同一凸性,保證了每個xₙ₊₁都比xₙ都接近方程f(x)的解。


首先我們為什麼選用初始值x₀需要滿足f(x₀)·f''(x₀)>0呢?我們作一個簡單說明:

我們首先假定f(x)在區間[a,b]上下凸且單調遞增,即f''(x)、f'(x)在區間[a,b]都恒大于0。其他情況類似。

為了方便理解,我們先從一個特殊情況f'(a)=0說起,當然了,即使f'(a)≠0下面的情況也可能發生。

由f''(x)大于0可知,一階導數f'(x)在區間[a,b]上是單調遞增的,而如果我們在函數零點x'的左側任意選擇一點ξ,即f(ξ)<0,由于f'(a)=0,因此我們知道f(x)在點a切線斜率為0,又因為f'(x)在區間上遞增,可知f'(x)≥0且可以無限逼近于0,而對于區間右端點b,我們總可以找到一條切線,使得這條切線與x軸的交點的橫坐标的值大于b,因而超出了所取定的區間[a,b],而在區間[a,b]之外函數可能無定義又或者可能函數性質發生變化,因而就終止了疊代。牛頓疊代法以失敗告終。

下面我們開始證明這個定理:

證明思路:

我們還是假設f(x)在區間[a,b]上下凸且單調遞增,當然了,其他情況也類似。下面我們由于時間關系,我們隻簡要介紹兩種證明思路。

證明思路一:

我們隻需要證明上述情況的疊代所産生的數列是嚴格遞減的,且有下界,那麼可以知道該數列必定收斂,然後根據疊代數列

xₙ₊₁=xₙ-f(xₙ)/f'(xₙ),

于是得到:

xₙ₊₁-xₙ=-f(xₙ)/f'(xₙ),

由于數列{xₙ}收斂,因此為基本列,從而當n趨于無窮時,左邊一項趨于0,因而右側也趨于0,而f'(x)是大于0的,因此得到當n趨于無窮時,f(xₙ)是趨于0的,故而數列{xₙ}收斂于函數f(x)的零點,即方程f(x)=0的解。

證明思路二:

我們把函數f(x)在區間[a,b]上的零點x*與滿足定理中任意選定的初始值x₀,作成一個區間[x*, x₀],并在此區間中運用拉格朗日中值定理得到,存在一點ξ∈[x*, x₀],使得f(x₀)/(x₀-x*)=f'(ξ),而又因為函數f(x)在區間[a,b]上下凸,因而有二階導數f''(x)在區間[a,b]上恒大于0,因此一階導數f'(x)在區間上是單調遞增的,因此有f'(x₀)>f'(ξ),因此易知函數f(x)在點x₀的切線與x軸交點的橫坐标是大于x*,由疊代數列得

x₁=x₀-f(x₀)/f'(x₀),

知x₁<x₀,綜合可得x*<x₁<x₀,接下來由以上分析對于任意疊代次數n,有

xₙ₊₁=xₙ-f(xₙ)/f'(xₙ),

成立x*<xₙ₊₁<xₙ,因此得知疊代數列{xₙ}嚴格單調遞減,且有下界,易知收斂于方程的解x*。

其他情況思路類似。

當然了,還有其他證法,比如直接用疊代函數 F(x)=x-f(x)/f'(x)性質也可證明。

今天就簡單介紹到這裡,下一篇我們将繼續把混沌現象沒介紹完的部分介紹完。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved