習題1-2 已知
x=[10.0 , 11.0 ,12.0 ,13.0]
f=[0.1736 , 0.1908 , 0.2079 , 0.2250]
f(x)=sin(x) x以度為單位
請用Lagrange內差法求
xa=[10.5 , 11.5 .12.5 ] 之值
Python程式
'''
n=3
xa=[10.5 , 11.5 .12.5 ]
x=[10.0 , 11.0 ,12.0 ,13.0]
f=[0.1736 , 0.1908 , 0.2079 , 0.2250]
/* pr1-1-a.py : Lagrange Interpolation Algorithm
* Read in data file of ex1-4.dat which has n point values
* and the value of interpolating point xa. Based on Lagrange
* Interpolation algorithm to compute p(xa) and output its value.
* (x[i],f[i]):given points and n+1 are number of points
* Ln,k(x)=l=summation of (x-x[i])/(x[k]-x[i]).
* p(x)=ff=L(x)*f(x[k])
*/
'''
import math
def fx(x):
return (math.sin(x))
print('\nLagrange Interpolation Algorithm\n')
xa=[10.5 , 11.5 , 12.5 ]
x=[10.0 , 11.0 , 12.0 ,13.0]
f=[0.1736 , 0.1908 , 0.2079 , 0.2250]
n=3 # 4 point n=3
print('x=',x)
print('f=',f)
print('xa=',xa)
print('\n')
for m in range (len(xa)):
indata=xa[m]
result=0.0
print("xa=",repr(indata))
for k in range (0,n+1): #n -->n+1
temp=1.0;
for i in range (0,n+1): #n -->n+1
if(i !=k):
temp=temp * ( indata - x[i]) / ( x[k] - x[i])
result = result + temp *f[k]
print('The value of p' ,round(indata,6) , '= ' , round(result,6) , ' ...')
resultfx=fx(indata * ( math.pi/ 180 )) #角度轉徑度
print( 'The value of f(' , round(indata,6) , ')= ' , round(resultfx,6) , ' ...')
print('The value of | f(' , round(indata,6) , ') - p' , round(indata,6) , ' = ' , round( (abs(resultfx - result)),6 ) , ' ...')
print("\n\n")
輸出畫面
======== RESTART: H:\2018-09勤益科大數值分析\數值分析\PYTHON\pr1-2.py ===========
Lagrange Interpolation Algorithm
x= [10.0, 11.0, 12.0, 13.0]
f= [0.1736, 0.1908, 0.2079, 0.225]
xa= [10.5, 11.5, 12.5]
xa= 10.5
The value of p 10.5 = 0.182219 ...
The value of f( 10.5 )= 0.182236 ...
The value of | f( 10.5 ) - p 10.5 = 1.7e-05 ...
xa= 11.5
The value of p 11.5 = 0.199356 ...
The value of f( 11.5 )= 0.199368 ...
The value of | f( 11.5 ) - p 11.5 = 1.2e-05 ...
xa= 12.5
The value of p 12.5 = 0.216444 ...
The value of f( 12.5 )= 0.21644 ...
The value of | f( 12.5 ) - p 12.5 = 4e-06 ...
>>>
訂閱:
張貼留言 (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 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言