python找极值点,求一个函数的极值点
python(python语言)是一种解释型脚本语言,可以应用于以下领域:
网路上和网际网路开发
科学计算和统计
人工智能
教育
桌面界面开发
后端开发
网络爬虫
python(python语言)求极值点主要用到史佩克库。
1.首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np拟合类型
importpandasaspd
importmatplotlib。pyplotasplt
importnumpyasnp
fromscipyimportsignal#信号#滤波等
xxx=np橙色(0.1000)
yyy=np.sin(xxx*np.pi/180)
z1=np.polyfit(xxx,yyy,7)#用七次多项式拟合
p1=np。多边形1d(z1)#多项式系数
列印(p1)#在屏幕上打印拟合多项式
yvals=p1(xxx)
plt.plot(xxx,yyy , * ,标示=原始值)
plt.plot(xxx,yvals,“r ”, label= polyfitvalues )
PLT。xlabel(" xaxis ")
PLT。伊拉贝尔(“亚西斯”)
plt.legend(位置=4)
plt.title(“多配合”).
plt.show()
得到的图形是:
2.求波峰值,也就是极大值,得到-信号。寻找峰值
#极值
数量_峰值_信号。find_peaks(yvals,distance=10)#distance表极大值点的距离至少大于等于10个水平单位
S7-1200可编程控制器
print( thenumberpeaksi str(len(num _ peak _ 3[0]))
plt.plot(xxx,yyy , * ,标示=原始值)
plt.plot(xxx,yvals,“r ”, label= polyfitvalues )
PLT。xlabel(" xaxis ")
PLT。伊拉贝尔(“亚西斯”)
plt.legend(位置=4)
plt.title(“多配合”).
强制长度(len(num_peak_3[0]):
plt.plot(num_peak_3[0][ii]、yvals[num_peak_3[0][ii]]、 * 标记大小=10)
plt.show()
3.在可导的情形下,可以求导来求极值点,同时得到极大值和极小值点:np聚合器
yyy=NP。poly der(P1,1)#1表示一阶导
打印(yyy)
此时:yyyd.r即可就得导数为0的点,可以与上述的极大值点对应比较
4.直接函数分别求极大值和极小值:信号argrelextrema。函数
打印(yvals[信号。argrextrema(yvals,NP。更大))#)极大值的然后呢轴,伊瓦尔斯为要求极值的序列
打印(信号。argrextrema(yvals,np.greater))#极大值的x个轴
peak _ ind=信号。argrextrema(yvals,np.greater)[0]#极大值点,改为np:较少即可得到极小值点
plt.plot(xxx,yyy , * ,标示=原始值)
plt.plot(xxx,yvals,“r ”, label= polyfitvalues )
PLT。xlabel(" xaxis ")
PLT。伊拉贝尔(“亚西斯”)
plt.legend(位置=4)
plt.title(“多配合”).
PLT。plot(信号。argrextrema(yvals,np.greater)[0]、Yves[signal。argrextrema(yvals,np.greater)]、 o ,markersize=10)#极大值点
PLT。plot(信号。argrextrema(yvals,np.less)[0],Yves[signal。argrextrema(yvals,np.less)], markersize=10)#极小值点
plt.show()
##结束-
python(python语言)是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(外壳),随着版本的不断更新和语言新功能的添加,越多被用于独立的~我爱你~大型项目的开发。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。