2016-01-22 168 views
1

我试图做一个简单的函数来做一个给定数据集的指数曲线拟合。我写了以下内容:JS指数曲线拟合

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]]。任何人都有工作建议,插件,库或修改后的功能?

回答

5

^ is the XOR operator在JavaScript中,并非指数。

x^2替换为Math.pow(x,2)x*x,并且对于您有sum_x^2的两个地方执行相同操作。