<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
插值主要用於物理學數學中,逼近某一確定值的方法
(1)插值是通過已知的離散資料求未知資料的方法。
(2)與擬合不同,插值要求曲線通過所有的已知資料。插值是離散函數逼近的重要方法,利用它可以通過函數在有限個點處的取值情況,估算出函數在其他點處的近似值。
(3)若函數 f(x),在自變數x(離散值)所對應的函數已知,求解出一個適當的特定函數 p(x) 使得 p(x) 在x處所取的函數值等於 f(x) 在x處的已知值。從而用 p(x) 來估計 f(x) 在這些x值之間的數所對應的函數值。
''' scipy.interpolate.interp1d() 一維插值方法 引數 # ---------------------------------------------------------- # x 陣列或列表型別,已知點的x座標 y 陣列或列表型別,已知點的y座標 kind 差值型別。zero, nearest 階梯插值, 0階B樣條曲線 slinear, linear 預設線性插值, 用一條直線連線各個取樣點, 1階B樣條曲線 quadratic, cubic 二階,三階 曲線取樣,更高階的可以直接用整數值定 axis 指定沿y的某個軸進行插值,預設沿y的最後一個軸插值 # ---------------------------------------------------------- # '''
x 座標為[0,1,2,...,9],座標y的計算公式為: ,插值方法是要通過已知的10個點,找到能夠完美經過這10個點的函數表示式 f,得到表示式後輸入新的x座標點,就能得到對應的新的y座標點
import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d # 建立已知點的(x,y)座標 x = np.arange(0, 10) y = np.exp(-x/3.0) # 繪製離散點 # plt.plot(x, y, 'o') # 插值方法就是找到一個函數完全經過這些點,從而預測其他相關的資訊 # 建立插值函數, 傳入已知點的座標, 使用線性插值 f = interp1d(x, y, kind='linear', axis=-1) # 建立的結果是一個函數表示式 # 傳入新的點的x座標,預測出y座標 x_new = np.arange(0, 9, 0.2) # 生成預測點 y_new = f(x_new) # 對比舊點和新點的座標 plt.plot(x, y, 'o', x_new, y_new, '*') plt.show()
可以看到,插值後的新的座標點能夠經過舊的座標點。
問:
在一次實驗中,在1到12的11個小時內,每隔1小時測量一次溫度,測得的溫度依次是:5、8、9、15、25、29、31、30、22、25、27、24。嘗試估計每隔1/10小時的溫度值。
答:
需要根據12小時的測量結果,插值計算出每0.1小時的測量結果。和上面一樣,找到一個函數能夠完美經過這12個座標點,使用這個函數預測新的座標。
下面使用兩種差值型別,線性插值和二階曲線插值,線性插值是在每兩個座標點之間用直線段相連,而二階曲線插值是在每兩個座標點之間使用二次曲線相連。
import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d # x為時間序列, y為每個小時的測量溫度 x = np.arange(1, 13) y = [5, 8, 9, 15, 25, 29, 31, 30, 22, 25, 27, 24] # 插值求得包含所有座標點的函數表示式, 使用二階插值 f1 = interp1d(x, y, kind='quadratic', axis=-1) # 使用線性插值 f2 = interp1d(x, y, kind='linear', axis=-1) # 生成新的時間序列點 x_new = np.arange(1, 12, 0.1) # 二階插值計算每個時間點對應的新的測量結果 y_new1 = f1(x_new) # 二階插值計算測量結果 y_new2 = f2(x_new) # 對比兩種插值方法的座標 plt.figure(figsize=(10,5)) plt.subplot(121) plt.title('quadratic') plt.plot(x, y, 'o', x_new, y_new1, '*') plt.subplot(122) plt.title('linear') plt.plot(x, y, 'o', x_new, y_new2, '*') plt.show()
可以看出二階插值方法比線性插值更加平滑,符合設計要求。
以上就是Python實現一維插值方法的範例程式碼的詳細內容,更多關於Python一維插值方法的資料請關注it145.com其它相關文章
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45