Secant and tangent: Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary |
A WASSERMANN (talk | contribs) No edit summary |
||
(24 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
< | <jsxgraph box="box" width="600" height="400"> | ||
board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var p = []; | |||
p[0] = board.create('point', [-1,0], {size:2}); | |||
p[1] = board.create('point', [-0.5,1], {size:2}); | |||
p[2] = board.create('point', [2,0.5], {size:2}); | |||
p[3] = board.create('point', [6,5], {size:2}); | |||
var pol = JXG.Math.Numerics.lagrangePolynomial(p); | |||
graph = board.create('functiongraph', [pol, -10, 10], {strokeWidth:3}); | |||
q = board. | q = board.create('glider', [4.5,0,graph], {size:5}); | ||
s = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
q2 = board. | q2 = board.create('point', [function(){ return q.X()+Math.max(s.Value(),0.01);}, | ||
function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:'[]',size:2}); | |||
e = board. | e = board.create('point', [function(){ return q2.X()-q.X();}, | ||
function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:'Sekantensteigung',trace:true}); | |||
line = board. | line = board.create('line',[q,q2],{strokeColor:'#ff0000',dash:2}); | ||
board. | </jsxgraph> | ||
</ | |||
</ | <jsxgraph box="box2" width="600" height="400"> | ||
board = JXG.JSXGraph.initBoard('box2', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var f = function(x) { return (Math.abs(x)); }; | |||
graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3}); | |||
qf = board.create('glider', [0,0,graph], {size:5}); | |||
sf = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
qf2 = board.create('point', [function(){ return qf.X()+sf.Value();}, | |||
function(){ return f(qf.X()+sf.Value());}], {face:'[]',size:2}); | |||
ef = board.create('point', [function(){ return qf2.X()-qf.X();}, | |||
function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true}); | |||
line = board.create('line',[qf,qf2],{strokeColor:'#ff0000',dash:2}); | |||
</jsxgraph> | |||
<jsxgraph box="box3" width="600" height="400"> | |||
board = JXG.JSXGraph.initBoard('box3', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var g = function(x) { return (x<=0)?0:1; }; | |||
graph = board.create('functiongraph', [g,-10, 10], {strokeWidth:3}); | |||
qg = board.create('glider', [0,0,graph], {size:4}); | |||
sg = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
qg2 = board.create('point', [function(){ return qg.X()+sg.Value();}, | |||
function(){ return g(qg.X()+sg.Value());}], {face:'[]',size:2}); | |||
eg = board.create('point', [function(){ return qg2.X()-qg.X();}, | |||
function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true}); | |||
line = board.create('line',[qg,qg2],{strokeColor:'#ff0000',dash:2}); | |||
</jsxgraph> | |||
===The underlying JavaScript code=== | |||
Construction 1: | |||
<source lang="javascript"> | |||
board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var p = []; | |||
p[0] = board.create('point', [-1,0], {size:2}); | |||
p[1] = board.create('point', [-0.5,1], {size:2}); | |||
p[2] = board.create('point', [2,0.5], {size:2}); | |||
p[3] = board.create('point', [6,5], {size:2}); | |||
var pol = JXG.Math.Numerics.lagrangePolynomial(p); | |||
graph = board.create('functiongraph', [pol, -10, 10], {strokeWidth:3}); | |||
q = board.create('glider', [4.5,0,graph], {size:5}); | |||
s = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
q2 = board.create('point', [function(){ return q.X()+Math.max(s.Value(),0.01);}, | |||
function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:'[]',size:2}); | |||
e = board.create('point', [function(){ return q2.X()-q.X();}, | |||
function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:'Sekantensteigung',trace:true}); | |||
line = board.create('line',[q,q2],{strokeColor:'#ff0000',dash:2}); | |||
</source> | |||
Construction 2: | |||
<source lang="javascript"> | |||
board = JXG.JSXGraph.initBoard('box2', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var f = function(x) { return (Math.abs(x)); }; | |||
graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3}); | |||
qf = board.create('glider', [0,0,graph], {size:5}); | |||
sf = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
qf2 = board.create('point', [function(){ return qf.X()+sf.Value();}, | |||
function(){ return f(qf.X()+sf.Value());}], {face:'[]',size:2}); | |||
ef = board.create('point', [function(){ return qf2.X()-qf.X();}, | |||
function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true}); | |||
line = board.create('line',[qf,qf2],{strokeColor:'#ff0000',dash:2}); | |||
</source> | |||
Construction 3: | |||
<source lang="javascript"> | |||
board = JXG.JSXGraph.initBoard('box3', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true}); | |||
var g = function(x) { return (x<=0)?0:1; }; | |||
graph = board.create('functiongraph', [g,-10, 10], {strokeWidth:3}); | |||
qg = board.create('glider', [0,0,graph], {size:4}); | |||
sg = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]); | |||
qg2 = board.create('point', [function(){ return qg.X()+sg.Value();}, | |||
function(){ return g(qg.X()+sg.Value());}], {face:'[]',size:2}); | |||
eg = board.create('point', [function(){ return qg2.X()-qg.X();}, | |||
function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true}); | |||
line = board.create('line',[qg,qg2],{strokeColor:'#ff0000',dash:2}); | |||
</source> | |||
[[Category:Examples]] | [[Category:Examples]] | ||
[[Category:Calculus]] |
Latest revision as of 08:26, 17 January 2024
The underlying JavaScript code
Construction 1:
board = JXG.JSXGraph.initBoard('box', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});
var p = [];
p[0] = board.create('point', [-1,0], {size:2});
p[1] = board.create('point', [-0.5,1], {size:2});
p[2] = board.create('point', [2,0.5], {size:2});
p[3] = board.create('point', [6,5], {size:2});
var pol = JXG.Math.Numerics.lagrangePolynomial(p);
graph = board.create('functiongraph', [pol, -10, 10], {strokeWidth:3});
q = board.create('glider', [4.5,0,graph], {size:5});
s = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]);
q2 = board.create('point', [function(){ return q.X()+Math.max(s.Value(),0.01);},
function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:'[]',size:2});
e = board.create('point', [function(){ return q2.X()-q.X();},
function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:'Sekantensteigung',trace:true});
line = board.create('line',[q,q2],{strokeColor:'#ff0000',dash:2});
Construction 2:
board = JXG.JSXGraph.initBoard('box2', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});
var f = function(x) { return (Math.abs(x)); };
graph = board.create('functiongraph', [f, -10, 10], {strokeWidth:3});
qf = board.create('glider', [0,0,graph], {size:5});
sf = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]);
qf2 = board.create('point', [function(){ return qf.X()+sf.Value();},
function(){ return f(qf.X()+sf.Value());}], {face:'[]',size:2});
ef = board.create('point', [function(){ return qf2.X()-qf.X();},
function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true});
line = board.create('line',[qf,qf2],{strokeColor:'#ff0000',dash:2});
Construction 3:
board = JXG.JSXGraph.initBoard('box3', {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});
var g = function(x) { return (x<=0)?0:1; };
graph = board.create('functiongraph', [g,-10, 10], {strokeWidth:3});
qg = board.create('glider', [0,0,graph], {size:4});
sg = board.create('slider', [[0,-3],[4,-3],[0.001,1,1]]);
qg2 = board.create('point', [function(){ return qg.X()+sg.Value();},
function(){ return g(qg.X()+sg.Value());}], {face:'[]',size:2});
eg = board.create('point', [function(){ return qg2.X()-qg.X();},
function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:'[]',size:2,name:'Sekantensteigung',trace:true});
line = board.create('line',[qg,qg2],{strokeColor:'#ff0000',dash:2});