基于Python實(shí)現(xiàn)拉格朗日插值法
一、拉格朗日的基本思想
拉格朗日插值法是以法國(guó)十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項(xiàng)式插值方法。
許多實(shí)際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實(shí)驗(yàn)和觀測(cè)來了解。在若干個(gè)不同的地方得到相應(yīng)的觀測(cè)值,拉格朗日插值法可以找到一個(gè)簡(jiǎn)單函數(shù),其恰好在各個(gè)現(xiàn)測(cè)的點(diǎn)取到觀測(cè)到的值,這個(gè)函數(shù)可以是代數(shù)多項(xiàng)式,三角多項(xiàng)式等。

二、線性插值



三、多個(gè)點(diǎn)

四、代碼實(shí)現(xiàn)
def lagrange(xx,y):
l=len(y)
l_n = 0
for k in range(l):
xxx=xx.copy()
x_k = xxx[k]
xxx.pop(k)
l_k = 1
for i in range(len(xxx)):
l_k *= (x - xxx[i]) / (x_k -xxx[i])
l_n += y[k] * l_k
return expand(l_n) 五、完整代碼
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sympy import expand
from sympy.abc import x
xx=[]
for i in range(7):
xx.append(data['x'][i])
y=[]
for j in range(7):
y.append(data['y'][j])
def lagrange(xx,y):
l=len(y)
l_n = 0
for k in range(l):
xxx=xx.copy()
x_k = xxx[k]
xxx.pop(k)
l_k = 1
for i in range(len(xxx)):
l_k *= (x - xxx[i]) / (x_k -xxx[i])
l_n += y[k] * l_k
return expand(l_n)
lagrange_interpolation_polynomial = lagrange(xx, y)
print("拉格朗日插值多項(xiàng)式為:",lagrange_interpolation_polynomial)
x2=np.linspace(-1,4,100)
y1=[]
for i in range(len(x2)):
y1.append(lagrange_interpolation_polynomial.subs(x,x2[i]))
print(y1)
#繪制散點(diǎn)圖,逼近函數(shù)
plt.figure(figsize=(8,4))
plt.scatter(xx,y,c='red')
plt.plot(x2,y1,'-')
plt.show()六、pop()函數(shù)

七、結(jié)果展示


到此這篇關(guān)于基于Python實(shí)現(xiàn)拉格朗日插值法的文章就介紹到這了,更多相關(guān)Python拉格朗日插值法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows 10下安裝搭建django1.10.3和Apache2.4的方法
最近發(fā)現(xiàn)很多教程都是在linux上搭建,windows上似乎天生不太適合,但是我還是愿意試試這個(gè)坑。下面這篇文章主要給大家介紹了在windows 10系統(tǒng)下安裝搭建django1.10.3和Apache2.4的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04
通過實(shí)例解析python subprocess模塊原理及用法
這篇文章主要介紹了通過實(shí)例解析python subprocess模塊原理及用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程
使用os.system()這個(gè)方法簡(jiǎn)單直接,但它不返回命令的輸出,只返回命令的退出狀態(tài),如果你只需要知道命令是否成功執(zhí)行,這個(gè)方法就足夠了,這篇文章主要介紹了在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程,需要的朋友可以參考下2024-02-02
python的三目運(yùn)算符和not in運(yùn)算符使用示例
這篇文章主要介紹了python的三目運(yùn)算符和not in運(yùn)算符使用示例,需要的朋友可以參考下2014-03-03
pymongo實(shí)現(xiàn)控制mongodb中數(shù)字字段做加法的方法
這篇文章主要介紹了pymongo實(shí)現(xiàn)控制mongodb中數(shù)字字段做加法的方法,涉及Python使用pymongo模塊操作mongodb數(shù)據(jù)庫字段的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

