4

Excel 用于计算二阶多项式回归(曲线拟合)的算法是什么?是否有示例代码或伪代码可用?

4

4 回答 4

5

我找到了一个解决方案,它返回 Excel 给出的相同公式:

  1. 将最小二乘抛物线中使用的值的增强矩阵放在一起。请参阅http://www.efunda.com/math/leastsquares/lstsqr2dcurve.cfm中的求和方程

  2. 使用高斯消元法求解矩阵。这是可以执行此操作的 C# 代码http://www.codeproject.com/Tips/388179/Linear-Equation-Solver-Gaussian-Elimination-Csharp

  3. 运行之后,矩阵 (M) 中的剩余值将等于 Excel 中给出的系数。

也许我能以某种方式找到 R^2,但我不需要它来达到我的目的。

于 2012-07-26T20:57:51.673 回答
3

图表中的多项式趋势线使用基于 QR 分解方法的最小二乘法,例如 LINEST 工作表函数 ( http://support.microsoft.com/kb/828533 )。可以使用 计算给定 (x,y) 数据的二阶或二次趋势=LINEST(y,x^{1,2})

Worksheet.Evaluate您可以使用该方法从 C# 调用工作表公式。

于 2012-07-26T15:53:43.457 回答
0

这取决于,因为有很多方法可以做到这一点,具体取决于您提供的数据以及曲线通过这些点的重要性。

我猜你的点比多项式中的系数多得多(例如,二阶曲线超过三个点)。

如果这是真的,那么你能做的最好的就是最小二乘拟合,它计算最小化所有点和结果曲线之间的均方误差的系数。

于 2012-07-26T15:13:08.940 回答
0

由于这是二阶,我的建议是创建该死的二阶项并进行线性回归。

前任。如果做z~second_order(x,y),就相当于做z~first_order(x,y,x^2,y^2,xy)。

于 2012-07-26T16:31:27.053 回答