Lagrange interpolation, show term: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 17: Line 17:
var graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3});
var graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3});
var d1 = board.create('functiongraph', [JXG.Math.Numerics.D(f), -10, 10], {dash:1});
var d1 = board.create('functiongraph', [JXG.Math.Numerics.D(f), -10, 10], {dash:1});
var txt = board.create('text', [-3, -4,  () => f.getTerm(2, 't', ' * ')], {fontSize: 16});


function addPoint() {
function addPoint() {
Line 43: Line 45:
var board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true});
var board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true});


var p = [];
var points = [];
p[0] = board.create('point', [-1,2], {size:4});
points[0] = board.create('point', [-1,2], {size:4});
p[1] = board.create('point', [3,-1], {size:4});
points[1] = board.create('point', [3,-1], {size:4});
var f = JXG.Math.Numerics.lagrangePolynomial(p);
var f = JXG.Math.Numerics.lagrangePolynomial(points);
var graph = board.create('functiongraph', [f,-10, 10], {strokeWidth:3});
var graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3});
var d1 = board.create('functiongraph', [JXG.Math.Numerics.D(f), -10, 10], {dash:1});
var d1 = board.create('functiongraph', [JXG.Math.Numerics.D(f), -10, 10], {dash:1});


function addPoint() {
function addPoint() {
     p.push(board.create('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{size:4}));
     points.push(board.create('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{size:4}));
     board.update();
     board.update();
}
}
function removePoint() {
    if (points.length > 2) {
      board.removeObject(points[points.length - 1]);
      points.pop();
    }
    //board.update();
}
document.getElementById('add').addEventListener("click", addPoint, false);
document.getElementById('remove').addEventListener("click", removePoint, false);
</source>
</source>



Revision as of 06:57, 4 October 2022

Constructs a polynomial of degree [math]\displaystyle{ n }[/math] through [math]\displaystyle{ n+1 }[/math] given points. Points can be added by clicking on "Add point". The dotted line is the graph of the first derivative, the dashed line is the graph of the second derivative.

References

The underlying JavaScript code

var board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true});

var points = [];
points[0] = board.create('point', [-1,2], {size:4});
points[1] = board.create('point', [3,-1], {size:4});
var f = JXG.Math.Numerics.lagrangePolynomial(points);
var graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3});
var d1 = board.create('functiongraph', [JXG.Math.Numerics.D(f), -10, 10], {dash:1});

function addPoint() {
    points.push(board.create('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{size:4}));
    board.update();
}

function removePoint() {
    if (points.length > 2) {
      board.removeObject(points[points.length - 1]);
      points.pop();
    }
    //board.update();
}

document.getElementById('add').addEventListener("click", addPoint, false);
document.getElementById('remove').addEventListener("click", removePoint, false);