輸入:插值節點與插值節點的函式值,以及所要求近似值的x值;
輸出:拉格朗日插值多項式(符號函式),x處的函式近似值.
def
lagrange
(xx,yy,a)
:import sympy as sym
from fractions import fraction
x=sym.symbol(
'x')
l=[1
]*len(xx)
i=0for x0 in xx:
for xk in xx:
if x0!=xk:
l[i]
=l[i]
*(x0-xk)
l[i]
=fraction(
1,l[i]
) i=i+
1 w=
1for x0 in xx:
w=w*
(x-x0)
i=0for x0 in xx:
l[i]
=l[i]
*w/(x-x0)
i=i+
1 i=
0 y=
0for y0 in yy:
y=y+l[i]
*y0 i=i+
1print
('拉格朗日插值函式為:'
)print
(y) s=
'在'+
repr
(a)+
'處的近似值為:'
+repr
(y.subs(x,a)
)print
(s)xx=
str=
input
("請輸入所有插值節點,用空格隔開:"
)lst1=
str.split(
' ')i=0
while i<
len(lst1)
:int
(lst1.pop())
)xx.reverse(
)yy=
str=
input
("請輸入所有插值節點對應的函式值,用空格隔開:"
)lst2=
str.split(
' ')
while i<
len(lst2)
:int
(lst2.pop())
)yy.reverse()a=
input
('請輸入所要求函式近似值的x:'
)lagrange(xx,yy,a)
拉格朗日插值
拉格朗日插值基函式 li x x x 0 x xi 1 x xi 1 x x n x i x0 xi xi 1 xi xi 1 xi xn 拉格朗日差值函式 ln x i 0 nyil i x 其中,x為缺失值對應的下表序號,ln x 為缺失值的插值結果,xi 為缺失值yi 的下表序號。對全部缺失值...
拉格朗日插值
function s larg1 x,y,xi m length x 求出插值節點向量長度 n length y if m n error 向量x與y的長度必須一致 這裡肯定一致,只是為了消除直接選取x,y資料的時候出錯而設定的 end s 0 for i 1 n z ones 1,length x...
拉格朗日插值
存在性和唯一性的證明以後再補。拉格朗日插值,emmmm,名字挺高階的 joy 它有什麼應用呢?我們在fft中講到過 設 n 1 次多項式為 y sum a i x i 有乙個顯然的結論 如果給定 n 個互不相同的點 x,y 則該 n 1 次多項式被唯一確定 那麼如果給定了這互不相同的 n 個點,利用...