我已经对一组数据点进行了拟合曲线。 我想知道如何找到我的曲线的最高点,然后我想注释该点(我不想使用我的数据中的最大y值来实现此目的)。 我无法准确地编写我的代码,但这是我的代码的基本布局。
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
x = [1,2,3,4,5]
y = [1,4,16,4,1]
def f(x, p1, p2, p3):
return p3*(p1/((x-p2)**2 + (p1/2)**2))
p0 = (8, 16, 0.1) # guess perameters
plt.plot(x,y,"ro")
popt, pcov = curve_fit(f, x, y, p0)
plt.plot(x, f(x, *popt))
还有没有一种方法可以找到峰宽?
我是否错过了一个可以做到这一点的简单内置函数?我能够对该函数进行微分并找到其为零的点吗?如果可以,如何操作?
p1,p2,p3 = popt
。 - Julien Spronck