如何解决在原始实验数据上找到最大值
我正在研究调查对象,在这里我必须绘制一些实验数据,然后找到最大值(临界点),如下图所示:
我正在尝试(使用立方方程式)调整拟合曲线以找到最大值,并且我现在正在寻求优化该曲线。我已经尝试过使用maxarray,但是有一个特定的值无法解决这种趋势。
这是我到目前为止所做的:
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
import scipy
# Subo los datos experimentales #
datos=np.loadtxt("OFET2.txt",delimiter="\t")
x=datos[:,1]
y=datos[:,4]
n=len(x)
dr=np.diff(y)/np.diff(x)
dx=datos[:n-1,1]
def func(x,a,b,c):
return -(a*x+b*x**2-c) # Este x no tiene nada que ver con el dato de x
plt.plot(dx,dr,label='experimental-data')
popt,pcov = curve_fit(func,dx,dr)
print(popt)
#x values for the fitted function
xFit = np.arange(-100,400,0.01)
#Plot the fitted function
plt.plot(xFit,func(xFit,*popt),'r--',label='fit params: a=%5.3f,b=%5.3f,c=%5.3f' % tuple(popt))
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
plt.legend()
plt.show()
这是该图的图像:
一个想法是使曲线仅适合大于0.008(y
希腊人!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。