Polynomial regression II

From JSXGraph Wiki
Jump to navigationJump to search

Here are 30 randomly distributed points. The range of these points can be adjusted by the slider 'scale'. Through these points a regression polynomial is computed. The degree of this polynomial can be adjusted by the slider 'degree'.

The underlying JavaScript code

brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-2, 100, 220, -70], grid: false, axis:true});
brd.suspendUpdate();
deg = brd.create('slider',[[10,90],[100,90],[1,1,10]],{name:'degree',snapWidth:1});     
s = brd.create('slider',[[10,70],[100,70],[0,1,3]],{name:'scale'});     
pointlist = [];
for (i=0; i<30;i++) {
    pointlist.push(brd.create('point', [function() { return 200*Math.random(); }, function() { return s.Value()*30*Math.random()+20;}], { style:4, strokecolor:"#0000a0", name:" "})); 
}
brd.unsuspendUpdate();

regression = JXG.Math.Numerics.regressionPolynomial(deg,pointlist); 
reg = brd.create('functiongraph',[regression],{strokeColor:'green'});     
t = brd.create('text',[20,-40,
            function(){ return "r(x) = " + regression.getTerm();}
            ],
            {strokeColor:'black',fontSize:'14px'});