Python 寻找原始实验数据的最大值

Python 寻找原始实验数据的最大值,python,scipy,max,curve-fitting,scipy-optimize,Python,Scipy,Max,Curve Fitting,Scipy Optimize,我正在进行一项调查项目,我必须绘制一些实验数据,然后找到最大值(临界点),如下图所示: 我试图调整拟合曲线(使用cuadratic方程)以找到最大值,我现在正在寻找优化曲线。我试过使用maxarray,但是有一个特定的值无法修复趋势 这就是我到目前为止所做的: import matplotlib.pyplot as plt from scipy.optimize import curve_fit import numpy as np import scipy # Subo los datos

我正在进行一项调查项目,我必须绘制一些实验数据,然后找到最大值(临界点),如下图所示:

我试图调整拟合曲线(使用cuadratic方程)以找到最大值,我现在正在寻找优化曲线。我试过使用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”值(Y非常好的第一个问题-我发现了一个可以解决你问题的重复问题。被接受的答案似乎正是你需要做的。我是通过谷歌找到的:
python fit curve through points site:stackoverflow.com
我建议使用你的数据片段-这些值似乎很紧凑,所以每10个左右的值再试一次,e非常第50个值等。然后通过f.e.检查最高点,看看它给你的数据集上的实际点提供了多少增量,直到你得到足够好的认可。谢谢你这么快的回答!过了一段时间,我能够用你推荐的页面完美地解决它,甚至比我想象的还要好!谢谢你感谢您的帮助!tpo帮助愉快。这是关于知识丰富的酷事,尽管有时很难挖掘。坚持使用谷歌和
网站:stackoverflow
,尝试3-5种不同的搜索词,你可以向你的弟弟描述问题,但你不喜欢,你最终会找到一个真正好的解决方案uestion-我发现了一个可以解决您问题的副本。接受的答案似乎正是您需要做的。我使用google:
python拟合曲线通过点站点:stackoverflow.com
找到了它。我建议使用您的数据片段-这些值似乎被紧密压缩,所以请尝试每10个左右的值,每50个值等等。然后通过f.e.检查最高点,看看它给你的数据集上的实际点提供了多少增量,直到你得到足够好的认可。谢谢你这么快的回答!一段时间后,我能够用你推荐的页面完美地解决它,甚至比我想象的还要好!非常感谢你的帮助!快乐tpo帮助。这是知识丰富的酷东西,尽管有时很难挖掘。坚持使用谷歌和
网站:stackoverflow
,尝试3-5个不同的搜索词,你可以向你不感兴趣的弟弟描述问题,你最终会找到解决方案