ncuma_牛頓法.pptx

NCU MCL
NCU MCLSoftware Developer à NCU MCL
數值求根法 :牛頓迭代法 (一)
 求根步驟:
1. 設定容許誤差 tol > 0
2. 猜測起始近似根為 a
3. 計算 f(a) 與 f’(a)
4. 計算 b = a −
5. 如果 |f(b)| < tol ,則 b 為近似根,輸出 b 後停止計算
6. 更新 a = b ,回到步驟 3
1
國立中央大學數學系
 不良的起始近似根 a 可能造成求根步驟無法收斂,此時要變更起始近似根。
起始近似根可透過函數圖形來估算。
2
數值求根法 :牛頓迭代法 (二)
 以上兩種求根法是否收斂都跟起始設定有關,二分逼近法起始求根範圍
(a,b) 如果不滿足 f(a)f(b) < 0,則演算步驟不成立。牛頓法的起
始根 a 若不靠近函數根 r ,往往造成近似根不收斂。為了確保兩個方
法都能收斂,可先用畫圖法畫出函數圖形,由中觀察根的大概位置,然
後找出二分逼近法的起始範圍 (a,b) 或是牛頓法的起始點 a 。
一般來說,二分逼近法是最緩慢的求根法,牛頓求根法的收斂速度則是
相當快,幾次迭代就可快速逼近函數根。
 本程式利用函式來設定求根函數與其一次微分函數,此範例的求根函數為
f(x) = − 2,函數根 r 為 ,一次微分則為 f(x) = 2x 。
函數根 r 用來計算根的誤差,決定近似根的品質。兩種求根法都以近似
根的函數值是否小於容忍值 tol 來決定是否跳離迴圈結束迭代。
國立中央大學數學系
3
import math
# 函數 : x**2 - 2 與一次微分: 2x
def f(x) : x**2 - 2
def df(x) : 2*x
# 根
r = math.sqrt(2)
# 牛頓迭代法
a , k , tol = 2 , 0 , 1.e-14
err = abs(a-r)
print( "> 牛頓迭代法:" )
print( "{:<2} : {:<10e} {:<10e}".format(k,a,err) , sep="" )
while True :
b = a - f(a)/df(a)
err = abs(b-r)
k += 1
# 迭代次數 近似根 誤差,以下 10e 代表以 10 格與科學記號呈現數字
print( "{:<2} : {:<10e} {:<10e}".format(k,b,err) , sep="" )
# 函數絕對值小於 tol 才跳離迭代
if abs(f(b)) < tol : break
a = b
數值求根法 :牛頓迭代法 (三)
國立中央大學數學系
4
程式輸出:
> 牛頓迭代法:
0 : 2.000000e+00 5.857864e-01
1 : 1.500000e+00 8.578644e-02
2 : 1.416667e+00 2.453104e-03
3 : 1.414216e+00 2.123901e-06
4 : 1.414214e+00 1.594724e-12
5 : 1.414214e+00 0.000000e+00
數值求根法 :牛頓迭代法 (四)
國立中央大學數學系
1 sur 4

Recommandé

Ppt 152-155 par
Ppt 152-155Ppt 152-155
Ppt 152-155hungchiayang1
803 vues4 diapositives
Ppt 141-149 par
Ppt 141-149Ppt 141-149
Ppt 141-149hungchiayang1
49 vues9 diapositives
二分逼近法_範例.pptx par
二分逼近法_範例.pptx二分逼近法_範例.pptx
二分逼近法_範例.pptxmclmath
51 vues5 diapositives
ncuma_數值求根法.pptx par
ncuma_數值求根法.pptxncuma_數值求根法.pptx
ncuma_數值求根法.pptxNCU MCL
161 vues5 diapositives
Ppt 145-149 par
Ppt 145-149Ppt 145-149
Ppt 145-149hungchiayang1
1.2K vues5 diapositives
函數畫圖_習題4.pptx par
函數畫圖_習題4.pptx函數畫圖_習題4.pptx
函數畫圖_習題4.pptxNCU MCL
367 vues1 diapositive

Contenu connexe

Plus de NCU MCL

數值積分法_1.pptx par
數值積分法_1.pptx數值積分法_1.pptx
數值積分法_1.pptxNCU MCL
68 vues1 diapositive
數值求根習題_1.pptx par
數值求根習題_1.pptx數值求根習題_1.pptx
數值求根習題_1.pptxNCU MCL
89 vues1 diapositive
函數微分習題_3.pptx par
函數微分習題_3.pptx函數微分習題_3.pptx
函數微分習題_3.pptxNCU MCL
538 vues3 diapositives
SymPy 在微積分上的應用_3.pptx par
SymPy 在微積分上的應用_3.pptxSymPy 在微積分上的應用_3.pptx
SymPy 在微積分上的應用_3.pptxNCU MCL
28 vues2 diapositives
SymPy 在微積分上的應用_2.pptx par
SymPy 在微積分上的應用_2.pptxSymPy 在微積分上的應用_2.pptx
SymPy 在微積分上的應用_2.pptxNCU MCL
27 vues2 diapositives
SymPy 在微積分上的應用_1.pptx par
SymPy 在微積分上的應用_1.pptxSymPy 在微積分上的應用_1.pptx
SymPy 在微積分上的應用_1.pptxNCU MCL
31 vues1 diapositive

Plus de NCU MCL(20)

數值積分法_1.pptx par NCU MCL
數值積分法_1.pptx數值積分法_1.pptx
數值積分法_1.pptx
NCU MCL68 vues
數值求根習題_1.pptx par NCU MCL
數值求根習題_1.pptx數值求根習題_1.pptx
數值求根習題_1.pptx
NCU MCL89 vues
函數微分習題_3.pptx par NCU MCL
函數微分習題_3.pptx函數微分習題_3.pptx
函數微分習題_3.pptx
NCU MCL538 vues
SymPy 在微積分上的應用_3.pptx par NCU MCL
SymPy 在微積分上的應用_3.pptxSymPy 在微積分上的應用_3.pptx
SymPy 在微積分上的應用_3.pptx
NCU MCL28 vues
SymPy 在微積分上的應用_2.pptx par NCU MCL
SymPy 在微積分上的應用_2.pptxSymPy 在微積分上的應用_2.pptx
SymPy 在微積分上的應用_2.pptx
NCU MCL27 vues
SymPy 在微積分上的應用_1.pptx par NCU MCL
SymPy 在微積分上的應用_1.pptxSymPy 在微積分上的應用_1.pptx
SymPy 在微積分上的應用_1.pptx
NCU MCL31 vues
極座標畫圖_3.pptx par NCU MCL
極座標畫圖_3.pptx極座標畫圖_3.pptx
極座標畫圖_3.pptx
NCU MCL12 vues
極座標畫圖_2.pptx par NCU MCL
極座標畫圖_2.pptx極座標畫圖_2.pptx
極座標畫圖_2.pptx
NCU MCL15 vues
極座標畫圖_1.pptx par NCU MCL
極座標畫圖_1.pptx極座標畫圖_1.pptx
極座標畫圖_1.pptx
NCU MCL12 vues
Taylor 多項式_3.pptx par NCU MCL
Taylor 多項式_3.pptxTaylor 多項式_3.pptx
Taylor 多項式_3.pptx
NCU MCL8 vues
Taylor 多項式_2.pptx par NCU MCL
Taylor 多項式_2.pptxTaylor 多項式_2.pptx
Taylor 多項式_2.pptx
NCU MCL11 vues
Taylor 多項式_1.pptx par NCU MCL
Taylor 多項式_1.pptxTaylor 多項式_1.pptx
Taylor 多項式_1.pptx
NCU MCL9 vues
微分方程式求解_3.pptx par NCU MCL
微分方程式求解_3.pptx微分方程式求解_3.pptx
微分方程式求解_3.pptx
NCU MCL52 vues
微分方程式求解_2.pptx par NCU MCL
微分方程式求解_2.pptx微分方程式求解_2.pptx
微分方程式求解_2.pptx
NCU MCL30 vues
微分方程式求解_1.pptx par NCU MCL
微分方程式求解_1.pptx微分方程式求解_1.pptx
微分方程式求解_1.pptx
NCU MCL27 vues
牛頓迭代法_3.pptx par NCU MCL
牛頓迭代法_3.pptx牛頓迭代法_3.pptx
牛頓迭代法_3.pptx
NCU MCL18 vues
牛頓迭代法_2.pptx par NCU MCL
牛頓迭代法_2.pptx牛頓迭代法_2.pptx
牛頓迭代法_2.pptx
NCU MCL17 vues
牛頓迭代法_1.pptx par NCU MCL
牛頓迭代法_1.pptx牛頓迭代法_1.pptx
牛頓迭代法_1.pptx
NCU MCL29 vues
數值求根習題_3.pptx par NCU MCL
數值求根習題_3.pptx數值求根習題_3.pptx
數值求根習題_3.pptx
NCU MCL146 vues
數值求根習題_2.pptx par NCU MCL
數值求根習題_2.pptx數值求根習題_2.pptx
數值求根習題_2.pptx
NCU MCL92 vues

ncuma_牛頓法.pptx

  • 1. 數值求根法 :牛頓迭代法 (一)  求根步驟: 1. 設定容許誤差 tol > 0 2. 猜測起始近似根為 a 3. 計算 f(a) 與 f’(a) 4. 計算 b = a − 5. 如果 |f(b)| < tol ,則 b 為近似根,輸出 b 後停止計算 6. 更新 a = b ,回到步驟 3 1 國立中央大學數學系  不良的起始近似根 a 可能造成求根步驟無法收斂,此時要變更起始近似根。 起始近似根可透過函數圖形來估算。
  • 2. 2 數值求根法 :牛頓迭代法 (二)  以上兩種求根法是否收斂都跟起始設定有關,二分逼近法起始求根範圍 (a,b) 如果不滿足 f(a)f(b) < 0,則演算步驟不成立。牛頓法的起 始根 a 若不靠近函數根 r ,往往造成近似根不收斂。為了確保兩個方 法都能收斂,可先用畫圖法畫出函數圖形,由中觀察根的大概位置,然 後找出二分逼近法的起始範圍 (a,b) 或是牛頓法的起始點 a 。 一般來說,二分逼近法是最緩慢的求根法,牛頓求根法的收斂速度則是 相當快,幾次迭代就可快速逼近函數根。  本程式利用函式來設定求根函數與其一次微分函數,此範例的求根函數為 f(x) = − 2,函數根 r 為 ,一次微分則為 f(x) = 2x 。 函數根 r 用來計算根的誤差,決定近似根的品質。兩種求根法都以近似 根的函數值是否小於容忍值 tol 來決定是否跳離迴圈結束迭代。 國立中央大學數學系
  • 3. 3 import math # 函數 : x**2 - 2 與一次微分: 2x def f(x) : x**2 - 2 def df(x) : 2*x # 根 r = math.sqrt(2) # 牛頓迭代法 a , k , tol = 2 , 0 , 1.e-14 err = abs(a-r) print( "> 牛頓迭代法:" ) print( "{:<2} : {:<10e} {:<10e}".format(k,a,err) , sep="" ) while True : b = a - f(a)/df(a) err = abs(b-r) k += 1 # 迭代次數 近似根 誤差,以下 10e 代表以 10 格與科學記號呈現數字 print( "{:<2} : {:<10e} {:<10e}".format(k,b,err) , sep="" ) # 函數絕對值小於 tol 才跳離迭代 if abs(f(b)) < tol : break a = b 數值求根法 :牛頓迭代法 (三) 國立中央大學數學系
  • 4. 4 程式輸出: > 牛頓迭代法: 0 : 2.000000e+00 5.857864e-01 1 : 1.500000e+00 8.578644e-02 2 : 1.416667e+00 2.453104e-03 3 : 1.414216e+00 2.123901e-06 4 : 1.414214e+00 1.594724e-12 5 : 1.414214e+00 0.000000e+00 數值求根法 :牛頓迭代法 (四) 國立中央大學數學系