2016-01-22 231 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的兩個地方執行相同操作。