Python實現線性插值和三次樣條插值

2021-09-25 16:13:35 字數 2798 閱讀 6981

關於python資料分析在數學建模中的更多相關應用:python資料分析在數學建模中的應用彙總(持續更新中!)

y = sin(x)

#資料準備

x=np.arange(

-np.pi,np.pi,1)

#定義樣本點x,從-pi到pi每次間隔1

y= np.sin(x)

#定義樣本點y,形成sin函式

new_x=np.arange(

-np.pi,np.pi,

0.1)

#定義差值點

#進行樣條差值

import scipy.interpolate as spi

#進行一階樣條插值

ipo1=spi.splrep(x,y,k=1)

#樣本點匯入,生成引數

iy1=spi.splev(new_x,ipo1)

#根據觀測點和樣條引數,生成插值

#進行三次樣條擬合

ipo3=spi.splrep(x,y,k=3)

#樣本點匯入,生成引數

iy3=spi.splev(new_x,ipo3)

#根據觀測點和樣條引數,生成插值

##作圖

fig,

(ax1,ax2)

=plt.subplots(2,

1,figsize=(10

,12))

ax1.plot(x,y,

'o',label=

'樣本點'

)ax1.plot(new_x,iy1,label=

'插值點'

)ax1.set_ylim(y.

min()-

1,y.

max()+

1)ax1.set_ylabel(

'指數'

)ax1.set_title(

'線性插值'

)ax1.legend(

)ax2.plot(x,y,

'o',label=

'樣本點'

)ax2.plot(new_x,iy3,label=

'插值點'

)ax2.set_ylim(y.

min()-

1,y.

max()+

1)ax2.set_ylabel(

'指數'

)ax2.set_title(

'三次樣條插值'

)ax2.legend(

)

import numpy as np

import matplotlib.pyplot as plt

plt.rcparams[

'font.sans-serif']=

['simhei'

]#用來正常顯示中文標籤

plt.rcparams[

'axes.unicode_minus']=

false

#用來正常顯示負號

#資料準備

x=np.arange(

-np.pi,np.pi,1)

#定義樣本點x,從-pi到pi每次間隔1

y= np.sin(x)

#定義樣本點y,形成sin函式

new_x=np.arange(

-np.pi,np.pi,

0.1)

#定義差值點

#進行樣條差值

import scipy.interpolate as spi

#進行一階樣條插值

ipo1=spi.splrep(x,y,k=1)

#樣本點匯入,生成引數

iy1=spi.splev(new_x,ipo1)

#根據觀測點和樣條引數,生成插值

#進行三次樣條擬合

ipo3=spi.splrep(x,y,k=3)

#樣本點匯入,生成引數

iy3=spi.splev(new_x,ipo3)

#根據觀測點和樣條引數,生成插值

##作圖

fig,

(ax1,ax2)

=plt.subplots(2,

1,figsize=(10

,12))

ax1.plot(x,y,

'o',label=

'樣本點'

)ax1.plot(new_x,iy1,label=

'插值點'

)ax1.set_ylim(y.

min()-

1,y.

max()+

1)ax1.set_ylabel(

'指數'

)ax1.set_title(

'線性插值'

)ax1.legend(

)ax2.plot(x,y,

'o',label=

'樣本點'

)ax2.plot(new_x,iy3,label=

'插值點'

)ax2.set_ylim(y.

min()-

1,y.

max()+

1)ax2.set_ylabel(

'指數'

)ax2.set_title(

'三次樣條插值'

js 雙線性插值 雙三次插值法 實現

雙三次插值法 js實現 在網頁中利用canvas進行繪圖時,遇到乙個問題,原始的資料解析度很小,而要放大到整個網頁,所以需要把資料進行插值放大。學習了雙線性插值和三次內插法插值,兩種方式實現效果不同,都用js 實現了一下,下面給大家分享一下 雙線性插值即在x和y兩個方向上,對資料各進行一次線性插值。...

線性插值和雙線性插值

線性插值 如果你只處理分離的資料 想知道分離點之間的某些值,需要用到某種型別的插值。這種情況如圖5 17座標所示。對某些分離的 整數 x值,你知道y值。當x 2,你知道y 10,x 3時y 30。但你不知道x 2.7時的y值。使用線性插值,你通過連線兩點的線段找到x 2.7對應的y值,如圖1所示。使...

mysql實現線性插值法 線性插值法

線性插值法 linear interpolation 什麼是線性插值法 線性插值法是指使用連線兩個已知量的直線來確定在這兩個已知量之間的乙個未知量的值的方法。如何進行線性插值 假設我們已知座標 x0,y0 與 x1,y1 要得到 x0,x1 區間內某一位置x在直線上的值。根據圖中所示,我們得到兩點式...