电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python 一維二維插值實(shí)例

瀏覽:108日期:2022-07-29 11:44:32

一維插值

插值不同于擬合。插值函數(shù)經(jīng)過樣本點(diǎn),擬合函數(shù)一般基于最小二乘法盡量靠近所有樣本點(diǎn)穿過。常見插值方法有拉格朗日插值法、分段插值法、樣條插值法。

拉格朗日插值多項式:當(dāng)節(jié)點(diǎn)數(shù)n較大時,拉格朗日插值多項式的次數(shù)較高,可能出現(xiàn)不一致的收斂情況,而且計算復(fù)雜。隨著樣點(diǎn)增加,高次插值會帶來誤差的震動現(xiàn)象稱為龍格現(xiàn)象。

分段插值:雖然收斂,但光滑性較差。

樣條插值:樣條插值是使用一種名為樣條的特殊分段多項式進(jìn)行插值的形式。由于樣條插值可以使用低階多項式樣條實(shí)現(xiàn)較小的插值誤差,這樣就避免了使用高階多項式所出現(xiàn)的龍格現(xiàn)象,所以樣條插值得到了流行。

在CODE上查看代碼片派生到我的代碼片

#!/usr/bin/env python # -*-coding:utf-8 -*- import numpy as np from scipy import interpolate import pylab as pl x=np.linspace(0,10,11) #x=[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] y=np.sin(x) xnew=np.linspace(0,10,101) pl.plot(x,y,'ro') for kind in ['nearest','zero','slinear','quadratic','cubic']:#插值方式 #'nearest','zero'為階梯插值 #slinear 線性插值 #'quadratic','cubic' 為2階、3階B樣條曲線插值 f=interpolate.interp1d(x,y,kind=kind) # ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of first, second or third order) ynew=f(xnew) pl.plot(xnew,ynew,label=str(kind)) pl.legend(loc='lower right') pl.show()

結(jié)果:

python 一維二維插值實(shí)例

二維插值

方法與一維數(shù)據(jù)插值類似,為二維樣條插值。

在CODE上查看代碼片派生到我的代碼片

# -*- coding: utf-8 -*- ''' 演示二維插值。 ''' import numpy as np from scipy import interpolate import pylab as pl import matplotlib as mpl def func(x, y): return (x+y)*np.exp(-5.0*(x**2 + y**2)) # X-Y軸分為15*15的網(wǎng)格 y,x= np.mgrid[-1:1:15j, -1:1:15j] fvals = func(x,y) # 計算每個網(wǎng)格點(diǎn)上的函數(shù)值 15*15的值 print len(fvals[0]) #三次樣條二維插值 newfunc = interpolate.interp2d(x, y, fvals, kind=’cubic’) # 計算100*100的網(wǎng)格上的插值 xnew = np.linspace(-1,1,100)#x ynew = np.linspace(-1,1,100)#y fnew = newfunc(xnew, ynew)#僅僅是y值 100*100的值 # 繪圖 # 為了更明顯地比較插值前后的區(qū)別,使用關(guān)鍵字參數(shù)interpolation=’nearest’ # 關(guān)閉imshow()內(nèi)置的插值運(yùn)算。 pl.subplot(121) im1=pl.imshow(fvals, extent=[-1,1,-1,1], cmap=mpl.cm.hot, interpolation=’nearest’, origin='lower')#pl.cm.jet #extent=[-1,1,-1,1]為x,y范圍 favals為 pl.colorbar(im1) pl.subplot(122) im2=pl.imshow(fnew, extent=[-1,1,-1,1], cmap=mpl.cm.hot, interpolation=’nearest’, origin='lower') pl.colorbar(im2) pl.show()

python 一維二維插值實(shí)例

左圖為原始數(shù)據(jù),右圖為二維插值結(jié)果圖。

二維插值的三維展示方法

在CODE上查看代碼片派生到我的代碼片

# -*- coding: utf-8 -*- ''' 演示二維插值。 ''' # -*- coding: utf-8 -*- import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl from scipy import interpolate import matplotlib.cm as cm import matplotlib.pyplot as plt def func(x, y): return (x+y)*np.exp(-5.0*(x**2 + y**2)) # X-Y軸分為20*20的網(wǎng)格 x = np.linspace(-1, 1, 20) y = np.linspace(-1,1,20) x, y = np.meshgrid(x, y)#20*20的網(wǎng)格數(shù)據(jù) fvals = func(x,y) # 計算每個網(wǎng)格點(diǎn)上的函數(shù)值 15*15的值 fig = plt.figure(figsize=(9, 6)) #Draw sub-graph1 ax=plt.subplot(1, 2, 1,projection = ’3d’) surf = ax.plot_surface(x, y, fvals, rstride=2, cstride=2, cmap=cm.coolwarm,linewidth=0.5, antialiased=True) ax.set_xlabel(’x’) ax.set_ylabel(’y’) ax.set_zlabel(’f(x, y)’) plt.colorbar(surf, shrink=0.5, aspect=5)#標(biāo)注 #二維插值 newfunc = interpolate.interp2d(x, y, fvals, kind=’cubic’)#newfunc為一個函數(shù) # 計算100*100的網(wǎng)格上的插值 xnew = np.linspace(-1,1,100)#x ynew = np.linspace(-1,1,100)#y fnew = newfunc(xnew, ynew)#僅僅是y值 100*100的值 np.shape(fnew) is 100*100 xnew, ynew = np.meshgrid(xnew, ynew) ax2=plt.subplot(1, 2, 2,projection = ’3d’) surf2 = ax2.plot_surface(xnew, ynew, fnew, rstride=2, cstride=2, cmap=cm.coolwarm,linewidth=0.5, antialiased=True) ax2.set_xlabel(’xnew’) ax2.set_ylabel(’ynew’) ax2.set_zlabel(’fnew(x, y)’) plt.colorbar(surf2, shrink=0.5, aspect=5)#標(biāo)注 plt.show()

python 一維二維插值實(shí)例

左圖的二維數(shù)據(jù)集的函數(shù)值由于樣本較少,會顯得粗糙。而右圖對二維樣本數(shù)據(jù)進(jìn)行三次樣條插值,擬合得到更多數(shù)據(jù)點(diǎn)的樣本值,繪圖后圖像明顯光滑多了。

補(bǔ)充知識:python中對Dataframe二維查表插值的實(shí)現(xiàn)方法

今天在計算風(fēng)力發(fā)電機(jī)捕捉風(fēng)能功率的時候,需要對葉片掃略面積內(nèi)的風(fēng)能做個功率效率折減,即Cp系數(shù),Cp的定義如下,即實(shí)際利用的風(fēng)能與輸入風(fēng)能的比例

python 一維二維插值實(shí)例

輸入風(fēng)能是空氣密度與風(fēng)速的函數(shù),可以直接計算:

python 一維二維插值實(shí)例

那么實(shí)際得到的能力是Pin與Cp的乘積。

python 一維二維插值實(shí)例

Cp通常是一個二維表,橫坐標(biāo)是TSR(葉尖速與風(fēng)速的比值),縱坐標(biāo)是PITCH Angle(槳葉角)。風(fēng)機(jī)的運(yùn)行數(shù)據(jù)中是包含風(fēng)速 ,轉(zhuǎn)速以及槳葉角信息的,并且通過直接讀入到DataFrame,那么就需要根據(jù)TSR與PA對Cp查表并且插值得到Cp。主要用到scipy.interpolate.interp2d創(chuàng)建插值函數(shù)并查表,另外Dataframe不能直接用插值函數(shù),這里做了個for循環(huán)分行插值查表。

from scipy.interpolate import interp2ddf_rotormap = pd.read_csv(’filepath’,header = None) #讀取Cp表x = np.array(df_rotormap.iloc[:,0].dropna()) #Cp表的X坐標(biāo)是TSRy = np.array(df_rotormap.iloc[:,1]) #Cp表的Y坐標(biāo)是pitch anglez = np.array(df_rotormap.iloc[:,2:]) #Cp表的具體值,y行x列rho = 1.225 #kg/m3s = (141/2)**2*np.pi #m2df_cal[’TSR’] = df_cal[’發(fā)電機(jī)轉(zhuǎn)速(PDM1)’]/148*141*np.pi/60/df_cal[’風(fēng)速’]func_new = interp2d(x,y,z,kind = ’linear’) #定義二維表插值函數(shù),選擇線性插值cp_list = []for i in range(df_cal.shape[0]): cp = float(func_new(df_cal[’TSR’][i],df_cal[’1號槳葉角度’][i])) #輸入X,Y坐標(biāo), 輸出插值計算的Cp cp_list.append(cp)df_cal[’cp’] = cp_list #把Cp放回到Dataframe中去df_cal[’air_power’] = 0.5*rho*s*df_cal[’風(fēng)速’]**3*df_cal[’cp’]

以上這篇python 一維二維插值實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 山东艾德实业有限公司| 北京成考网-北京成人高考网| 诗词大全-古诗名句 - 古诗词赏析 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 泰安塞纳春天装饰公司【网站】 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 中宏网-今日新闻-财经新闻| 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 超声波反应釜【百科】-以马内利仪器| 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 大数据营销公司_舆情监测软件_上海SEO公司-文军营销官网 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 重庆中专|职高|技校招生-重庆中专招生网 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 中宏网-今日新闻-财经新闻| 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 扬子叉车厂家_升降平台_电动搬运车|堆高车-扬子仓储叉车官网 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 |