8
69 Ψ Psihologie revistă ştiinţifico-practică, 2017, nr. 3-4 (31) ISSN 1857-2502; ISSN E 2537-6276. Categoria B 69 VIOLENȚA DOMESTICĂ ASUPRA COPIILOR THE DOMESTIC VIOLENCE ON CHILDREN Lucia SAVCA Cuvinte–cheie: copil, familie, violenţă, suferinţă, psihotraumă, te- rapie sistemică, terapie multimodală, terapie în timp. Rezumat Orice formă de violență în familie își lasă amprenta negativă asupra formării per- sonalității minorului și generează disfuncții în sferele comportamentală, cognitivă și emoțională. Studiul a evidențiat că în familia modernă până la 30% din copii suferă de violență fizică, iar de violența psihologică până la 45%. Violența sexuală, spre de- osebire de celelalte forme de violență, este depistată mai dificil. Ea are consecințe mai dramatice și necesită o perioadă mai îndelungată pentru recuperare psihologică. În acest studiu, sunt detaliat descrise și câteva cazuri de violență sexuală în familie. Keyword: child, family, violence, suffering, psychotrauma, familial stem therapy, multimodal therapy, time therapy. Abstract Any form of domestic violence leaves its mark on minority's personality forma- tion and generates dysfunctions in the behavioral, cognitive and emotional sphere. The study found that in the modern family up to 30% of children suffer from physical violence and up to 45% by psychological violence. Sexual violence, unlike other forms of violence, is more difficult to discover. It has more dramatic consequences and re- quires a longer time for psychological recovery. In this study, are described a few cases of sexual violence in the family literally. Introducere. Copilul se naște în familie, având menirea imperioasă de continuitate a arborelui geneologic. Fa- milia este prima celulă socială, în care copilul asimilează normele de conduită în societate, însușește valorile moral - spirituale, acceptate de familie. O gene- rație sănătoasă fizic și psihic se naște în contextul unui climat familial propice. Iubirea, maturitatea emoțională, comu- nicarea empatică, responsabilitatea, spi- ritualitatea înaltă ș.a. constituie premise ale dezvoltării armonioase a copilului. Stilul educațional din familie își lasă amprenta asupra dezvoltării psihice și formării personalității o perioadă înde- lungată de timp sau și pe toată viața [1]. Conform unui program biologic înnăscut, copiii caută proximitatea pă- rinților, care le pot oferi protecție. Pen- tru copil, părintele reprezintă o figură de atașament. Devenind adulți, copiii continuă să filtreze și să interpreteze realitatea pe baza experiențelor timpu- rii. Examinând corelația dintre climatul educațional familial și felul de conduită al copilului, Bowbly evidențiază urmă- toarele idei, pe baza cărora elaborează teoria ataşamentului [apud. 2 p. 46]: - relația mamă-copil nu este doar de natură nutritivă, ci și afectivă (atașa- ment primar);

數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

1

數 值 方 法

資訊工程系

王英宏

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 httpmailtkuedutwinhon 2

授課資訊

教科本數值分析 林丕靜著 儒林出版 請尊重智慧財產權勿非法影印使用教科書與參考書籍及使用盜版軟體

成績評定 上課出席15 出席成績僅考核出席與否亦僅佔總成績15故不接受任何請假 平時成績(含隨堂作業小考與作業) 50 期中考15 期末考20 演講出席每場加一分(需簽到簽退)

考試方式 筆試需使用工程用計算機 期末考將提前一周考試 Closed Book

上課方式 板書為主投影片為輔 上課時間不私下聊天手機請關機或改震動並請移駕教室外接聽

2

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 3

金句名言分享

台灣首富郭台銘在其部落格上提到

為金錢做事容易累

為理想做事能耐風寒

為興趣做事則永不倦怠

成功的要素不僅止於有正確的策略還要有

快如閃電的速度

狠如巨雷的執行力httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 4

對同學們的建議

在專業養成上

奠定紮實的基礎

養成終身學習的習慣

在人格養成上

建立正確的態度

處事三態真誠負責合群

httpmailtkuedutwinhon

3

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 5

目次

基本概念

非線性方程式求根

解線性聯立方程式

內插法

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 6

基本概念

何謂數值方法(數值分析)以具有邏輯程序及反覆演算的步驟解決傳統複雜緊瑣

的古典數學問題之方法

數值方法的邏輯程序與反覆的步驟可以轉換成程式並以電腦執行獲得數學問題的解

無論是理工商管等相關科系均將數值方法列為必修科目

httpmailtkuedutwinhon

4

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 7

基本概念

常用之數學定理中間值定理

If f(x)在區間[ab]連續且L為f(a)與f(b)之間的值 then 必存在一點c 其中altcltb (即 c (ab))使得 f(c)=L

平均值定理 If f(x)在區間[ab]連續且可微分 then 必存在一點c其中altcltb使的f(b)-f(a)=frsquo(c)(b-a)or 記為frsquo(c)=(f(b)-f(a))(b-a)

泰勒展開式定理If f(x)在區間[ab]連續且可微分(n+1)次(即 ngt=1)且已知點x0 [ab] then 任意點 x (ab)之方程式值 f(x)= f(x0) + frsquo(x0)(x - x0) + hellip +[f(n)(x0)n] (x- x0)n + [f(n+1)()(n+1)] (x- x0)n+1 其中 (x0x)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 8

誤差 (Error)

為何討論誤差數值方法是採用一連串的循序步驟與反覆代入的計算過程因此

勢必在計算時間與計算值得精確度上求得一個平衡所以也就要容許所謂的誤差存在

何謂誤差誤差(Error)不全然就是錯誤(Mistake)它是代表了估算值與真實解

之間的一個差距

誤差的表示方式絕對誤差

相對誤差

絕對誤差所表現的是一個數值數值本身的大小容易造成人們的錯覺

相對誤差是表示誤差與真實值(或估算值)之間的一個比值(百分比)

httpmailtkuedutwinhon

5

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 9

誤差 (Error)

說明令正確值 = X 估算值 = Xrsquo

則絕對誤差記為 ex = |X ndash Xrsquo|

相對誤差記為 rel ex = |(X ndashXrsquo)X| |(X ndashXrsquo)Xrsquo|

例 X=100000 Xrsquo =99900

Y=0002 Yrsquo =00025

對X而言絕對誤差ex=|100000-99900|=|100|=100

對Y而言絕對誤差ey=|0002-00025|=00005

對X而言相對誤差rel ex=|100100000|=11000

對Y而言相對誤差rel ey=|000050002|=14

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 10

誤差 (Error)

產生誤差的三各主要因素原始資料的誤差

開始計算之前方程式之係數或初始代入值即非精確 值故造成誤差

截斷誤差

使用的數學計算項次因為有無窮的計算項或計算項過多因而終止計算時未計算的項次造成誤差

約略誤差

計算時使用小數位數不足致使一部份的小數被捨去所造成的誤差

當吾人以程式完成某一數值方法時可以透過程式設計上的技巧降低前述三個問題所造成的誤差

Thinking About How To Do

httpmailtkuedutwinhon

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 2: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

2

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 3

金句名言分享

台灣首富郭台銘在其部落格上提到

為金錢做事容易累

為理想做事能耐風寒

為興趣做事則永不倦怠

成功的要素不僅止於有正確的策略還要有

快如閃電的速度

狠如巨雷的執行力httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 4

對同學們的建議

在專業養成上

奠定紮實的基礎

養成終身學習的習慣

在人格養成上

建立正確的態度

處事三態真誠負責合群

httpmailtkuedutwinhon

3

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 5

目次

基本概念

非線性方程式求根

解線性聯立方程式

內插法

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 6

基本概念

何謂數值方法(數值分析)以具有邏輯程序及反覆演算的步驟解決傳統複雜緊瑣

的古典數學問題之方法

數值方法的邏輯程序與反覆的步驟可以轉換成程式並以電腦執行獲得數學問題的解

無論是理工商管等相關科系均將數值方法列為必修科目

httpmailtkuedutwinhon

4

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 7

基本概念

常用之數學定理中間值定理

If f(x)在區間[ab]連續且L為f(a)與f(b)之間的值 then 必存在一點c 其中altcltb (即 c (ab))使得 f(c)=L

平均值定理 If f(x)在區間[ab]連續且可微分 then 必存在一點c其中altcltb使的f(b)-f(a)=frsquo(c)(b-a)or 記為frsquo(c)=(f(b)-f(a))(b-a)

泰勒展開式定理If f(x)在區間[ab]連續且可微分(n+1)次(即 ngt=1)且已知點x0 [ab] then 任意點 x (ab)之方程式值 f(x)= f(x0) + frsquo(x0)(x - x0) + hellip +[f(n)(x0)n] (x- x0)n + [f(n+1)()(n+1)] (x- x0)n+1 其中 (x0x)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 8

誤差 (Error)

為何討論誤差數值方法是採用一連串的循序步驟與反覆代入的計算過程因此

勢必在計算時間與計算值得精確度上求得一個平衡所以也就要容許所謂的誤差存在

何謂誤差誤差(Error)不全然就是錯誤(Mistake)它是代表了估算值與真實解

之間的一個差距

誤差的表示方式絕對誤差

相對誤差

絕對誤差所表現的是一個數值數值本身的大小容易造成人們的錯覺

相對誤差是表示誤差與真實值(或估算值)之間的一個比值(百分比)

httpmailtkuedutwinhon

5

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 9

誤差 (Error)

說明令正確值 = X 估算值 = Xrsquo

則絕對誤差記為 ex = |X ndash Xrsquo|

相對誤差記為 rel ex = |(X ndashXrsquo)X| |(X ndashXrsquo)Xrsquo|

例 X=100000 Xrsquo =99900

Y=0002 Yrsquo =00025

對X而言絕對誤差ex=|100000-99900|=|100|=100

對Y而言絕對誤差ey=|0002-00025|=00005

對X而言相對誤差rel ex=|100100000|=11000

對Y而言相對誤差rel ey=|000050002|=14

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 10

誤差 (Error)

產生誤差的三各主要因素原始資料的誤差

開始計算之前方程式之係數或初始代入值即非精確 值故造成誤差

截斷誤差

使用的數學計算項次因為有無窮的計算項或計算項過多因而終止計算時未計算的項次造成誤差

約略誤差

計算時使用小數位數不足致使一部份的小數被捨去所造成的誤差

當吾人以程式完成某一數值方法時可以透過程式設計上的技巧降低前述三個問題所造成的誤差

Thinking About How To Do

httpmailtkuedutwinhon

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 3: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

3

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 5

目次

基本概念

非線性方程式求根

解線性聯立方程式

內插法

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 6

基本概念

何謂數值方法(數值分析)以具有邏輯程序及反覆演算的步驟解決傳統複雜緊瑣

的古典數學問題之方法

數值方法的邏輯程序與反覆的步驟可以轉換成程式並以電腦執行獲得數學問題的解

無論是理工商管等相關科系均將數值方法列為必修科目

httpmailtkuedutwinhon

4

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 7

基本概念

常用之數學定理中間值定理

If f(x)在區間[ab]連續且L為f(a)與f(b)之間的值 then 必存在一點c 其中altcltb (即 c (ab))使得 f(c)=L

平均值定理 If f(x)在區間[ab]連續且可微分 then 必存在一點c其中altcltb使的f(b)-f(a)=frsquo(c)(b-a)or 記為frsquo(c)=(f(b)-f(a))(b-a)

泰勒展開式定理If f(x)在區間[ab]連續且可微分(n+1)次(即 ngt=1)且已知點x0 [ab] then 任意點 x (ab)之方程式值 f(x)= f(x0) + frsquo(x0)(x - x0) + hellip +[f(n)(x0)n] (x- x0)n + [f(n+1)()(n+1)] (x- x0)n+1 其中 (x0x)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 8

誤差 (Error)

為何討論誤差數值方法是採用一連串的循序步驟與反覆代入的計算過程因此

勢必在計算時間與計算值得精確度上求得一個平衡所以也就要容許所謂的誤差存在

何謂誤差誤差(Error)不全然就是錯誤(Mistake)它是代表了估算值與真實解

之間的一個差距

誤差的表示方式絕對誤差

相對誤差

絕對誤差所表現的是一個數值數值本身的大小容易造成人們的錯覺

相對誤差是表示誤差與真實值(或估算值)之間的一個比值(百分比)

httpmailtkuedutwinhon

5

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 9

誤差 (Error)

說明令正確值 = X 估算值 = Xrsquo

則絕對誤差記為 ex = |X ndash Xrsquo|

相對誤差記為 rel ex = |(X ndashXrsquo)X| |(X ndashXrsquo)Xrsquo|

例 X=100000 Xrsquo =99900

Y=0002 Yrsquo =00025

對X而言絕對誤差ex=|100000-99900|=|100|=100

對Y而言絕對誤差ey=|0002-00025|=00005

對X而言相對誤差rel ex=|100100000|=11000

對Y而言相對誤差rel ey=|000050002|=14

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 10

誤差 (Error)

產生誤差的三各主要因素原始資料的誤差

開始計算之前方程式之係數或初始代入值即非精確 值故造成誤差

截斷誤差

使用的數學計算項次因為有無窮的計算項或計算項過多因而終止計算時未計算的項次造成誤差

約略誤差

計算時使用小數位數不足致使一部份的小數被捨去所造成的誤差

當吾人以程式完成某一數值方法時可以透過程式設計上的技巧降低前述三個問題所造成的誤差

Thinking About How To Do

httpmailtkuedutwinhon

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 4: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

4

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 7

基本概念

常用之數學定理中間值定理

If f(x)在區間[ab]連續且L為f(a)與f(b)之間的值 then 必存在一點c 其中altcltb (即 c (ab))使得 f(c)=L

平均值定理 If f(x)在區間[ab]連續且可微分 then 必存在一點c其中altcltb使的f(b)-f(a)=frsquo(c)(b-a)or 記為frsquo(c)=(f(b)-f(a))(b-a)

泰勒展開式定理If f(x)在區間[ab]連續且可微分(n+1)次(即 ngt=1)且已知點x0 [ab] then 任意點 x (ab)之方程式值 f(x)= f(x0) + frsquo(x0)(x - x0) + hellip +[f(n)(x0)n] (x- x0)n + [f(n+1)()(n+1)] (x- x0)n+1 其中 (x0x)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 8

誤差 (Error)

為何討論誤差數值方法是採用一連串的循序步驟與反覆代入的計算過程因此

勢必在計算時間與計算值得精確度上求得一個平衡所以也就要容許所謂的誤差存在

何謂誤差誤差(Error)不全然就是錯誤(Mistake)它是代表了估算值與真實解

之間的一個差距

誤差的表示方式絕對誤差

相對誤差

絕對誤差所表現的是一個數值數值本身的大小容易造成人們的錯覺

相對誤差是表示誤差與真實值(或估算值)之間的一個比值(百分比)

httpmailtkuedutwinhon

5

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 9

誤差 (Error)

說明令正確值 = X 估算值 = Xrsquo

則絕對誤差記為 ex = |X ndash Xrsquo|

相對誤差記為 rel ex = |(X ndashXrsquo)X| |(X ndashXrsquo)Xrsquo|

例 X=100000 Xrsquo =99900

Y=0002 Yrsquo =00025

對X而言絕對誤差ex=|100000-99900|=|100|=100

對Y而言絕對誤差ey=|0002-00025|=00005

對X而言相對誤差rel ex=|100100000|=11000

對Y而言相對誤差rel ey=|000050002|=14

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 10

誤差 (Error)

產生誤差的三各主要因素原始資料的誤差

開始計算之前方程式之係數或初始代入值即非精確 值故造成誤差

截斷誤差

使用的數學計算項次因為有無窮的計算項或計算項過多因而終止計算時未計算的項次造成誤差

約略誤差

計算時使用小數位數不足致使一部份的小數被捨去所造成的誤差

當吾人以程式完成某一數值方法時可以透過程式設計上的技巧降低前述三個問題所造成的誤差

Thinking About How To Do

httpmailtkuedutwinhon

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 5: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

5

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 9

誤差 (Error)

說明令正確值 = X 估算值 = Xrsquo

則絕對誤差記為 ex = |X ndash Xrsquo|

相對誤差記為 rel ex = |(X ndashXrsquo)X| |(X ndashXrsquo)Xrsquo|

例 X=100000 Xrsquo =99900

Y=0002 Yrsquo =00025

對X而言絕對誤差ex=|100000-99900|=|100|=100

對Y而言絕對誤差ey=|0002-00025|=00005

對X而言相對誤差rel ex=|100100000|=11000

對Y而言相對誤差rel ey=|000050002|=14

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 10

誤差 (Error)

產生誤差的三各主要因素原始資料的誤差

開始計算之前方程式之係數或初始代入值即非精確 值故造成誤差

截斷誤差

使用的數學計算項次因為有無窮的計算項或計算項過多因而終止計算時未計算的項次造成誤差

約略誤差

計算時使用小數位數不足致使一部份的小數被捨去所造成的誤差

當吾人以程式完成某一數值方法時可以透過程式設計上的技巧降低前述三個問題所造成的誤差

Thinking About How To Do

httpmailtkuedutwinhon

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 6: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

6

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 11

誤差的衍生

誤差會隨著算術運算而變化可能增大亦可能減小假設已知兩各真實值為x與y而某一數值運算所推得知估算值及誤差分別為 xrsquo yrsquo及ex ey

不失一般性假設ex及ey均為正向偏差即

x = xrsquo +ex y = yrsquo +ey

當數值運算接下去對x與y進行四則運算之一時會產生下列變化

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 12

誤差的衍生

加法運算

真實值=x+y

估算值= xrsquo+yrsquo

加法運算之誤差

ex+y = |(x+y) ndash (xrsquo+yrsquo)|

= |(xrsquo+ex) +(yrsquo+ey) ndash(xrsquo+yrsquo)|

故加法運算之誤差 ex+y

= |ex+ey|

減法運算

真實值=x-y

估算值=xrsquo ndash yrsquo

減法運算之誤差

ex-y = |(x-y) ndash (xrsquo-yrsquo)|

= |(xrsquo+ex) -(yrsquo+ey) ndash (xrsquo-yrsquo)|

故減法運算之誤差 ex-y

= |ex-ey|

httpmailtkuedutwinhon

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 7: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

7

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 13

誤差的衍生

乘法運算

真實值=xy

估算值=xrsquoyrsquo

乘法運算之誤差

exy = |(xy) ndash (xrsquoyrsquo)|

= |(xrsquo + ex) (yrsquo+ey) - xrsquoyrsquo | = xrsquoyrsquo + xrsquoey + yrsquoex + exey

- xrsquoyrsquo

乘法運算之誤差 exy= xrsquoey + yrsquoex + exey

除法運算真實值=xy估算值= xrsquoyrsquo 除法運算之誤差

exy= |(xy) ndash (xrsquoyrsquo)| = |(xrsquo + ex)(yrsquo+ey) ndash (xrsquoyrsquo)| = [(xrsquo + ex)yrsquo][1(1+eyyrsquo)]

= [(xrsquo + ex)yrsquo][1 ndash eyyrsquo + (eyyrsquo )2 ndash (eyyrsquo )3 +hellip]

省略二次方以上的項

除法運算之誤差 exy= exyrsquo ndash (xrsquoey)yrsquo2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 14

非線性方程式求根

傳統方法

分解方程式為多個一次式乘積

數值方法

反覆代入法求一根

httpmailtkuedutwinhon

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 8: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

8

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 15

解非線性方程式的方法

數值方法解非線性方程式可分為兩類

一括入根法

使用2個初始值( 括入根 )反覆代入數值計算公式

計算次數較多一定可以找到根(收斂)

二局部收斂法

使用2個或1個初始值(局部逼近)反覆代入數值計算公式

計算次數較少可能找不到根(發散)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 16

求初始值的方法

依非線性方程式進行

一單圖法

二雙圖法

三近似方程式法

四笛卡兒符號法

五布丹定理法

httpmailtkuedutwinhon

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 9: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

9

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 17

單 圖 法

將非線性方程式在平面座標的略圖畫出找出與X軸交點的鄰近已知值作為初始值

範例說明

Y = X2 - 3X - lnX

該方程式不複雜可直接以固定的整數分別帶入將其平面座標略圖畫出

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 18

單 圖 法

httpmailtkuedutwinhon

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 10: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

10

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 19

雙圖法

將方程式分解成2部分其中一部份變號再分別畫出其平面座標圖再求兩圖之交點投影至X 軸的交點取鄰近已知值為初始值

範例說明 Y = X2 - 3X ndash lnX Y = 2X2 ndash 14 X ndash 6 + eX + e ndashX

此二方程式明顯地由兩部分不同型式的方程式組成故將方程式分成兩部分其中一部份先變號在分別求其平面座標圖

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 20

雙圖法

httpmailtkuedutwinhon

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 11: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

11

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 21

雙圖法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 22

近似方程式

找到一個近似但易解的方程式以其根為初始值

範例說明

f (X) = ex + |CosX|16 -2

已知|Cos X|≦1 故 |CosX|16 ≦ 116 = 00625

可選|CosX| = 0近似方程式 g(x) = ex-2 = 0

以x = ln2 為初始值故得x = 069315

又可選|CosX| = 1近似方程式 h(x) = ex + 116 - 2 = ex-19375 = 0

以x = ln(19375)為另一初始值故得x = 06614

httpmailtkuedutwinhon

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 12: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

12

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 23

笛卡兒符號法

方程式之正根個數≦f(x)之係數+-號變化次數方程式之負根個數≦f(-x)之係數+-號變化次數小於時必以2之倍數遞減

範例說明 f (x) =3X5-2X4+X3-X2+2X+9

笛卡兒符號規則可知

f (x)之係數符號+-號變化為+- + -++ 4次

f (-x)之係數符號+-號變化為-- - - - +1次

故f (x)之正根個數≦4負根個數≦1

是以 f (x)可能有4個或2個或0個正根及1個負根

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 24

布丹定理法

令f(x)最高次項為n且f(x)的 n次微分存在取兩個值UL分別代入f(x)及各f(x)微分項紀錄代入值之在f(x)及各f(x)微分項的正負變化次數分別記為Mu及ML則f(x)在(UL)有≦| Mu - ML |個根小於時必以2倍數遞減

httpmailtkuedutwinhon

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 13: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

13

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 25

範例說明

已知方程式 f(x)=3X5-2X4+X3-X2+2X+3

f(x)=3X5-2X4+X3-X2+2X+3

frsquo(x)=15X4-8X3+3 X2-2X+2

frsquorsquo(x)=60X3-24 X2+6 X-2

F(3)(x)=180 X2-48 X+6

f(4) (x)=360 X-48

f(5) (x)=360

布丹定理法舉例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 26

布丹定理法舉例

L=-1

(4)f(x) f rsquo(x) f rdquo(x) f rdquorsquo(x) f (x) f (x)

U=1L=0

U=0

+ + + + + +

+ + - + - +

- + - + - +

(5)

M

0

4

5

試以0為基準令U=1L=0 U=0L=-1 分別代入可得下表故可知f(x)在(01)有≦∣0 -4 ∣=4個正根可能有4個2個或0個

又f(x)在(-10)有≦ ∣4 -5 ∣=1個負根必有1個負根

Question 該方程式共有幾個根是否要再考慮其他範圍

httpmailtkuedutwinhon

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 14: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

14

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 27

勵志小品

一位台北市某市立高職校長的孩子教育經驗分享

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 28

括入根法

括入根法

二分法

假位法

改良式假位法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab (a<b) 且f(a)f(b)<0

執行下列方法

httpmailtkuedutwinhon

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 15: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

15

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 29

二分法

1令a0=a b0=b i=1 (以i為計算次數)

2計算xi=

3if(xi滿足終止條件)then xi 為所求stop

4if(f(ai-1 )f(xi)lt0)then ai=ai-1 bi=x

else ai=xi bi=bi-1

5i=i+1goto step2

ai-1+bi-1

2

演算法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 30

終止條件為下列三件之一

1︱f(xi) ︱ltε (寫程式時使用)

2︱xi ﹣xi-1 ︱lt ε (寫程式時或用數值方法計算時使用)

3︱ ︱lt εrsquo

其中ε及εrsquo均為極小值且εrsquoltlt ε例ε=10 εrsquo=10

xi ﹣xi-1xi

﹣5 ﹣7

說明

httpmailtkuedutwinhon

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 16: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

16

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 31

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

如圖例

再令初始值 a0 = 1b0 = 2代入二分法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 32

計算範例

httpmailtkuedutwinhon

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 17: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

17

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 33

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 15000000 -04375

1 10000000 225 15000000 -04375 12500000 0875 0250000

2 12500000 0875 15000000 -04375 13750000 0205078125 0125000

3 13750000 02050781 15000000 -04375 14375000 -012036133 0062500

4 13750000 02050781 14375000 -0120361328 14062500 0041412354 0031250

5 14062500 00414124 14375000 -0120361328 14218750 -003972244 0015625

6 14062500 00414124 14218750 -0039722443 14140625 0000784397 0007813

7 14140625 00007844 14218750 -0039722443 14179688 -001948434 0003906

8 14140625 00007844 14179688 -00194846 14160157 -000935391 0001953

9 14140625 00007844 14160157 -0009354168 14150391 -000428583 0000977

10 14140625 00007844 14150391 -0004285835 14145508 -000175096 0000488

11 14140625 00007844 14145508 -0001750956 14143067 -000048334 0000244

12 14140625 00007844 14143067 -0000483598 14141846 0000150385 0000122

13 14141846 00001504 14143067 -0000483598 14142457 -000016661 0000061

14 14141846 00001504 14142457 -000016687 14142152 -82436E-06 0000031

15 14141846 00001504 14142152 -850319E-06 14141999 709405E-05 0000015

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 34

假位法演算法

1令a0=a b0=b i=1

2計算xi = bi-1﹣f(bi-1)

3if(xi滿足終止條件) then xi 為所求 stop

4if (f(ai-1 )f(xi)lt0) then ai=ai-1 bi=xi

else ai=xi bi=bi-1

5 i=i+1goto step2

bi-1﹣ai-1

f(bi-1)- f(ai-1)

httpmailtkuedutwinhon

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 18: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

18

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 35

假位法原理

三角形比例法

f(b)-f(a)b-a =

f(b)b-x

x=b-f(b)(b-a)

f(b)-f(a)

此為假位法原理

由第一個x落點後

單向逼近

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 36

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 19: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

19

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 37

計算範例

i ai f(ai) bi f(bi) xi+1 f(xi+1) |xi+1 - xi|

0 10000000 225 20000000 -25 14736842 -030507363

1 10000000 225 14736842 -0305073573 14171267 -001511778 0056557

2 10000000 225 14171267 -0015117693 14143427 -000067073 0002784

3 10000000 225 14143427 -0000670516 14142193 -29583E-05 0000123

4 10000000 225 14142193 -29792E-05 14142138 -13141E-06 0000005

5 10000000 225 14142138 -123385E-06 14142136 -54422E-08 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 38

改良式假位法演算法

1令a0=a b0=b i=1 FA=f(a0) FB=f(b0) save=FA

2計算xi=bi-1 ndash FB FX=F(xi)

3if(xi 滿足終止條件) then xi為所求 stop

4if(f(ai-1)f(xi)lt0)

then ai=ai-1 bi=xi FB=FX if(saveFXgt0)then FA=

else ai=xi bi=bi-1 FA=FX if(saveFXgt0)then FB=

5save=FX i=i+1 goto step 2

save的功能為紀錄前一個FX

bi-1 - ai-1

FB - FA

FA2

FB2

httpmailtkuedutwinhon

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 20: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

20

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 39

改良式假位法之圖形

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 40

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

再令初始值 a0 = 1b0 = 2代入改良式假位法演算法並以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 21: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

21

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 41

計算範例

i ai FA bi FB xi+1 f(xi+1) |xi+1 - xi| SAVEi

0 10000000 225 20000000 -25 14736842 -030507363 225

1 10000000 225 14736842 -0305076 14171264 -001511595 0056558 -03050736

2 10000000 1125 14171264 -0015116 14115960 001359837 0005530 -0015116

3 14115960 00135982 14171264 -0015116 14142150 -75693E-06 0002619 001359837

4 14115960 00135982 14142150 -757E-06 14142135 10077E-07 0000001 10077E-07

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 42

練習一

求下列方程式的解

f(X) = X3+4X2-10分別以二分法及假位法求最小正根

f(X) = X3-7X2+14X-6分別以二分法及假位法求最小正根

f(X) = X4-2X3 -4X2 +4X+4以布丹定理求初始值並分別以假位法及改良式假位法求最大負根

以上精確度求至10-5

參考解答

httpmailtkuedutwinhon

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 22: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

22

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 43

局部收斂法

局部收斂法

正割法

牛頓法

定點法

Preprocessing(預備工作)

從已知的方程式f(x)找到兩個初始值ab或一個初始值a即可

執行下列方法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 44

正割法

演算法

1令X-1=a X0=b i=1

2計算Xi=Xi-1-f(xi-1)

3 if(Xi滿足終止條件)

thenXi為所求stop

else if(igtMAX)

then發散stop

else i=i+1 goto step2

xi-1 ndash xi-2

f(xi-1) ndash f(xi-2)

httpmailtkuedutwinhon

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 23: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

23

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 45

正割法

說明方程式 f(x) = x3 ndash 325x2 ndash2x + 65 = 0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 46

正割法

正割法的收斂與發散

httpmailtkuedutwinhon

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 24: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

24

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 47httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 48

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置括入根值1 2

但令初始值 a = 0b = 1代入正割法演算法故可知f(a)f(b) gt 0而非lt0仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 25: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

25

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 49

計算範例

i xi-2 f(xi-2) xi-1 f(xi-1) xi f(xi) |xi - xi-1|

1 00000000 65 10000000 225 1529411764706 -058345207 05294117647

2 10000000 225 15294118 -058345224 1420397610130 -003207178 01090141899

3 15294118 -0583452 14203976 -0032071726 1414056654853 0000814749 00063409451

4 14203976 -0032072 14140567 0000814515 1414213749161 -96988E-07 00001570492

5 14140567 00008145 14142137 -714612E-07 1414213562377 -21425E-11 00000001376

6 14142137 -715E-07 14142136 -195373E-07 1414213562373 0 00000000376

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 50

正割法中求根的計算式與牛頓法

Xi=Xi-1-f(xi-1)

由平均值定理可知若f(x)在[xi-2xi-1] 連續且可微分則必

存在Xrsquo 屬於(xi-2xi-1) 使得frsquo(xrsquo) =

故上式可寫成Xi=Xi-1-

又因為解非線性方程式中正割法若收斂則Xi-2≒Xi-1

而Xrsquo屬於(xi-2xi-1)所以Xrsquo≒ ≒ Xi-1 故Xrsquo以Xi-1視之則正割

計算公式可改寫為 Xi=Xi-1-

所以牛頓法非線性方程式之preprocessing只需初始值a

Xi-1-Xi-2

f(xi-1)-f(xi-2)

Xi-1-Xi-2

f(xi-1)-f(xi-2)

f(xi-1)frsquo(xrsquo)

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 26: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

26

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 51

牛頓法的演算

1令X0=a i=1

2計算Xi=Xi-1-

3if (Xi 滿足終止條件)

then Xi為所求 stop

else if(igtMAX)

then 發散 stop

else i=i+1 goto step2

f(xi-1)frsquo(xi-1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 52

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

首先以單圖法求出最小正根所在位置並取初始值1 2

分別令初始值 a = 1與a = 2 分別代入牛頓法演算法仍以

|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

如附表

httpmailtkuedutwinhon

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 27: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

27

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 53

計算範例

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 10000000 225 -55 14090909 0026624718 0409091

2 14090909 00266248 -5202479 14142086 257297E-05 0005118

3 14142086 2577E-05 -5192398 14142136 244444E-11 0000005

4 14142136 -195E-07 -5192388 14142136 0 0000000

i xi-1 f(xi-1) f(xi-1) xi f(xi) |xi - xi-1|

1 20000000 -25 -3 11666667 1331018519 0833333

2 11666667 13310183 -55 14086700 0028814483 0242003

3 14086700 00288147 -5203301 14142078 30101E-05 0005538

4 14142078 2992E-05 -51924 14142136 329603E-11 0000006

5 14142136 -195E-07 -5192388 14142136 0 0000000

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 54

定點法

對任何方程式而言若存在一個 r 使得f(r)=0

則稱 r 為 f(x) 之一根

若存在一個s若使得f(s)=s

則稱 s 為 f(x) 之一定點

因此欲求f(x)之一根亦即計算為 f(x)=0之x值

今將等式f(x)=0改寫成x=g(x)則找到g(x)之定點k亦即g(k) = k則k必使得f(k)=0

即為f(x)之一根

httpmailtkuedutwinhon

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 28: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

28

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 55

定點法之演算法

Processing 已知f(x)和一初始值a且從f(x)=0找到一個g(x)使得x=g(x)

演算法流程1令x0=ai=12計算xi=g(xi-1)3 if(xi滿足終止條件)

then xi即為所求 STOP

else if( i gtMAX)then 發散 STOP else i=i+1 go to step2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 56

定點法中的g(x)

對任意的f(x)=0都可以找到多個x=g(x)的等式則不同的g(x)對定點法的運算是否有影響呢

Ans 有

3 2

x ndash 2x + 65

例 f(x)=x - 325x - 2x + 65

可以找到至少下列三種 g(x)

x - 325x - 2x + 65=0

1 x= =g1(x)

2 x= =g2(x)

3 x=(325x2 + 2x ndash 65)13 =g3(x)

3 2

x - 325x +653 2

23

325

httpmailtkuedutwinhon

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 29: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

29

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 57

分析選擇何種g(x)對定點法之影響

令f(x)=0轉換成x=g(x) 假設已知s為g(x)之一定點 亦即s=g(s)且f(s)=0 又

令xn為定點法第n次計算之x 亦即xn=g(xn-1) 則xn ndash s=g(xn-1) ndash g(s) 必成

又xn ndash s = 亦成立

又由平均值定理可知必存在一個mn屬於(xn-1 s)或mn

屬於(s xn-1)使得grsquo(mn)=

故xn ndash s= grsquo(mn)(xn-1 ndash S)

亦成立 同理xn-1 - s=grsquo(mn-1)(xn-2 ndash S)亦成立 其中mn-1屬於(xn-2 s)或mn-1

屬於(s xn-2)

g(xn-1) ndash g(s)(xn-1 ndash s) (xn-1 ndash s)

g(xn-1) ndash g(s)(xn-1 ndash S)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 58

分析選擇何種g(x)對定點法之影響

以此類推令M= maxall x |grsquo(x)|

則 |xn ndash S|≦M |xn-1 ndash S|

≦M M |xn-2 ndash S|

≦M2 M |xn-3 ndash S|

≦Mn-2 M |x1 ndash S|

xn - S ≦ Mn-1 |x1 ndash S| 故當Mlt1時 (註Mgt0)

則當nrarrinfin |xn ndash S| rarr 0 亦即xn rarr S表示收斂

故︱grsquo(x)︱lt1是定點法收斂之充分條件

httpmailtkuedutwinhon

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 30: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

30

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 59

分析選擇何種g(x)對定點法之影響

圖形說明畫出 y=x 及 y = g(x) 兩曲線則兩曲線之交點即為解

圖例

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 60

分析選擇何種g(x)對定點法之影響

httpmailtkuedutwinhon

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 31: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

31

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 61

計算範例

方程式f(x) = x3 ndash 325x2 ndash2x + 65 = 0的最小正根

分別以g1(x) = (x3 ndash 325x2 +65)2 與

g3(x) = (325x2 + 2x ndash 65)13 計算

初始值均以1代入

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 62

計算範例 g1(x) = (x3 ndash 325x2 +65)2

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 2125

2 21250000 -2830078125 0709960938 1125000

3 07099609 379978532 2609853598 1415039

4 26098536 -3079959303 1069873946 1899893

5 10698739 1864813855 2002280874 1539980

6 20022809 -2506828304 0748866722 0932407

7 07488667 3599627594 2548680519 1253414

8 25486805 -3152972758 097219414 1799814

9 09721941 240271744 217355286 1576486

10 21735529 -2932599428 0707253146 1201359

11 07072531 3813593901 2614050096 1466300

12 26140501 -30737099 1077195146 1906797

httpmailtkuedutwinhon

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 32: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

32

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 63

計算範例 g1(x) = (x3 ndash 325x2 +65)2

13 10771951 1824396937 1989393615 1536855

14 19893936 -2467872676 0755457277 0912198

15 07554573 3565410756 2538162655 1233936

16 25381627 -3162173443 0957075934 1782705

17 09570759 2485542658 2199847263 1581087

18 21998473 -298172805 0708983238 1242771

19 07089832 3804773073 2611369774 1490864

20 26113698 -3077720056 1072509746 1902387

21 10725097 1850263213 1997641353 1538860

22 19976414 -2492908773 0751186966 0925132

23 07511870 3587591207 2544982569 1246454

來回震盪誤差無縮小的趨勢發散

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 64

計算範例 g3(x) = (325x2 + 2x ndash 65)13

i xi f(x) g(xi) |xi - xi-1|

1 10000000 225 1619805901

2 16198059 -1016868059 1305057957 0619806

3 13050580 0577304982 1471679153 0314748

4 14716792 -0294915892 1383556327 0166621

5 13835563 0160088401 1430487886 0088123

6 14304789 -0084188823 1405550904 0046923

7 14055509 0045053724 1418819943 0024928

8 14188199 -0023896956 1411761949 0013269

9 14117619 001273568 1415517768 0007058

10 14155178 -0006770251 1413519582 0003756

httpmailtkuedutwinhon

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 33: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

33

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 65

計算範例 g3(x) = (325x2 + 2x ndash 65)13

11 14135196 0003603893 1414582788 0001998

12 14145828 -0001917027 1414017106 0001063

13 14140111 0001051512 1414321305 0000572

14 14143213 -000055943 1414156236 0000310

15 14141562 0000297664 1414244064 0000165

16 14142406 -0000140597 1414199155 0000084

17 14141992 748089E-05 1414221228 0000041

18 14142212 -398029E-05 1414209484 0000022

19 14142095 211765E-05 1414215732 0000012

20 14142157 -112655E-05 1414212408 0000006

收斂

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 66

練習二

求下列方程式的解

f(X) = X4-2X3 -4X2 +4X+4以正割法及牛頓法求最大負根

f(x) = X3-2X2-5 以正割法求最小正根

f(x) = 2XCos2X ndash (X-2)2 以牛頓法求最小的二個正根

f(x) = eX ndash 3X2 以定點法求最小正根

以|Xi+1 ndash Xi | lt ε為終止條件 ε = 10 ndash5

httpmailtkuedutwinhon

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 34: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

34

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 67

多項式的根

當方程式型式為

f(x) = anxn + hellip + a1x1 + a0 時 ------(1)

可採用牛頓法 Xi = Xi-1 ndash f(Xi-1)frsquo(Xi-1)反覆計算

然而一連串的反覆計算f(Xi) 與 frsquo(Xi) 相當繁瑣

因此另找出計算函數值f(X)的方法Hornerrsquos Method

又稱為Nested Multiplication其形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 68

多項式的根

Hornerrsquos Method的推導

假設X1為初始值則

f(x)(x-X1) = (n-1)次多項式 + 餘式

= bnXn-1 +hellip+ b2x + b1 + b0(x-X1)

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

當 x = X1時f(X1) = b0

比較f(x)在式(1)與式(2)展開後之各項係數可發現

httpmailtkuedutwinhon

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 35: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

35

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 69

多項式的根

Hornerrsquos Method的推導Xn 項 an = bn

Xn-1項 an-1 = bn-1 ndashx1bn

Xj-1項 aj-1 = bj-1 ndashx1bj j = n n-1 hellip 1 X0項 a0 = b0 ndash x1b1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 70

多項式的根

為求bj可以解前述之各等式得bn = an

bn-1 = an-1+ x1bn

bj-1 = aj-1 + x1bj j = n n-1 hellip 1

b0 = a0 + x1b1

故得方程式f(x)之Nested Multiplication形式如下

f(X1) = a0 + x1(a1+x1(a2+hellip+x1(an-1 +x1(an))hellip))

httpmailtkuedutwinhon

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 36: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

36

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 71

多項式的根

再進一步地求一次微分frsquo(x)由前述第(2)式

f(x) = (x-X1)(bnXn-1 +hellip+ b2x + b1) + b0 ------------ (2)

可改寫為 f(x) = (x-X1)g(x) + b0 則對f(x)一次微分得f

frsquo(x) = (x-X1)grsquo(x) + g(x) (g(x)微分 + (x ndashX1)微分)

當x = X1時

frsquo(X1) = g(X1) 而g(x) = bnXn-1 +hellip+ b2x + b1

再利用Hornerrsquos Method

g(x) = (x-X1) (cnXn-2 +hellip+ c3x + c2) + c1

則 g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 72

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 37: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

37

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 73

多項式的根

故由Hornerrsquos method可得cn = bn

cn-1 = bn-1+ x1cn

cj-1 = bj-1 + x1cj j = n n-1 hellip 2

c1 = b1 + x1c2

故得 frsquo(X1) = g(X1) = c1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 74

多項式的根

因此牛頓法中的

Xi+1 = Xi ndash f(Xi)frsquo(Xi)對任意的i值當x = xi時f(xi)與frsquo(xi)分別以b0與c1代入可得

Xi+1 = Xi ndash b0c1i = 1 2 3 hellip其中b0與c1可用下列公式推導cn = bn = an

bj = aj + xibj+1j = n-1 hellip 0cj = bj +xick+1k = n-1 hellip1i = 1 2 3 hellip

上述三式稱為Birge-Vieta Method

httpmailtkuedutwinhon

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 38: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

38

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 75

Birge-Vieta Method應用範例

已知方程式為多項式f(x) = x4 ndash 5x3 + 3x2 ndash 42x ndash96

且已知 f(-2)f(-1) lt 0故取X1 = -1以Birge-Vieta Method求方程式f(x)之一根終止條件為|Xi+1 ndash Xi | lt ε為終止條件 ε = 5 x 10 ndash5

Ans方程式最高次項為4故需計算b4~b0c4~c1

計算結果如下表所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 76

Birge-Vieta Method應用範例

I Xi b4 b3 b2 b1 b0 c4 c3 c2 c1 Xi+1 |Xi+1 - Xi|

1 -1 1 -6 9 -51 -45 1 -7 16 -67 -16716417910 067164

2 -1671641791 1 -6672 14153 -65658 137568 1 -8343 281 -11263 -15495010426 012214

3 -1549501043 1 -655 13148 -62374 064788 1 -8099 25698 -10219 -15431612240 000634

4 -1543161224 1 -6543 13097 -62211 000163 1 -8086 25576 -10168 -15431451838 160E-05

5 -1543145184 1 -6543 13097 -62211 280E-08 1 -8086 25575 -10168 -15431451837 276E-10

由方程式已知 a4=1a3= -5 a2= 3 a1= -42 a0= -96計算公式c4 = b4 = a4b3 = a3 + Xib4 c3 = b3 + Xic4b2 = a2 + Xib3 c2 = b2 + Xic3b1 = a1 + Xib2 c1 = b1 + Xic2b0 = a0 + Xib1 i = 1 2 3 hellip

httpmailtkuedutwinhon

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 39: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

39

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 77

解線性聯立方程式

線性聯立方程式n個一次式方程式n個未知數求聯立解亦即共同解

傳統解法線性代數之(1)高斯消去法

(2)高斯消去法之矩陣形式

(3)高斯喬登法

(4)LU分解法

數值方法 (反覆代入計算)Jacobi法

Gauss-Siedel法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 78

高斯消去法

(以n=3為例)

A11X1+A12X2+A13X3=b1 -----(1)

A21X1+A22X2+A23X3=b2 -----(2)

A31X1+A32X2+A33X3=b3 -----(3)

令M21=A21A11 式(2)rsquo=式(2)-式(1)M21

得A22rsquoX2+A23rsquoX3=b2rsquo -----(2)rsquo其中A22rsquo =A22-A12M21A23rsquo b2rsquo同理

令M31=A31A11 式(3)rsquo=式(3)-式(1)M31

得A32rsquoX2+A33rsquoX3=b3rsquo -----(3)rsquo 其中A32rsquo =A32-A12M31A33rsquo b3rsquo同理

令M32=A32rsquoA22rsquo 式(3)rsquorsquo=式(3)rsquo-式(2)lsquoM32

得A33rsquorsquoX3=b3rsquorsquo -----(3)rsquorsquo 其中A33rsquorsquo =A33rsquo-A23rsquoM32b3rsquorsquo同理

故可得X3 再代回(2)rsquo或(3)rsquo可得X2

再代回(1) (2)或(3)可得X1

httpmailtkuedutwinhon

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 40: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

40

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 79

高斯消去法之矩陣型式

以n=3為例a11x1+a12x2+a13x3=b1 a11 a12 a13 b1

a21x1+a22x2+a23x3=b2 a21 a22 a23 b2

a31x1+a32x2+a33x3=b3 a31 a32 a33 b3

轉換成

擴充矩陣

timesm21timesm31

a11 a12 a13 b1

0 a22 a23 b2

0 a32 a33 b3

rsquo rsquo rsquo

rsquorsquorsquo

timesm32

得得X2

得X1a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

得X3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 80

高斯喬登法

將聯立方程式之係數矩陣化減為單位矩陣 則擴充矩陣之常數項即為所求

a11 a12 a13 b1

a21 a22 a23 b2

a11 a32 a33 b3

a11 a12 a13 b1

0 a22 a23 b2

0 0 a33 b3

rsquo rsquo rsquo

rsquorsquo rsquo rsquo

a11 0 0 b1

0 a22 0 b2

0 0 a33 b3

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

得上三角矩陣

得對角線矩陣

1 0 0 b1 a11

0 1 0 b2 a22

0 0 1 b3 a33

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

rsquorsquo

所求

httpmailtkuedutwinhon

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 41: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

41

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 81

處理線性聯立方程式求解之前置作業

if (各方程式之間相對應位置之係數range差距過大

例如相差100倍)

then (進行尺度調整 即對每一個方程式 i 1≦i≦n

取Si = MAX ︱aij︱ 並以Si除第i個方程式之

各係數及常數項 )

if (方程式組之係數矩陣中aii 不是MAX︱aji︱者 1≦i≦n-1)

then (進行樞軸選擇 即進行列對調 至aii為MAX ︱aji︱者

1≦i≦n-1)rsquo

n

n

i=1

j=i

j=i n

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 82

樞軸選擇範例

聯立方程式如下

13X1 ndash 6X2 + 4X3 = -3

-X1 + 046X2 + 6X3 = -608

3X1 + 4X2 + X3 = 10

經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

正確解為

X1 = 1

X2 = 2

X3 = -1

造成誤差原因

計算m32時因為|a22| lt |a32|因此m32很大

經浮點運算後大於1的m32參與運算造成誤差擴大

httpmailtkuedutwinhon

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 42: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

42

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 83

樞軸選擇範例

正確做法將方程式列對調為13X1 ndash 6X2 + 4X3 = -33X1 + 4X2 + X3 = 10-X1 + 046X2 + 6X3 = -608

經高斯消去法計算結果且小數點以下取三位後可得X1 = 1000X2 = 2000X3 = -1000

明顯精確許多

此列對調動作即為樞軸選擇使之

a11 a21a31

a22 a32

13 31

4 046

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 84

尺度調整範例

聯立方程式如下

130000X1 ndash 60000X2 + 40000X3 = -30000

-10000X1 + 4600X2 + 60000X3 = -60800

3X1 + 4X2 + X3 = 10

係數滿足aii |aji|j=in經高斯消去法計算結果為

X1 = 0769

X2 = 15

X3 = -1000

原因是本聯立方程式與前例只差別在第一式與第二式的係數放大10000倍而第三是維持不變

httpmailtkuedutwinhon

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 43: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

43

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 85

尺度調整範例

因此正確的做法要先找出每一方程式之Si

130000X1 ndash 60000X2 + 40000X3 = -30000 S1 = 130000

-10000X1 + 4600X2 + 60000X3 = -60800 S2 = 60000

3X1 + 4X2 + X3 = 10 S3 = 4

各方程式除以其Si後得X1 ndash 04615X2 + 03077X3 = -02308

-01667X1 + 0077X2 + X3 = -1013

075X1 + X2 + 025X3 = 25

由此在判別樞軸選擇可得X1 ndash 04615X2 + 03077X3 = -02308

075X1 + X2 + 025X3 = 25

-01667X1 + 0077X2 + X3 = -1013

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 86

尺度調整範例

再經高斯消去法計算結果且小數點以下取三位後可得

X1 = 1000

X2 = 2000

X3 = -1000

httpmailtkuedutwinhon

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 44: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

44

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 87

數值方法解線性聯立方程式

對於一組n個未知數n個一次式的聯立方程式

1令初始值X10=X2

0=X30helliphellip=Xn

0=0 i=1

2代入計算公式求每一個Xj 1≦j≦n

3if each |Xji-Xj

i-1|lt ε then 得唯一解 stop

else if igtMAX then 發散

else i=i+1 goto step2

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 88

計算公式有二 (以n=3為例)Jacobi 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k) ndasha32X2(k))a33

故推演為一般式如下Xi

(k+1) = biaii - nj=1ampji (aijaii)Xj

(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 45: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

45

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 89

計算公式有二 (以n=3為例) Gauss-Siedel 法公式

X1(k+1) = (b1 ndash a12X2

(k) ndasha13X3(k))a11

X2(k+1) = (b2 ndash a21X1

(k+1) ndasha23X3(k))a22

X3(k+1) = (b3 ndash a31X1

(k+1) ndasha32X2(k+1))a33

故推演為一般式如下

Xi(k+1) = biaii - i-1

j=1 (aijaii)Xj(k+1) - n

j=i+1 (aijaii)Xj(k)

其中 i = 1 2 hellipn 且 k = 0 1 2 3 hellip

數值方法解聯立方程式之計算公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 90

數值方法解聯立方程式應用範例

以反覆代入法解下列聯立方程式之共同解

-3x1 + 7x2 ndash x3 = 1 ---------(1)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(2)

7x1 + x2 + x3 = 9 ---------(3)

首先進行樞軸選擇之列對調得

7x1 + x2 + x3 = 9 ---------(1)

-3x1 + 7x2 ndash x3 = 1 ---------(2)

2x1 ndash 5x2 ndash 9x3 = -5 ---------(3)

再移項呈反覆代入計算形式

httpmailtkuedutwinhon

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 46: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

46

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 91

數值方法解聯立方程式應用範例

x1 = 17(9 - x2 - x3) --------(1)

x2 = 17(1 + 3x1 + x3) --------(2)

x3 = -19(-5 - 2x1 + 5x2) ---------(3)

初始值以 x1 = x2 = x3 = 0分別代入

Jacobi法 與

Gauss-Siedel法

終止條件為 |Xji - Xj

i-1| lt 10-5i = 1 2 hellip j = 1 2 3

計算結果分別為

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 92

數值方法解聯立方程式應用範例 Jacobi法I X1 X2 X3 |X1

i-X1i-1| |X2

i-X2i-1| |X3

i-X3i-1|

0 0 0 0

1 1285714 0142857 0555556 1285714 0142857 0555556

2 1185941 0773243 0761905 0099773 0630385 0206349

3 1066408 0759961 0389519 0119534 0013282 0372386

4 1121503 0655534 0370334 0055095 0104427 0019184

5 1139162 0676406 0440593 0017659 0020872 0070258

6 1126143 0694011 0432921 0013019 0017605 0007671

7 1124724 0687336 0420248 0001419 0006675 0012674

8 1127488 0684917 0423641 0002764 0002419 0003393

9 1127349 0686586 0425599 0000139 0001669 0001958

10 1126831 0686806 0424641 0000518 000022 0000958

11 1126936 0686448 0424403 0000105 0000359 0000237

12 1127021 0686459 0424626 852E-05 113E-05 0000223

13 1126988 0686527 0424639 335E-05 684E-05 127E-05

14 1126976 0686515 0424593 116E-05 125E-05 454E-05

15 1126985 0686503 0424598 828E-06 114E-05 439E-06

16 1126986 0686507 0424606 101E-06 417E-06 82E-06

17 1126984 0686509 0424604 177E-06 16E-06 209E-06

18 1126984 0686508 0424603 702E-08 106E-06 128E-06

httpmailtkuedutwinhon

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 47: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

47

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 93

數值方法解聯立方程式應用範例Gauss-Siedel法

I X1 X2 X3 |X1i-X1

i-1| |X2i-X2

i-1| |X3i-X3

i-1|

0 0 0 0

1 1285714 0693878 0455782 1285714 0693878 0455782

2 1121477 0688602 0422216 0164237 0005276 0033566

3 1127026 0686185 0424792 0005549 0002417 0002576

4 1127003 0686543 0424588 227E-05 0000358 0000204

5 1126981 0686505 0424604 22E-05 386E-05 165E-05

6 1126984 0686508 0424603 315E-06 371E-06 136E-06

7 1126984 0686508 0424603 336E-07 339E-07 114E-07

8 1126984 0686508 0424603 322E-08 3E-08 952E-09

9 1126984 0686508 0424603 293E-09 261E-09 802E-10

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 94

反覆代入法解線性聯立方程式

收斂之充分條件推導 以n=2Gauss-Siedel法計算為例

a11X1+a12X2=b1 -----(1)

a21X1+a22X2=b2 -----(2)假設已知聯立解為X1rsquoX2rsquo

亦即a11X1rsquo+a12X2rsquo=b1

a21X1rsquo+a22X2rsquo=b2

等式成立

故X1rsquo=1a11(b1-a12X2rsquo) -----(3)

X2rsquo=1a22(b2-a21X1rsquo) -----(4)等式成立

httpmailtkuedutwinhon

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 48: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

48

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 95

又以Gauss-Siedel法而言第i次計算結果為

X1 (i) =1a11(b1-a12X2

(i-1)) -----(5)

X2 (i) =1a22(b2-a21X1

(i) ) -----(6)故可知第i次計算之誤差

eX1 (i) =|X1rsquo-X1

(i) | -----(7)

eX2 (i) =|X2rsquo-X2

(i) | -----(8)式(3)與(5)代入式(7)式(4)與(6)代入式(8)得

eX1 (i) =|1a11[(b1-a12X2rsquo)-(b1-a12X2

(i-1) )]|

eX2 (i) =|1a22[(b2-a21X1rsquo)-(b2-a21X1

(i) )]|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 96

eX1 (i) =|a12a11(X2rsquo-X2

(i-1) )| -----(9)

eX2 (i) =|a21a22(X1rsquo-X1

(i) )| -----(10)

其中式(10)之|(X1rsquo-X1 (i) )|即為eX1

(i)

故式(9)可代入式(10)得

eX2(i) =|a21a22˙a12a11(X2rsquo-X2

(i-1) )| -----(11)其中|(X2rsquo-X2

(i-1) )|相對表示Gauss-Siedel在第i-1次計算時X2之誤差故同理可推

eX2 (i-1) =|X2rsquo-X2

(i-1) |=|a21a22˙a12a11(X2rsquo-X2 (i-2) )| -----(12)

式(12)代入式(11)可得eX2(i) =|(a12a21a11a22) (2) ˙(X2rsquo-X2

(i-2) ) |

依此類推可得eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 49: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

49

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 97

即eX2 (i) =|(a12a21a11a22) (i) ˙(X2rsquo-X2

(0) )|

=|(a12a21a11a22) (i) ˙eX2 (0) |

同理eX1 (i) = |(a12a21a11a22) (i) ˙eX1

(0) |

其中eX1 (i)及eX2

(i)表示X1 X2在第i次計算之誤差

而eX1 (0)即eX2

(0)表X1 X2在第0次(亦即初始值)之誤差

其中若|a12a21a11a22|gt1表示eX1 (i) gteX1

(0)且eX2 (i) gteX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|=1表示eX1 (i) =eX1

(0)且eX2 (i) =eX2

(0) 表示反覆代入法ldquo發散rdquo

|a12a21a11a22|lt1表示eX1 (i) ltlteX1

(0) eX2 (i) ltlteX2

(0) 且i rarreX1

(i) ≒eX2(i) ≒0 故表示反覆代入法ldquo收斂rdquo

i

0

反覆代入法解線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 98

反覆代入法解線性聯立方程式

收斂之充分條件

推展至 n 個未知數

稱為對角優勢是反覆代入法解線性聯立方程式的充分條件

a12a13helliphellipa1na21a22hellipa2nhellipan1an2hellipann-1

a11a22hellipann

n

Πij=1inej

aij

aiin

Πi=1

lt 1

lt 1

或記為

httpmailtkuedutwinhon

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 50: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

50

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 99

反覆代入法與消去法之比較

1消去法對所有的非奇異矩陣均可解反覆代入法對部分的非奇異矩陣仍會發散

2消去法在計算過程中將方程式的係數愈算愈複雜反覆代入法的計算過程中係數始終如一

3消去法在每一次的消去過程都可能產生約略誤差反覆代入法的約略誤差取決於終止條件之 與計算過

程無關4消去法的計算過程需要較多的簿記亦即程式中需要

較多的記憶空間反覆代入法則不需要

5消去法的Time Complexity是0(n3)反覆代入法的Time Complexity為0(n2)

6消去法只能應用於解線性聯立方程式反覆代入法則可應用於解非線性聯立方程式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 100

內插法之應用方程式未知或已知但方程式結構複雜難以計算

但已知一組已知點及對應函數值推導其他未知數的可能之函數值

常用於科學實驗統計分析等

Exe03=134986e04=149182e05=164872e06=182212

欲求e0432= 令X=0432a=04b=05取e04及e05以 比例法求

內插法

httpmailtkuedutwinhon

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 51: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

51

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 101

05 ndash X 164872 ndash f(X)

05-04 = 164872-149182

如此可表示出e的一次式f(x)=164872-[(164872-149782)(05-X)]01

X以0432代入即是

若以e04e05e06則可令聯立線性方程式

AX12+BX1+C=f(X1)

AX22+BX2+C=f(X2)

AX32+BX3+C=f(X3)

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 102

其中X1=04X2=05 X3=06及對應之函數值為f(X1)=e04=149182f(X2)=e05 =164872f(X3)=e06 =182212代入

可解聯立方程式ABC的值再以f(X)=AX2+BX+C為eX的二次式將X=0432代入可得所求

因此由已知點中取2點以 比例法推出之一次式稱為f(X)之ldquo內插一次式rdquo

由已知點取3點以解聯立方程式法推出的二次式稱為f(X)之ldquo內插二次式rdquo

內插法

httpmailtkuedutwinhon

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 52: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

52

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 103

內插法

內插法的問題解題步驟

有哪些已知點及其函數值

用其中的哪K個點推導出一個ldquo內插(K-1)次式rdquo

將欲求的值代入

推算誤差

由前面說明可知

用2個點可以 比例法推算內插一次式

用3個點可以線性聯立方程式推算一個內插二次式

用4個以上的點可以法推算內插3 4 5helliphellip次式等

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 104

方法一窮舉法

步驟解線性聯立方程式的方法持續使用

EX AX1

3+BX12+CX1+D=f(X1)

AX23+BX2

2+CX2+D=f(X2)

AX33+BX3

2+CX3+D=f(X3)

AX43+BX4

2+CX4+D=f(X4)

其中 X1X2X3X4 f(X1) f(X2)f(X3)f(X4)為已知

以聯立方程式解ABCD得一內插三次式

內插法

httpmailtkuedutwinhon

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 53: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

53

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 105

內插多項式的定理已知X0X1X2hellipXn等n+1各點及其對應函

數值Y0Y1Y2hellipYn找到一多項式Pn(X)且Pn(X)滿足下列條件(1)Pn(X)最大次方lt=n(2)對於所有的i 使得Pn(Xi)=f(Xi)=Yi

(3)對相同的點(X0X1X2hellipXn)而言Pn(X)唯一

則稱Pn(X)為f(X)內插於點(X0X1X2hellipXn)之內插多項式

由內插多項式定理導出下列方法

內插法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 106

利用Pn要滿足定理之條件(1)及(2)對於已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)之Pn(X)令為

Pn(X)=

Σyi

j=0

jnei

n

(x-xj)j=0Π

jnei

(xi-xj)

n

i=0

(x-x1)(x-x2)hellip(x-xn)

(x0-x1)(x0-x2)hellip(x0-xn)= y0

(x-x0)(x-x2)hellip(x-xn)

(x1-x0)(x1-x2)hellip(x1-xn)+y1

(x-x0)(x-x1)hellip(x-xn-1)

(xn-x1)(xn-x2)hellip(xn-xn-1)yn+hellip+

Lagrangian法

httpmailtkuedutwinhon

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 54: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

54

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 107

EX 已知

Q1由(03)(16)(210)(315)求內插多項式

Q2由 (03)(16)(210)(315)(425)求內插多項式

求方程式f(17594)的函數值

x 0 1 2 3 4

F(x) 3 6 10 15 25

Lagrangian法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 108

+103(x-1)(x-2)(x-3)

(0-1)(0-2)(0-3)

(x-0)(x-2)(x-3)

(1-0)(1-2)(1-3)+6

(x-0)(x-1)(x-3)

(2-0)(2-1)(2-3)

+15(x-0)(x-1)(x-2)

(3-0)(3-1)(3-2)

Lagrangian法

Q1由4個已知點可求得P3(X) =

其中 x 代入欲計算的值17594代入得P3(X) = 3(-0037787) + 6(02625802) + 10(08287756) + 15(-00535771) = 89462442並以此內插多項式函數值P3(17594)近似方程式值f(17594)

httpmailtkuedutwinhon

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 55: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

55

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 109

Lagrangian法

Q2由5個已知點可求得P4(X) =

其中 x 代入欲計算的值17594代入得P4(X) = 3(-00211617) + 6(01961124) + 10(09284773) + 15(-01200449) + 25(00166170)= 90127120並以此內插多項式函數值P4(17594)近似方程式值f(17594)

3(x-1)(x-2)(x-3)(x-4)

(0-1)(0-2)(0-3)(0-4)+6

+10(x-0)(x-1)(x-3)(x-4)

(2-0)(2-1)(2-3)(2-4)+15

(x-0)(x-1)(x-2)(x-4)

(3-0)(3-1)(3-2)(3-4)

(x-0)(x-2)(x-3)(x-4)

(1-0)(1-2)(1-3)(1-4)

+25(x-0)(x-1)(x-2)(x-4)

(4-0)(4-1)(4-2)(4-3)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 110

Lagrangian法找內插多項式的缺點

當選用K個已知點求Pk-1(X)後若有再增加新的1點成為(k+1)個已知點欲求Pk(X)時必須重新計算整個Lagrangian運算式而無法引用已計算的Pk-1(X)之結果如前例Q2的P4(X)必須重新無法引用Q1所求P3(X)的結果為了改進此一缺點進而提出下一個方法

Lagrangian法之缺點

httpmailtkuedutwinhon

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 56: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

56

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 111

方法三 牛頓形式內插多項式

對已知點(X0Y0)(X1Y1)(X2Y2)helliphellip(XnYn)時所對應之內插多項式為

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphellip+An(X-X0)(X-X1)hellip(X-Xn-1)

= a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 112

牛頓形式內插多項式的優點

這種形式的內插多項式之優點為當已知點多取一點(Xn+1 Yn+1)時所求之內插多項式為Pn+1(X)而Pn+1(X)應為

Pn+1(X)=

=

= Pn(X)

明顯地改進了Lagrangian法之缺點但問題是如何求出牛頓形式的內插多項式中各個係數Aii= 012hellipn or(n+1)呢

a0+Σ ai Π(x-xj)n

i=1

i-1

j=0

a0+Σ ai Π(x-xj)n+1

i=1

i-1

j=0n

an+1Π(x-xj)j=0

+n

an+1Π(x-xj)j=0

+

httpmailtkuedutwinhon

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 57: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

57

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 113

牛頓形式內插多項式之係數推演

問題是要如何知道A0A1A2helliphellipAn

Ans 因為Pn(X)為f(X)在已知(X0hellipXn)等n+1個點的內插多項式 故需滿足內插多項式之條件對 i=01helliphellipn使得Pn(Xi)=f(Xi)=Yi 故

(1)令X=X0代入牛頓形式的內插多項式Pn(X)

使得Pn(X0)=f(X0)=Y0 equiv A0=f(X0)

(2)令X=X1代入

使得Pn(X1)=f(X1)=Y1

equivA0+A1(X1-X0)=f(X1)

equivA1= =f(x1)-a0

x1-x0

f(x1)-f(x0)x1-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 114

牛頓形式內插多項式之係數推演

(3)令X=X2代入

使得Pn(X2)=f(X2) equivA0+A1(X2-X0)+A2(X2-X0)(X2-X1)=f(X2)

移項得A2= equivA2=

分子加一項減一項A1X1

使得equivA2=

移項得equivA2=

f(x2)-a1(x2-x0)-a0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1x2+a1x1-a1x1+a1x0

(x2-x0)(x2-x1)

f(x2)-a0-a1(x2-x1)-a1(x1-x0)

(x2-x0)(x2-x1)

httpmailtkuedutwinhon

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 58: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

58

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 115

牛頓形式內插多項式之係數推演

分項消去 (X2-X1)

equiv A2=

A0A1代入得A2=

equivA2=

改寫左式分母equivA2=

分母相同 合併

f(x2)-a0-a1(x1-x0)(x2-x0)(x2-x1)

-(x2-x0)(x2-x1)

a1(x2-x1)

f(x2)-f(x0)-(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0(x1-x0)

f(x1)-f(x0)x1-x0

x2-x0

f(x2)- f(x1)(x2-x0)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

(x2-x0)

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 116

牛頓形式內插多項式之係數推演

得equivA2=

故A3 A4 helliphellip An均可以此類推

f(x2)-f(x1)(x2-x1)

f(x1)-f(x0)x1-x0

x2-x0

httpmailtkuedutwinhon

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 59: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

59

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 117

如何表示推導出來的係數 Ai

定義除差(DD)符號 已知點Xj Xj+1 Xj+2hellipXj+k

令 f[Xj] = f(Xj)記為Xj的0次除差

f[Xj Xj+1]= 記為Xj的1次除差

f[Xj Xj+1 Xj+2 ]= 記為Xj的2次除差

f[Xj Xj+1 Xj+k]=

記為Xj之k次除差

f[xj+1]-f[xj]

xj+1-xj=

f(xj-1)-f(xj)

xj+1-xj

xj+2-xj

f[xj+1 xj+2]-f[xj xj+1]

xj+k-xj

f[xj+1之k-1次除差 ndash xj 之k-一次除差]

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 118

如何表示推導出來的係數 Ai

則Pn(X)之各係數Ai即為X0之各級除差 如A0 = f(X0) = f[X0]是X0之0次除差

A1= 是X0之1次除差

A2=

是X0之2次除差

f(x1)-f(xo)x1-x0

=f[x1] - f[xo]

x1-x0

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0

x2-x0=

[x1的1次除差 - x0的一次除差]

httpmailtkuedutwinhon

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 60: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

60

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 119

如何表示推導出來的係數 Ai

以此類推可得 A3=X0之3次除差記為

繼續以此類推可得 Ai=X0之 i 次除差 =

x3-x0

[x1的2次除差 - x0的2次除差]

=

f(x3) - f(x2)x3-x2

-f(x2)- f(x1)

x2-x1

x3-x1

f(x2) - f(x1)x2-x1

-f(x1) - f(xo)

x1-x0

x2-x0-

x3-x0

=

A3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 120

如何表示推導出來的係數 Ai

如何求出牛頓形式的Ai i=012hellipn

方法A代入除差公式計算

對每個Ai=

再求X1之i-1次DD及X0之i-1次DD

=

同理X0之i-1次DD=

以此類推計算每一層級

xi-x0

x1之i-1次DD-x0的i-1次DD

xi-x1

x2之i-2次DD-x1的i-2次DD

xi-1-x0

x1之i-2次DD-x0的i-2次DD

httpmailtkuedutwinhon

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 61: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

61

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 121

如何表示推導出來的係數 Ai

方法B 利用除差表 (DD表)計算

Xi 0次DD 1次DD 2次DD n次DD

X0 f(X0)

X1 f(X1)

X2 f(X2)

X3 f(X3)

Xn-1 f(Xn-1)

Xn f(Xn)

f(X1) ndash f(X0)X1 ndash X0f(X2) ndash f(X1)

X2 ndash X1

f(X3) ndash f(X2)X3 ndash X2

f(X4) ndash f(X3)X4 ndash X3

f(Xn) ndash f(Xn-1)Xn ndash Xn-1

x2-x0 xn-x0

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 122

牛頓形式內插多項式

綜上所述推算牛頓形式內插多項式的步驟為

由已知點建立除差表

取指定的起始點為X0 即已知點個數中由X0起取(n+1)個點

建立牛頓內插多項式

取DD表中X0對應之橫列中各項值代入各係數

A0~An即得

此內插多項式稱為牛頓除差內插多項式

將欲計算之f(X)的X值代入以建立之牛頓除差內插多項式計算之

httpmailtkuedutwinhon

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 62: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

62

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 123

牛頓形式內插多項式

範例已知一化學實驗對一物質的溫度變化與體積膨脹大小

之記錄如下表

請依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P3(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0)

溫度 X -2 -1 0 1

體積膨脹 Y 4 2 -1 1

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 124

除差表範例

故得P3(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0)

f(-08) = P3(-08) = 4 -2(-08 + 2) - 05(-08 + 2)(-08 + 1) + (-08 + 2)(-08 + 1)(-08) = 4 - 24 - 012 + (-0192) = 1288

f(08) = P3(08) = 4 -2(08 + 2) - 05(08 + 2)(08 + 1) + (08 + 2)(08 + 1)(08) = 4 ndash 56 ndash 252 + 4032 = -0088

Xij次DD 0次DD 1次DD 2次DD 3次DD

-2 4 -2 -05 1

-1 2 -3 25

0 -1 2

1 1

httpmailtkuedutwinhon

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 63: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

63

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 125

牛頓形式內插多項式

範例同前例之化學實驗對一物質的溫度變化與體積膨脹大

小之記錄但已知點多一點如下表

請改依上述結果以牛頓形式內插多項式法計算f(-08)及f(08)

Ans依牛頓形式內插多項式

P4(X) = a0 + a1(X- (-2)) + a2(X- (-2))(X-(-1)) + a3(X-(-2))(X-(-1))(X-0) + a4(X-(-2))(X-(-1))(X-0)(X-1) = P3(X) + a4(X-(-2))(X-(-1))(X-0)(X-1)

溫度 X -2 -1 0 1 2

體積膨脹 Y 4 2 -1 1 8

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 126

除差表範例

故得P4(X) = 4 + (-2)(X+2) + (-05)(X+2)(X+1) + 1(X+2)(X+1)(X-0) + (-025)(X+2)(X+1)(X-0)(X-1) = P3(X) + (-025)(X+2)(X+1)(X-0)(X-1)

f(-08) = P4(-08) = P3(-08) + (-025)(-08+2)(-08+1)(-08-0)(-08-1) = 1288 + (-00864) = 12016

f(08) = P4(08) = P3(08) + (-025)(08+2)(08+1)(08-0)(08-1) = -0088 + 02016 = 01136

Xij次DD 0次DD 1次DD 2次DD 3次DD 4次DD

-2 4 -2 -05 1 -025

-1 2 -3 25 0

0 -1 2 25

1 1 7

2 8

httpmailtkuedutwinhon

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 64: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

64

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 127

牛頓前差內插多項式

當已知點X0 X1helliphellipXn為等差數列時 亦即存在一個d值 使得X1=X0+d X2= X1+d =X0+2d

Xi=X0+id 且Xn=X0+nd i=012hellipn

則相對的 X1的函數值f(X1)可以表示成f(X0+d) 若f(X1)-f(X0)可以看成f(X0+d)-f(X0) 吾人可將之記為 f(X0)或 f0 稱為X0的一次前差(FD)

又吾人可延伸前差之定義如下

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 128

前差

令 0f(X0)=f(X0)稱為X0之0次前差

而前述已知 f(X0) = f(X0+d)-f(X0) = f(X1)-f(X0)

稱為X0之1次前差

則 2f(X0)= ( f(X0))

= (f(X1)-f(X0))

= f(X1)- f(X0)

=[f(X2)-f(X1)]-[f(X1)-f(X0)]

=f(X2)-2f(X1)+f(X0)

稱為X0之二次前差

httpmailtkuedutwinhon

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 65: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

65

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 129

前差

同理 3f(X0)=f(X3)-3f(X2)+3f(X1)-f(X0)

其中X1=X0+d X2=X0+2d X3=X0+3d

故得 kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

前差符號

f(X0)=f(X1)-f(X0)=f(X0+d)-f(X0)

0f(X0)=f(X0)

kf(X0)= (k-1f(X0))

= (-1)i ( ) f(X0+(k-i)d)

i=0

kΣ k

i

i=0

kΣ k

i

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 130

除差與前差的關係

f[X0]=f(X0)= 0f(X0) X0之0次除差 = 0次前差

f[X0X1]= =

故得X0的1次除差=1次前差

又f[X0 X1 X2] =

f(x1)-f(xo)x1-x0

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

f(x0)x0+d - x0

d

httpmailtkuedutwinhon

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 66: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

66

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 131

除差與前差的關係

f[X0 X1 X2]=

故得2次除差=2次前差

-f(x2)-f(x1)

x2-x1

f(x1)-f(xo)x1-x0

x2-x0

-f(x0)x0+d - x0

f(x1)x0+2d - (x0+d)

x0+2d - x0=

f(x1)-f(x0)d2d

= 2f(x0)

2d2

2d2

=

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 132

除差與前差的關係

f[X0 X1 X2 X3]=

故得3次除差=3次前差 = 3次前差

-f[x2 x3]-f [x1 x2]

x3-x1

f[x1 x2]-f [x0 x1]x2-x0

x3-x0

-2f(x0)x0+2d - x0

2f(x1)x0+3d - (x0+d)

x0+3d - x0=

2f(x1)-2f(x0)2d3d

= 3f(x0)

6d3

6d3

=

3d3

3f(x0)d6d2 =

httpmailtkuedutwinhon

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 67: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

67

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 133

除差與前差的關係

依此類推 可得f[X0 X1hellip Xk]=

亦即 X0之k次除差 = X0之k次前差(kdk)

由此 可以進一步將牛頓除差內插多項式以前差符號表示可得 對已知點X0 X1hellipXn 呈等差數列間距值為d 且令欲求之X=X0+rd r不一定是整數則牛頓除差內插多項式於(X0~Xn)

kf(x0)

kdk

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 134

由除差內插多項式到前差內插多項式

Pn(X)=A0+A1(X-X0)+A2(X-X0)(X-X1)+A3(X-X0)(X-X1)(X-X2)+helliphelliphellip+An(X-X0)(X-X1)helliphellip(X-Xn-1)

=f[X0]+f[X0X1](X-X0)+f[X0X1X2](X-X0)(X-X1)+f[X0X1X2X3](X-X0)(X-X1)(X-X2)+helliphelliphellip+f[X0X1hellipXn](X-X0)(X-X1)hellip(X-Xn-1)

以前差與除差關係代入得= 0f(X0)+ (X-X0)+ (X-X0)(X-X1)+

(X-X0)(X-X1)(X-X2)+hellip+

(X-X0)(X-X1)helliphellip(X-Xn-1)nf(x0)

ndn

2f(x0)

2d2

f(x0)d

3f(x0)

3d3

httpmailtkuedutwinhon

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 68: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

68

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 135

由除差內插多項式到前差內插多項式

以X=X0+rdXi 以X0 + id i = 1 2 hellip (n-1)代入得

Pn(X)= 0f(X0)+ (X0+rd-X0)+

(X0+rd-X0)(X0+rd-(X0+d))+

(X0+rd-X0) (X0+rd-(X0+d))(X0+rd-(X0+2d))+helliphellip+

(X0+rd-X0)(X0+rd-(X0+d))helliphelliphellip(X0+rd-(X0+(n-1)d))

Δf(x0)

dΔ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 136

由除差內插多項式到前差內插多項式

= Δ0f(X0)+ rd+ r(r-1)d2+

r(r-1)(r-2)d3+helliphellip+

r(r-1)(r-2)helliphellip(r-n+1)dn

得Pn(X)=

稱Pn(X)為牛頓前差內插多項式

即牛頓內插多項式 以前差符號表示

Δf(x0)d

Δ2f(x0)

2d2

Δ3f(x0)

3d3

Δnf(x0)

ndn

rΔif(x0)

i(r-i)i=0

httpmailtkuedutwinhon

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 69: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

69

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 137

前差表

如何求各項Δif(x0)可使用前差表計算出來

前差表類似除差表但是沒有除法計算

Xi 0次FD 1次FD 2次FD n次FD

X0 f(X0) Δf(x0) Δ2f(x0) Δnf(x0)

X1 f(X1) Δf(x1) Δ2f(x1)

X2 f(X2) Δf(x2) Δ2f(x2)

X3 f(X3) Δf(x3) Δ2f(x3)

Xn-1 f(Xn-1) Δf(xn-1)

Xn f(Xn)

相減

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 138

前差內插多項式

已知點(02 -16094) (04 -09163) (06 -05108)(08 -02231) (10 00) (12 01823)

以前差形式取04 06 08 10求f(073) Sol 先求前差表

X 0次FD 1次FD 2次FD 3次FD 4次FD 5次FD02 -16094 06931 -02876 01698 -01166 0087204 -09163 04055 -01178 00532 -0029406 -05108 02877 -00646 0023808 -02231 02231 -0040810 -00 0182312 -01823

httpmailtkuedutwinhon

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 70: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

70

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 139

前差內插多項式

已知點(X0 f(X0)) (X1 f(X1)) hellip (Xn f(Xn))且X0 X1 hellip Xn為等差數列間距值為 d = 02 則

Pn(X)=

其中X=X0 + rd 代入

P3(X)≒f(X)以前差形式寫出P3(X)=f(X)P3(X)= ( ) Δ0f(X0)+( ) Δ1f(X0)+( ) Δ2f(X0)+

( ) Δ3f(X0)= ( )(-09163)+( )(04055)+( )(-01178)+

( )(-00532)

i=0

nΣC r

i Δif(x0)

r0

r0

r1

r1

r2

r2

r3

r3

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 140

ri i(r-i) i

r = r(r-1)(r-2)hellip(r-i+1)

1 21

321

bull r = = (X-X0)d = (073-04)02 = 03302 = 165

bull ( )=

bull 則P3(X) =1(-09163)+165(04055)+(165)(065)

(-01178)+(165)(065)(165-2)(00532)

=-03137

前差內插多項式

httpmailtkuedutwinhon

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 71: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

71

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 141

4

r4

bull 若加延伸一點12 以P4(073)近似f(073) 則

P4(X)=P3(X)+( )(-00294) = -03137 +

(165)(165-1)(165-2)(165-3)(-00294)= -03143

前差內插多項式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 142

後差內插多項式

方法同前差內插多項式

但基準點由X0改為Xn

又X = Xn ndash rd

且各項Δif(Xn)就改取前差表之下斜邊即得各項後差值

httpmailtkuedutwinhon

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 72: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

72

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 143

討論

一般而言使用內插法時增加估算的點數可以提高估計值的精確度

但點數取的太多且與所求的點距離太遠的話反而會使估計值的誤差加大

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 144

內插多項式的誤差

en(X) = f(X) - Pn(X)=

參閱 p256 ---(式子43)[或pp229-230式40]

其中(ξ)(X0 X1 hellip Xn)之間的值

由上例來看

P3(X) = P3(073) = -03137 求 e3(X)=

f(n+1)(ξ) n

j=0Π (x-xj)

(n+1)

httpmailtkuedutwinhon

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 73: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

73

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 145

內插多項式的誤差

代入公式

en(x)=| |Π(x ndash xj)

Question

內插法標榜主要應用於f(x)未知或已知但是很複雜所以無法計算f(x)故改用內插多項式近似之

此時又如何計算f (x)

反之如果當初有辦法計算f(x)的話又何必以Pn(x)來近似

f (ξ)(n+1)

(n+1)

n

j=0

(n+1)

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 146

合理的的推算Pn的誤差

Pn(x)為f(x)在X0 X1 helliphellip Xn之內插多項式若欲求f(x) 的函數值而以Pn(x)來估算之則誤差應為

en(x) =︱f(x) ndash Pn(x)︱

假設若X也為一已知點亦即已知點有X0 X1 X2 helliphellipXn X 不失一般性此n+2個點仍可重新依序排列

則f(x)在此n+2個點之內插多項式

則為Pn+1(x)且由內插多項式可知Pn+1(x) = f(x)必成立內插多項式的條件之一

故en(x) =︱f(x) ndash Pn(x)︱=︱Pn+1(x) - Pn(x)︱

雖然實際的已知點並不包含X 及其函數值f(x)但上述的推算可以給我們一個方向欲求內插多項式的誤差可用延伸一個點來代表f(x)

故以Pn+1(x)來近似f(x)亦即以en(x) =︱Pn+1(x) - Pn(x)︱來估算Pn(x)知誤差

httpmailtkuedutwinhon

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 74: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

74

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 147

數值積分

積分形式

I = ab f(x)dx

[a b]為一有限範圍f(x)為一已知函數I為f(x)在[a b]區間內對x軸所成的面積如圖所示

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 148

數值積分

傳統的理論積分計算十分複雜因此數值積分引用前述的內插多項式Pn(x)取代f(x)來計算積分就容易的多

數值積分的一般形式如下

I i=1n wi f(xi)

wi其中 微積分重量

xi為[a b]間的積分點

數值積分的一般方法是將區間[a b]分成許多的小區間求出各小區間內f(x)曲線下的面積再相加即得較精確的估計值

httpmailtkuedutwinhon

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 75: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

75

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 149

數值積分

數值積分方法可以分成兩大類

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 150

數值積分

第一類方法有Newton-Cotes積分公式

TR法

SR法

38R法

Romberg積分公式

本方法的特性[a b]區間的各點由計算者自行決定

可用於f(x)未知的情形

計算速度會較慢

精確度較低

httpmailtkuedutwinhon

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 76: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

76

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 151

數值積分

第二類方法有

Gaussian Quadrature (GQ)積分公式

Legendre GQ (LGQ)積分公式

本方法的特性

[a b]區間的各點由計算公式行決定

f(x)一定要已知

計算速度會較快

精確度較高

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 152

數值積分

最簡單的數值積分梯形法

最簡略型矩形面積法

簡略型單一梯形面積法

梯形法數個梯形面積之和

圖示如下

httpmailtkuedutwinhon

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 77: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

77

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 153

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 154

數值積分

httpmailtkuedutwinhon

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 78: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

78

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 155

數值積分

梯形法將積分範圍分成許多個小梯形再分別計算每個梯形面積在總

和所有梯形面積為積分值

故欲求

I = ab f(x)dx先將[a b]分成 n 個等距區間

間距值 h = (b-a)n如下圖(a)圖所示

對任意一小區間[xi xi+1]而言其積分值為

Ii = XiXi+1 f(x)dxi = 0 1 2 hellipn-1

當 h 值很小時則 Ii 可以用STUV四個點構成之梯形面積近似之如下圖(b)圖所示

其中該梯形面積 = 其中yi = f(xi) yi+1=f(x i+1) h(yi + yi+1)

2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 156

數值積分

httpmailtkuedutwinhon

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 79: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

79

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 157

數值積分

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 158

數值積分

ITR稱為梯形法(Trapezoidal Rule 簡稱TR)所得之積分值

梯形法是數值積分方法中最簡單的方法但誤差也會比較大

但因為簡單且最容易用來說明數值積分的基本觀念故仍常被使用

httpmailtkuedutwinhon

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 80: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

80

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 159

數值積分

範例由已知的下列資料使用TR法計算 I = 03

15 f(x)dx

Ans

由已知資料可知 h = 02I = ITR

= [f(03)+2f(05)+2f(07)+2f(09)+2f(11)+2f(13)+f(15)]

= [13499+2(16487+20138+24596+30042+36693)+44817] = 31423

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

h2022

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 160

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=1時以第一個區間而言 [x0 x1] 兩個已知點求一

次內插多項式得

P1(x) = f(x0) + Δ f(x0)(r1) = f(x0) + Δ f(x0)r

則 I0 = X0X1 f(x)dx X0

X1 P1(x)dx = X0

X1 (f(x0) + Δ f(x0)r)dx = X0X1 (f0 + Δ f0r)dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0x = x1時r = 1

httpmailtkuedutwinhon

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 81: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

81

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 161

Newton-Cotes積分公式

代入 I0 得

I0 01 (f0 + Δ f0r)hdr= hf0[r]1

0 + h Δ f0 [r22]10

= h(f0 +12 Δ f0 ) =h (f0 +12(f1 ndash f0)) = h2 (f0 + f1)= h2 (y0 + y1)同理可得 Ij h2 (yj + yj+1)I = n-1

j=0 Ij h2 (y0+2y1+2y2+hellip+2yn-1+yn)=ITR

可得Newton-Cotes的一次積分公式即為梯形法

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 162

Newton-Cotes積分公式

梯形法的誤差

ETR = (-h212) (b - a) frdquo() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

以課本的例一而言若不告知f(x)為ex者其實無法求誤差

httpmailtkuedutwinhon

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 82: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

82

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 163

Newton-Cotes積分公式

利用Newton FD 內插多項式取代f(x)求積分

分析令[a b] x0 = axn = bxi = xi-1+h或 xi = x0+ih當n=2時需以三個已知點求二次內插多項式以第一二個區間

而言 [x0 x1 x2] 得

P2(x) = f(x0) + Δ f(x0)(r1) + Δ2 f(x0)(r

2) = f(x0) + Δ f(x0)r + Δ2 f(x0)[r(r-1)2]

則 I0 = X0X2 f(x)dx X0

X2 P2(x)dx = X0

X2 (f(x0) + Δ f(x0)r + Δ2 f(x0)(r2) )dx

= X0X1 (f0 + Δ f0r + Δ2 f(x0)[r(r-1)2] )dx

由Newton FD公式中已知x = x0 + rh且dx = hdr

x = x0時r = 0 x = x1時r = 1 x = x2時r = 2

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 164

Newton-Cotes積分公式

代入 I0 得

I0 02 (f0 + Δ f0r + Δ2 f0[r(r-1)2])hdr

= h f0[r]20 + h Δ f0 [r22]2

0+ h Δ2 f0 [(r36) - (r24) ]20

= h(2f0 +2Δ f0 +13Δ2f0 )

=h3 (f0 + 4f1 + f2)

= h3 (y0 + 4y1 + y2)

同理可得 Ij h3 (yj + 4yj+1 + yj+2)

I = n-2j=0 j為偶數 Ij n-2

j=0 j為偶數 h3 (yj + 4yj+1 + yj+2)

= h3 (y0+4y1+2y2+4y3+hellip+2yn-2 +4yn-1 +yn)

=ISR

可得Newton-Cotes的二次積分公式即為Simpson法

httpmailtkuedutwinhon

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 83: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

83

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 165

Newton-Cotes積分公式

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 166

Newton-Cotes積分公式

Example以例一的資料利用SR法計算 I = 03

15 f(x)dx

Ans

I ISR

= (023)[f(03)+4f(05)+2f(07)+4f(09)+2f(11)+4f(13)+f(15)]

= (023) [13499 + 4(16487) + 2(20138) + 4(24596) + 2(30042) + 4(36693) + 44817] = 313187

X 03 05 07 09 11 13 15

f(X) 13499 16487 20138 24596 30042 36693 44817

httpmailtkuedutwinhon

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon

Page 84: 數值方法 2011 [相容模式]mail.tku.edu.tw/inhon/Numerical_2011.pdf · 2 TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP 淡江軟體工程實驗室 2011/9/22 3 金句名言分享

84

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 167

Newton-Cotes積分公式

SR法的誤差

ESR = (-h4120) (b - a) f(4)() 其中a b一般取最大值

問題仍會發生在f(x)可能未知

由SR之誤差公式可看出若f(x)為三次式(含)以下之函式SR法根本無誤差

SR法是Newton-Cotes公式中最精確的一個方法

然而SR法每次取兩個小區間因此積分問題必須能被切割成偶數個小區間才可使用SR法

如果是奇數區間怎麼辦才能使誤差變小

httpmailtkuedutwinhon

TAMKANG UNIVERSITY SOFTWARE ENGINEERING GROUP淡江軟體工程實驗室 httpwwwtksetkuedutw

2011922 168

Newton-Cotes積分公式

如何計算出誤差較小的Newton-Cotes數值積分

如果已是偶數區間直接使用SR法

如果是奇數區間則第一個區間(第一及第二個已知點點)使用TR法其餘區間(偶數個從第二個已知點到最後一個已知點)使用SR法

httpmailtkuedutwinhon