python 插值_Python求解插值、拟合和微分方程问题
生活随笔
收集整理的這篇文章主要介紹了
python 插值_Python求解插值、拟合和微分方程问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、交通管理部門為了掌握一座橋梁的通行情況,在橋梁的一端每隔一段不等的時間連續記錄1min內通過橋梁的車輛數量,連續觀測一天24h的通過車輛車輛數據如下表所示。試建立模型分析估計這一天中總共有多少車輛通過這座橋梁。import numpy as npimport matplotlib.pyplot as pltfrom scipy.interpolate import interp1dplt.grid(linestyle='--') #設置網格線---這里是虛線X = np.array([0,2,4,5,6,7,8,9,10.5,11.5,12.5,14,16,17,18,19,20,21,22,23,24])Y = np.array([2,2,0,2,5,8,25,12,5,10,12,7,9,28,22,10,9,11,8,9,3])xnew= np.linspace(0,24,24*60) # 引入插值函數,這里的點較散亂,所以我選取高階的樣條插值f=interp1d(X,Y,'quadratic'); ynew=f(xnew) plt.plot(xnew,ynew,c='b')plt.show()# 計算一天的車輛總數c=sum(ynew)print('一天總共:',c)2、某年美國舊車價格的調查資料如下表所示,其中xi表示轎車的使用年數,yi表示相應的平均價格.試分析用什么形式的曲線擬合表中所給的數據,并預測使用4.5年后轎車的平均價格大致為多少?import matplotlib.pyplot as pltimport numpy as npfrom numpy import polyfit,polyvalx=np.linspace(0,10,11)[1:11]y=np.array([2615,1943,1494,1087,765,538,484,290,226,204])p=polyfit(x,y,2)print('p:',p)ynew=polyval(p,x)plt.plot(x,ynew)plt.show()ypred=polyval(p,4.5)print('使用4.5年后轎車的平均價格大致為:',ypred)
3、求下列微分方程組(豎直加熱板的自然對流)的數值解
import matplotlib.pyplot as pltimport numpy as npfrom scipy.integrate import odeintdef fT(y,x):????f,df,ddf,T,dT=y;?#拆分、降階 return np.array([df,ddf,2*(df*df)-T-3*f*ddf,dT,-2.1*f*dT])x=np.arange(0,10,0.1)ynew=odeint(fT,[0.0,0.0,0.68,1.0,-0.5],x)#plt.rc('font',size=16);plt.rc('font',family='Times New Roman')plt.plot(x,ynew[:,0],label='f')plt.plot(x,ynew[:,3],label='T')plt.legend()plt.show()4、某地區野兔的數量連續9年的統計數量(單位:十萬)如下表所示。預測t=9,10時野兔的數量。import matplotlib.pyplot as pltimport numpy as npx=np.linspace(0,8,9)y=np.array([5,5.9945,7.0932,8.2744,9.5073,10.7555,11.9804,13.1465,14.2247])plt.scatter(x,y,c='r',label='Data point')p=np.polyfit(x,y,1)print('p為:',p)ynew1=np.polyval(p,x)plt.plot(x,ynew1)plt.legend()plt.show()#從圖中可以看出一次多項式的擬合效果就很好,所以接下來預測時采用一次多項式即可y9=np.polyval(p,9)y10=np.polyval(p,10)print('t=9野兔的數量:',y9)print('t=10野兔的數量:',y10)總結
以上是生活随笔為你收集整理的python 插值_Python求解插值、拟合和微分方程问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 打印心形图案_简单漂亮的心形礼
- 下一篇: python提取文件指定列_如何从csv