基于Python實現(xiàn)拉格朗日插值法
一、拉格朗日的基本思想
拉格朗日插值法是以法國十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項式插值方法。
許多實際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實驗和觀測來了解。在若干個不同的地方得到相應(yīng)的觀測值,拉格朗日插值法可以找到一個簡單函數(shù),其恰好在各個現(xiàn)測的點取到觀測到的值,這個函數(shù)可以是代數(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("拉格朗日插值多項式為:",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) #繪制散點圖,逼近函數(shù) plt.figure(figsize=(8,4)) plt.scatter(xx,y,c='red') plt.plot(x2,y1,'-') plt.show()
六、pop()函數(shù)
七、結(jié)果展示
到此這篇關(guān)于基于Python實現(xiàn)拉格朗日插值法的文章就介紹到這了,更多相關(guān)Python拉格朗日插值法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python的圖片修復(fù)程序(實現(xiàn)水印去除)
這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實現(xiàn)圖片中水印去除,主要利用的是OpenCV這個框架實現(xiàn)的,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-06-06pygame學(xué)習(xí)筆記(1):矩形、圓型畫圖實例
這篇文章主要介紹了pygame學(xué)習(xí)筆記(1):矩形、圓型畫圖實例,本文講解了pygame窗口、窗口退出、pygame中的顏色、圓形、矩形及一個完整實例,需要的朋友可以參考下2015-04-04使用pyscript在網(wǎng)頁中撰寫Python程式的方法
本文主要介紹了使用pyscript在網(wǎng)頁中撰寫Python程式的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05基于python實現(xiàn)判斷字符串是否數(shù)字算法
這篇文章主要介紹了基于python實現(xiàn)判斷字符串是否數(shù)字算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07