JS指数曲线拟合
JS exponential curve fit
我正在尝试制作一个简单的函数来在给定数据集的情况下进行指数曲线拟合。 我写了以下内容:
function expCurveFit(d){
var sum_x2 = 0, sum_lny = 0, sum_x = 0, sum_xlny = 0, n = d.length;
for(var i=0;i<d.length;i++){
var x = d[i][0];
var y = d[i][1];
sum_x2 += x^2, sum_lny += Math.log(y), sum_x += x, sum_xlny += x*Math.log(y);
}
var a = ((sum_lny*sum_x2)-(sum_x*sum_xlny))/((n*sum_x2)-sum_x^2);
var b = ((n*sum_xlny)-(sum_x*sum_lny))/((n*sum_x2)-sum_x^2);
return [a,b];
}
但是 A 和 B 似乎不正确。 我正在 Wolfram 使用基本公式。 输入的数组采用 [[x1,y1],[x2,y2]...[xn,yn]]
的形式。 有人有工作建议、插件、库或修改的功能吗?
^
是 JavaScript 中的 XOR 运算符,而不是幂。
将x^2
替换为 Math.pow(x,2)
或 x*x
,并对有sum_x^2
的两个位置执行相同的操作。
除了标记为
此问题的答案的 XOR 运算符外,a 和 b 系数也存在错误。
使用此方法拟合的曲线是 Y = B * exp(A * x)
,正如 Wolfram 中所写的那样,但B = b
和A = exp(a)
!
所以你必须将返回[a,b]
更改为[ Math.exp(a), b]
(如果你想用这个数组作为"方程")
相关文章:
- 对象拟合:获取结果尺寸
- 把两种不同的形式合为一
- 如何在d3力布局中使直线而不是曲线
- 聚合物-dom重复的起始指数
- 钛合金表视图
- D3.js:设置贝塞尔曲线的动画
- 将累积百分比线拟合到排序的直方图输出,使用 d3 获得帕累托图直方图
- 传单.js - 在地图视图上拟合地理 JSON 坐标
- JS指数曲线拟合
- 使用Ember中的Textbox对模型进行实时排序或拟合
- 如何在extjs4的视口区域中拟合图像
- sparklines条形图拟合
- 根据最小和高度值拟合框中的图像
- 显示随机图像与拟合链接
- 拟合多个相关数据集到angalrjs的ngRepeat
- 绘图应用程序-曲线拟合
- 剑道折线图 - 基本单位拟合 - 显示错误值的工具提示
- 在谷歌地图渲染方向中拟合边界
- 如何在c3中拟合Y轴
- JavaScript中的三次回归(最佳拟合线)