Loading js/numbers/numbers.calculus.extra.js +12 −8 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ numbers.calculus.GaussNewton = function(v,n,r,dr,eps,w){ var v1 = iterate(v0,n,r,dr) //console.log(v1); console.log(v1); var s0 = sigma(v0,n,r) var s1 = sigma(v1,n,r) Loading @@ -85,8 +85,6 @@ numbers.calculus.GaussNewton = function(v,n,r,dr,eps,w){ var J = jacobian(v,n,dr) console.log(J); var Jt = numbers.matrix.transpose(J) for(var i=0;i<n;i++){ Loading Loading @@ -197,6 +195,8 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ var counter = 0 var v0 = v var xn = r.length; if (w===undefined){ w = function(){ return 1; Loading Loading @@ -231,7 +231,11 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ //functions function iterate(v,n,r,dr){ var wsum = ws(v,n) var wsum = 0; for(var j=0;j<xn;j++){ wsum += ws(v,n,xn) } var J = jacobian(v,n,dr) var Jt = numbers.matrix.transpose(J) Loading Loading @@ -307,19 +311,19 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ } // normalized weight function wn(i,v,wsum){ function wn(i,v,wsum,xn){ return w(i,v)/wsum return w[xn](i,v)/wsum } // sum of weights for normalization function ws(v,n){ function ws(v,n,xn){ var wsum = 0 for(var i=0;i<n;i++){ wsum += w(i,v) wsum += w[xn](i,v) } return wsum Loading js/ui_align.js +12 −1 Original line number Diff line number Diff line Loading @@ -401,7 +401,18 @@ function x3dom_align_hll3(){ var xyh = [x0,y0]; var result = numbers.calculus.GaussNewton(xyh,Data.markers.length,hll3_r_i,[hll3_dr_dx_i,hll3_dr_dy_i],epsilon,hll3_w_i); //var result = numbers.calculus.GaussNewton_nD(xyh,Data.markers.length,hll3_r_i,[hll3_dr_dx_i,hll3_dr_dy_i],epsilon,hll3_w_i); /* var rs_i = [hll3_r_i, hll3_r_i]; var drs_i = [ [hll3_dr_dx_i, hll3_dr_dy_i], [hll3_dr_dx_i, hll3_dr_dy_i] ]; var ws_i = [hll3_w_i, hll3_w_i]; var result = numbers.calculus.GaussNewton_nD(xyh,Data.markers.length,rs_i,drs_i,epsilon,ws_i); */ xyh = [result.v[0],result.v[1],h0]; Loading Loading
js/numbers/numbers.calculus.extra.js +12 −8 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ numbers.calculus.GaussNewton = function(v,n,r,dr,eps,w){ var v1 = iterate(v0,n,r,dr) //console.log(v1); console.log(v1); var s0 = sigma(v0,n,r) var s1 = sigma(v1,n,r) Loading @@ -85,8 +85,6 @@ numbers.calculus.GaussNewton = function(v,n,r,dr,eps,w){ var J = jacobian(v,n,dr) console.log(J); var Jt = numbers.matrix.transpose(J) for(var i=0;i<n;i++){ Loading Loading @@ -197,6 +195,8 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ var counter = 0 var v0 = v var xn = r.length; if (w===undefined){ w = function(){ return 1; Loading Loading @@ -231,7 +231,11 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ //functions function iterate(v,n,r,dr){ var wsum = ws(v,n) var wsum = 0; for(var j=0;j<xn;j++){ wsum += ws(v,n,xn) } var J = jacobian(v,n,dr) var Jt = numbers.matrix.transpose(J) Loading Loading @@ -307,19 +311,19 @@ numbers.calculus.GaussNewton_nD = function(v,n,r,dr,eps,w){ } // normalized weight function wn(i,v,wsum){ function wn(i,v,wsum,xn){ return w(i,v)/wsum return w[xn](i,v)/wsum } // sum of weights for normalization function ws(v,n){ function ws(v,n,xn){ var wsum = 0 for(var i=0;i<n;i++){ wsum += w(i,v) wsum += w[xn](i,v) } return wsum Loading
js/ui_align.js +12 −1 Original line number Diff line number Diff line Loading @@ -401,7 +401,18 @@ function x3dom_align_hll3(){ var xyh = [x0,y0]; var result = numbers.calculus.GaussNewton(xyh,Data.markers.length,hll3_r_i,[hll3_dr_dx_i,hll3_dr_dy_i],epsilon,hll3_w_i); //var result = numbers.calculus.GaussNewton_nD(xyh,Data.markers.length,hll3_r_i,[hll3_dr_dx_i,hll3_dr_dy_i],epsilon,hll3_w_i); /* var rs_i = [hll3_r_i, hll3_r_i]; var drs_i = [ [hll3_dr_dx_i, hll3_dr_dy_i], [hll3_dr_dx_i, hll3_dr_dy_i] ]; var ws_i = [hll3_w_i, hll3_w_i]; var result = numbers.calculus.GaussNewton_nD(xyh,Data.markers.length,rs_i,drs_i,epsilon,ws_i); */ xyh = [result.v[0],result.v[1],h0]; Loading