python 拉格朗日插值實現及求解

2021-10-24 22:19:48 字數 1288 閱讀 2728

輸入:插值節點與插值節點的函式值,以及所要求近似值的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 個點,利用...