Approximation of e: Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary  | 
				A WASSERMANN (talk | contribs) No edit summary  | 
				||
| (10 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
This little animation approximates <math>e</math> (displayed by the horizontal green line) by the sequence (blue line)  | |||
:<math>(1+\frac{1}{n})^n</math>  | |||
and by the series (black line)  | |||
:<math> \sum_{n=0}^\infty \frac{1}{n!} </math>  | |||
<jsxgraph width="500" height="500" box="box">  | <jsxgraph width="500" height="500" box="box">  | ||
(function(){  | (function(){  | ||
  var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-  |   var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 3, 50, 0.5]});  | ||
  var line = board.create('line', [[-10, Math.E], [100, Math.E]], {strokeColor: 'green', strokeWidth: 1});  |   var line = board.create('line', [[-10, Math.E], [100, Math.E]], {strokeColor: 'green', strokeWidth: 1});  | ||
  var seq = board.create('curve', [[0], [1]], {strokeColor: 'blue'});  |   var seq = board.create('curve', [[0], [1]], {strokeColor: 'blue'});  | ||
| Line 18: | Line 24: | ||
     var n = series.dataX.length,  |      var n = series.dataX.length,  | ||
         val = series.dataY[n - 1] + 1 / JXG.Math.factorial(n);  |          val = series.dataY[n - 1] + 1 / JXG.Math.factorial(n);  | ||
    series.dataX.push(n);  | |||
    series.dataY.push(val);  | |||
 };  | |||
 var txt1 = board.create('text', [15, 1.6, function() { return 'n=' + (seq.dataX.length-1) + ': value = ' + seq.dataY[seq.dataY.length - 1]; }], {strokeColor: 'blue'});  | |||
 var txt2 = board.create('text', [15, 1.8, function() { return 'n=' + (series.dataX.length-1) + ': value = ' + series.dataY[series.dataY.length - 1]; }], {strokeColor: 'black'});  | |||
 var approx = function() {  | |||
     seq_add();  | |||
     series_add();  | |||
     board.update();  | |||
     if (seq.dataX.length <= 50) {  | |||
         setTimeout(approx, 500);  | |||
     }  | |||
 }  | |||
 approx();  | |||
})();  | |||
</jsxgraph>  | |||
=== The underlying JavaScript code ===  | |||
<source lang="javascript">  | |||
 var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 3, 50, 0.5]});  | |||
 var line = board.create('line', [[-10, Math.E], [100, Math.E]], {strokeColor: 'green', strokeWidth: 1});  | |||
 var seq = board.create('curve', [[0], [1]], {strokeColor: 'blue'});  | |||
 var seq_add = function() {  | |||
    var n = seq.dataX.length,  | |||
        val = Math.pow(1 + 1/n, n);  | |||
     seq.dataX.push(n);  |      seq.dataX.push(n);  | ||
     seq.dataY.push(val);  |      seq.dataY.push(val);  | ||
  };  |   };  | ||
 var series = board.create('curve', [[0], [1]], {strokeColor: 'black'});  | |||
 var series_add = function() {  | |||
    var n = series.dataX.length,  | |||
        val = series.dataY[n - 1] + 1 / JXG.Math.factorial(n);  | |||
    series.dataX.push(n);  | |||
    series.dataY.push(val);  | |||
 };  | |||
 var txt1 = board.create('text', [15, 1.6, function() { return 'n=' + (seq.dataX.length-1) + ': value = ' + seq.dataY[seq.dataY.length - 1]; }], {strokeColor: 'blue'});  | |||
 var txt2 = board.create('text', [15, 1.8, function() { return 'n=' + (series.dataX.length-1) + ': value = ' + series.dataY[series.dataY.length - 1]; }], {strokeColor: 'black'});  | |||
  var approx = function() {  |   var approx = function() {  | ||
| Line 26: | Line 74: | ||
      series_add();  |       series_add();  | ||
      board.update();  |       board.update();  | ||
     if (seq.dataX.length <= 50) {  | |||
         setTimeout(approx, 500);  | |||
     }  | |||
  }  |   }  | ||
 approx();  | |||
</source>  | |||
[[Category:Examples]]  | |||
[[Category:Calculus]]  | |||
Latest revision as of 22:18, 6 January 2019
This little animation approximates [math]\displaystyle{ e }[/math] (displayed by the horizontal green line) by the sequence (blue line)
- [math]\displaystyle{ (1+\frac{1}{n})^n }[/math]
 
and by the series (black line)
- [math]\displaystyle{ \sum_{n=0}^\infty \frac{1}{n!} }[/math]
 
The underlying JavaScript code
 var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 3, 50, 0.5]});
 var line = board.create('line', [[-10, Math.E], [100, Math.E]], {strokeColor: 'green', strokeWidth: 1});
 var seq = board.create('curve', [[0], [1]], {strokeColor: 'blue'});
 
 var seq_add = function() {
    var n = seq.dataX.length,
        val = Math.pow(1 + 1/n, n);
    seq.dataX.push(n);
    seq.dataY.push(val);
 };
 var series = board.create('curve', [[0], [1]], {strokeColor: 'black'});
 
 var series_add = function() {
    var n = series.dataX.length,
        val = series.dataY[n - 1] + 1 / JXG.Math.factorial(n);
    series.dataX.push(n);
    series.dataY.push(val);
 };
 var txt1 = board.create('text', [15, 1.6, function() { return 'n=' + (seq.dataX.length-1) + ': value = ' + seq.dataY[seq.dataY.length - 1]; }], {strokeColor: 'blue'});
 var txt2 = board.create('text', [15, 1.8, function() { return 'n=' + (series.dataX.length-1) + ': value = ' + series.dataY[series.dataY.length - 1]; }], {strokeColor: 'black'});
 var approx = function() {
     seq_add();
     series_add();
     board.update();
     if (seq.dataX.length <= 50) {
         setTimeout(approx, 500);
     }
 }
 approx();