Lagrange interpolation: Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary |
A WASSERMANN (talk | contribs) No edit summary |
||
Line 35: | Line 35: | ||
return y; | return y; | ||
}; | }; | ||
graph = board.createElement('curve', ['x', f, 'x', -10, 10], {curveType:'graph'}); | graph = board.createElement('curve', ['x', f, 'x', -10, 10], {curveType:'graph', strokeWidth:3}); | ||
d1 = board.createElement('curve', ['x', board.D(f), 'x', -10, 10], {curveType:'graph',dash:1}); | d1 = board.createElement('curve', ['x', board.D(f), 'x', -10, 10], {curveType:'graph',dash:1}); | ||
d2 = board.createElement('curve', ['x', board.D(board.D(f)), 'x', -10, 10], {curveType:'graph',dash:2}); | d2 = board.createElement('curve', ['x', board.D(board.D(f)), 'x', -10, 10], {curveType:'graph',dash:2}); |
Revision as of 18:30, 30 January 2009
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
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/prototype.js"></script>
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script>
<div id="box" class="jxgbox" style="width:600px; height:400px;"></div>
board = JXG.JSXGraph.initBoard('box', {originX: 250, originY: 250, unitX: 50, unitY: 25});
// Axes
b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
var p = [];
p[0] = board.createElement('point', [-1,2], {style:6});
p[1] = board.createElement('point', [3,-1], {style:6});
var f = function(x) {
var i;
var y = 0.0;
var xc = [];
for (i=0;i<p.length;i++) {
xc[i] = p[i].X();
}
for (i=0;i<p.length;i++) {
var t = p[i].Y();
for (var k=0;k<p.length;k++) {
if (k!=i) {
t *= (x-xc[k])/(xc[i]-xc[k]);
}
}
y += t;
}
return y;
};
graph = board.createElement('curve', ['x', f, 'x', -10, 10], {curveType:'graph'});
d1 = board.createElement('curve', ['x', board.D(f), 'x', -10, 10], {curveType:'graph',dash:1});
d2 = board.createElement('curve', ['x', board.D(board.D(f)), 'x', -10, 10], {curveType:'graph',dash:2});
function addPoint() {
p.push(board.createElement('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{style:6}));
board.update();
}