例題3-2 一下表求f'(x)一階微分值
x f(x) f'(x)
====================
-0.3 -0.20431 ????
-0.1 -0.08993 ????
0.1 0.11007 ????
0.3 0.39569 ????
x=[-0.3 , -0.1 , 0.1 , 0.3]
f=[-0.20431 , -0.08993 , 0.11007 , 0.39569]
'''
(A) 向前差近似 (三點)
fi' = [ -f(i+2) + 4f(i+1) -3 f(i) ] / 2h ,
O(h) = 1/3 * h*h * < fi 三次微分 >
(B) 向後差近似(三點)
fi' = [ 3f(i) - 4f(i-1) + f(i-2) ] / 2h ,
O(h) = 1/3 * h*h * < fi 三次微分 >
(C) 中央近似 (雙點)
fi' = [f(i+1) - f(i-1)] / 2h ,
O(h) = -1/6 * h *h * < fi 三次微分 >
中央近似沒有三點
'''
def FordDiff(i):
# // 前差微分 fi' = [ -f(i+2) + 4f(i+1) -3 f(i) ] / 2h ,
h=abs(x[i+1]-x[i])+0.0
s= -f[i+2] + 4*f[i+1] -3*f[i]
return ( s / (2* h))
def BackDiff(i):
# // 後差微分 fi' = [ 3f(i) - 4f(i-1) + f(i-2) ] / 2h ,
h=abs(x[i]-x[i-1])+0.0
s= 3*f[i] - 4*f[i-1] + f[i-2]
return ( s / (2* h))
def MidDiff(i):
# // 中差微分
h=abs(x[i+1]-x[i])+0.0
return (0.5 * ( fx(x+h) - fx(x-h) ) / h)
x=[-0.3 , -0.1 , 0.1 , 0.3]
f=[-0.20431 , -0.08993 , 0.11007 , 0.39569]
#===========================
#前差微分 fi' = [ -f(i+2) + 4f(i+1) -3 f(i) ] / 2h ,
n=2
for i in range (0 ,n):
print('x= {%10.6f} ' %x[i] , '\t',end='')
print("FordDiff : {%10.6f} " %( FordDiff(i) ) )
print('\n')
#===========================
#後差微分 fi' = [ 3f(i) - 4f(i-1) + f(i-2) ] / 2h ,
n=3
for i in range (n,1,-1):
print('x= {%10.6f} ' %x[i] , '\t',end='')
print("BackDiff : {%10.6f} " %( BackDiff(i) ) )
輸出結果
========= RESTART: F:/2018-09勤益科大數值分析/數值分析/PYTHON/EX3-2.py ============
x= { -0.300000} FordDiff : { 0.357850}
x= { -0.100000} FordDiff : { 0.785950}
x= { 0.300000} BackDiff : { 1.642150}
x= { 0.100000} BackDiff : { 1.214050}
>>>
訂閱:
張貼留言 (Atom)
Messaging API作為替代方案
LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言