计算对数趋势线的斜率和截距值为excel

我正在生成对数趋势线,并使用Excel公式为此。 但是我不能计算在Excel中计算的斜率和截距值。 我想,我在公式中犯了一些错误。

这是我的代码

var X= [10, 25, 30, 40]; Y= [5, 4, 7, 12]; var Slope, Intercept, SX = 0, SY = 0, SXX = 0, SXY = 0, SYY = 0, SumProduct = 0, N = X.length; for (var i = 0; i < N; i++) { SX = SX + X[i]; SY = SY + Y[i]; SXY = SXY + X[i] * Y[i]; SXX = SXX + X[i] * X[i]; SYY = SYY + Y[i] * Y[i]; } Slope = ((N * SXY) - (SX * SY)) / ((N * SXX) - (SX * SX)); Intercept = (SY - (Slope * SX)) / N; 

小提琴链接

Excel公式:

对数方程:y =(c * LN(x))+ b

哪里:

 c = INDEX(LINEST(y,LN(x)),1) b = INDEX(LINEST(y,LN(x)),1,2) 

Excel输出的截图

在这里输入图像说明

请build议如何在JavaScript中导出Excel公式。

您在Excel中错过了ln() Math.log() 。 编辑这样for部分。

 for (var i = 0; i < N; i++) { SX = SX + Math.log(X[i]); SY = SY + Y[i]; SXY = SXY + Math.log(X[i]) * Y[i]; SXX = SXX + Math.log(X[i]) * Math.log(X[i]); SYY = SYY + Y[i] * Y[i]; } 

我已经validation了输出是作为Excel的sams。

 > Slope 3.8860409979365333 > Intercept -5.252238189415747