基于Python實(shí)現(xiàn)拉格朗日插值法
一、拉格朗日的基本思想
拉格朗日插值法是以法國(guó)十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項(xiàng)式插值方法。
許多實(shí)際問(wèn)題中都用函數(shù)來(lái)表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過(guò)實(shí)驗(yàn)和觀測(cè)來(lái)了解。在若干個(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)文章
基于python的圖片修復(fù)程序(實(shí)現(xiàn)水印去除)
這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實(shí)現(xiàn)圖片中水印去除,主要利用的是OpenCV這個(gè)框架實(shí)現(xiàn)的,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧2018-06-06Python實(shí)現(xiàn)兩種多分類(lèi)混淆矩陣
這篇文章主要為大家介紹了Python實(shí)現(xiàn)兩種多分類(lèi)混淆矩陣,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06pygame學(xué)習(xí)筆記(1):矩形、圓型畫(huà)圖實(shí)例
這篇文章主要介紹了pygame學(xué)習(xí)筆記(1):矩形、圓型畫(huà)圖實(shí)例,本文講解了pygame窗口、窗口退出、pygame中的顏色、圓形、矩形及一個(gè)完整實(shí)例,需要的朋友可以參考下2015-04-04使用pyscript在網(wǎng)頁(yè)中撰寫(xiě)Python程式的方法
本文主要介紹了使用pyscript在網(wǎng)頁(yè)中撰寫(xiě)Python程式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05基于python實(shí)現(xiàn)判斷字符串是否數(shù)字算法
這篇文章主要介紹了基于python實(shí)現(xiàn)判斷字符串是否數(shù)字算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07