n 个点的指数拟合

问题描述

我有 n 分(最多 513 分)需要填入

y = y0 + a*exp(b*x)

我一直在使用MathNet.Numerics.Fit.Exponential,但是问题是系数y0,或者当我有负Y点时,结果是

(NaN,NaN)

示例点仅前 7 分

double[] x = {0.000311999989207834,0.00033149998853332363,0.00035099998785881326,0.0003704999871843029,0.0003899999865097925,0.00040949998583528213,0.00042899998516077176};
double[] y = {-1.414255976676941,-1.415171504020691,-1.406565546989441,-1.3984631299972534,-1.398417353630066,-1.4013928174972534,-1.4019421339035034};
Tuple<double,double> t1 = Fit.Exponential(x,y);

我也试图找到最低的 Y 点,然后从所有点中减去,但我认为这不是正确的方法

参考照片(我想得到的):点和拟合图

Graph of points and fit

解决方法

https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales

中解释了一种不需要对参数进行初始猜测的非迭代拟合方法

通过您的简化示例,计算和结果如下所示。

enter image description here

enter image description here

如果指定了一些特定的拟合标准,您可以将上述结果用作软件中参数的初始值,用于迭代拟合方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...