Math 求曲线饱和点的数学函数

Math 求曲线饱和点的数学函数,math,Math,有人知道用c语言在饱和曲线中找到饱和点的算法吗? 曲线可以以尖锐或平滑的方式改变其增长速度,并包含噪音,因此它不像我想象的那么简单。 我试着计算atan的导数(δy/δx),但它并不适用于所有曲线。我们可以很容易地从曲线的函数参数中得到曲线的最大值或最小值。看不出得到不一致结果的原因是什么 我认为问题可能是在尝试将噪声曲线与原始曲线结合时。因此,请确保以适当的方式混合这些曲线。atan或您使用的任何其他数学函数都没有问题。问题在于您的实现没有在此处指定。我们可以很容易地从曲线的函数参数中获得曲线

有人知道用c语言在饱和曲线中找到饱和点的算法吗?
曲线可以以尖锐或平滑的方式改变其增长速度,并包含噪音,因此它不像我想象的那么简单。

我试着计算atan的导数(δy/δx),但它并不适用于所有曲线。

我们可以很容易地从曲线的函数参数中得到曲线的最大值或最小值。看不出得到不一致结果的原因是什么


我认为问题可能是在尝试将噪声曲线与原始曲线结合时。因此,请确保以适当的方式混合这些曲线。atan或您使用的任何其他数学函数都没有问题。问题在于您的实现没有在此处指定。

我们可以很容易地从曲线的函数参数中获得曲线的最大值或最小值。看不出您得到不一致结果的原因是什么


我认为问题可能是在尝试将噪声曲线与原始曲线结合时。因此,请确保以适当的方式混合这些曲线。atan或您使用的任何其他数学函数都没有问题。问题在于您的实现,您在这里没有指定。

似乎您正在尝试从数值上确定,拟合到化学实验中某些数据点的函数的梯度何时小于1。看起来你的数据是有噪声的,你想确定如果没有噪声,梯度什么时候会小于1

首先,让我们忘掉噪音。您不想这样做:

atan(((y(i)-y(i-1))/(x(i)-x(i-1)))*180/PI
当梯度就在那里时,不需要计算梯度的角度。只需将
(y(i)-y(i-1))/(x(i)-x(i-1))
与1进行比较即可

其次,如果有噪音,你不能相信像那样计算的导数。但为了做得更好,我们真的需要更多地了解你的问题。有无数种方法可以解释您的数据。
x
值中是否存在噪声,或者仅在
y
值中是否存在噪声?我们是否期望这条曲线具有特征形状,或者它可以做任何事情

我猜一下:这是一种化学现象,其中y值迅速增加,但随后增加的速度减慢,因此在没有噪声的情况下,我们得到y=a(1-exp(-B*x))对于一些A和B。如果是这种情况,那么您可以使用算法将此类曲线拟合到您的点,然后在拟合曲线的梯度小于1时进行测试

但是如果没有更多的数据,你的问题将很难回答。如果你真的不愿意提供更多信息,我建议对你的数据进行快速而肮脏的过滤。在任何时候,都可以使用前一个y值的加权平均值来估计y的真实值,该加权平均值使用的权重随着时间的推移呈指数衰减。例如,不要使用
y[i]
而是使用
z[i]
where

z[i] = sum over j = 0 to i of w[i,j]*y[j] / sum over j = 0 to i of w[i,j]
在哪里


A
是一个数字,你可以手动调整,直到得到你想要的结果。尝试此操作,并在调整
A
时绘制
z[i]
。看看它是否符合你的要求。

你似乎在试图从数值上确定,当一个函数的梯度,拟合到一个化学实验的一些数据点上,小于1时。看起来你的数据是有噪声的,你想确定如果没有噪声,梯度什么时候会小于1

首先,让我们忘掉噪音。您不想这样做:

atan(((y(i)-y(i-1))/(x(i)-x(i-1)))*180/PI
当梯度就在那里时,不需要计算梯度的角度。只需将
(y(i)-y(i-1))/(x(i)-x(i-1))
与1进行比较即可

其次,如果有噪音,你不能相信像那样计算的导数。但为了做得更好,我们真的需要更多地了解你的问题。有无数种方法可以解释您的数据。
x
值中是否存在噪声,或者仅在
y
值中是否存在噪声?我们是否期望这条曲线具有特征形状,或者它可以做任何事情

我猜一下:这是一种化学现象,其中y值迅速增加,但随后增加的速度减慢,因此在没有噪声的情况下,我们得到y=a(1-exp(-B*x))对于一些A和B。如果是这种情况,那么您可以使用算法将此类曲线拟合到您的点,然后在拟合曲线的梯度小于1时进行测试

但是如果没有更多的数据,你的问题将很难回答。如果你真的不愿意提供更多信息,我建议对你的数据进行快速而肮脏的过滤。在任何时候,都可以使用前一个y值的加权平均值来估计y的真实值,该加权平均值使用的权重随着时间的推移呈指数衰减。例如,不要使用
y[i]
而是使用
z[i]
where

z[i] = sum over j = 0 to i of w[i,j]*y[j] / sum over j = 0 to i of w[i,j]
在哪里


A
是一个数字,你可以手动调整,直到得到你想要的结果。尝试此操作,并在调整
A
时绘制
z[i]
。看看它是否符合您的要求。

如果您将您的问题从特定术语中剥离出来,并使其更具一般性,这将对我们和将来阅读此文章的人都有帮助。你的问题不只是在有噪音的情况下找到曲线的最大值吗?@yoda,饱和点不是最大值。饱和点的定义是什么?@Johan:我以为它是浓度曲线的最大值。无论如何,我不是化学家,我可能错了。我的观点是最好用数学来描述它,因为人们更容易理解,而我的困惑恰恰证明了这一点。这对OP也有帮助,因为这里的数千人中的任何一个都可以帮助他,但是如果它保持不变,你将不得不等待一个了解饱和曲线并了解C语言编程的人。@Roberto,你想用它来绘制饱和曲线吗