習題1-5
已知下列諸點
x f(x)
==========
0.50 0.6915
0.60 0.7257
0.65 0.7422
0.75 0.7734
0.90 0.8159
1.10 0.8643
1.30 0.9032
利用牛頓向前差除表
並求 P[0.50 ,0.60 ,0.65 , 0.75 , 0.90 , 1.10 ,1.30]之值
Python程式
import math
import array
n=7 #7 point n=6
xa=[0.55 , 0.7 , 0.8 , 1.0]
m=len(xa)
x=[0.50 ,0.60 ,0.65 , 0.75 , 0.90 , 1.10 ,1.30]
#y[][] is used for difference table with y[][0] used for input
f= [ [0.6915 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.7257 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.7422 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.7734 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.8159 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.8643 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ,
[0.9032 , 0.0, 0.0, 0.0, 0.0, 0.0 , 0.0] ]
for i in range (0,n):
print("i=",i,",x=",round(x[i],3),'\t\t',end='')
print("f[",i,"][0]=", round(f[i][0],5) )
print("\n Divided Difference Table:\n");
print(" =========================\n");
for j in range(1, n):
for i in range(0 ,n-j):
f[i][j]=(f[i+1][j-1]- f[i][j-1]) / (x[i+j]-x[i])
#print(f[i][j])
print("i\tx(i)\t\tf(i)\t\tf(i,i+1)\tf(i,i+1.i+2), ......\n");
for i in range(0,n):
print("{%d}\t{%8.5f}" %(i,x[i]),end='')
for j in range(0 , n-i):
print("\t{%8.5f} " %(f[i][j]),end='')
print("\n");
print("\nTHE RESULTS OF INTERPOLATION:\n");
for j in range (len(xa)):
dx=1.0;
pn=f[0][0];
for i in range (1 , n):
dx=dx*(xa[j]-x[i-1]);
pn=pn+f[0][i]*dx
print("Pn(%6.3f)= %8.5f\n" %(xa[j],pn))
輸出畫面
======== RESTART: H:/2018-09勤益科大數值分析/數值分析/PYTHON/pr1-5-1.py ==========
i= 0 ,x= 0.5 f[ 0 ][0]= 0.6915
i= 1 ,x= 0.6 f[ 1 ][0]= 0.7257
i= 2 ,x= 0.65 f[ 2 ][0]= 0.7422
i= 3 ,x= 0.75 f[ 3 ][0]= 0.7734
i= 4 ,x= 0.9 f[ 4 ][0]= 0.8159
i= 5 ,x= 1.1 f[ 5 ][0]= 0.8643
i= 6 ,x= 1.3 f[ 6 ][0]= 0.9032
Divided Difference Table:
=========================
i x(i) f(i) f(i,i+1) f(i,i+1.i+2), ......
{0} { 0.50000} { 0.69150} { 0.34200} {-0.08000} {-0.16000} { 0.44444} {-0.82540} { 1.14011}
{1} { 0.60000} { 0.72570} { 0.33000} {-0.12000} { 0.01778} {-0.05079} { 0.08669}
{2} { 0.65000} { 0.74220} { 0.31200} {-0.11467} {-0.00762} { 0.00989}
{3} { 0.75000} { 0.77340} { 0.28333} {-0.11810} {-0.00119}
{4} { 0.90000} { 0.81590} { 0.24200} {-0.11875}
{5} { 1.10000} { 0.86430} { 0.19450}
{6} { 1.30000} { 0.90320}
THE RESULTS OF INTERPOLATION:
Pn( 0.550)= 0.70871
Pn( 0.700)= 0.75810
Pn( 0.800)= 0.78811
Pn( 1.000)= 0.84143
>>>
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
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 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言