问题描述
我有 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 点,然后从所有点中减去,但我认为这不是正确的方法。
参考照片(我想得到的):点和拟合图
解决方法
https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales
中解释了一种不需要对参数进行初始猜测的非迭代拟合方法通过您的简化示例,计算和结果如下所示。
如果指定了一些特定的拟合标准,您可以将上述结果用作软件中参数的初始值,用于迭代拟合方法。