Approximation of e: Difference between revisions
From JSXGraph Wiki
| A WASSERMANN (talk | contribs) No edit summary | A WASSERMANN (talk | contribs) No edit summary | ||
| (3 intermediate revisions by the same user not shown) | |||
| Line 8: | Line 8: | ||
| (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 28: | Line 28: | ||
|   }; |   }; | ||
|   var txt1 = board.create('text', [15, 1. |   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,  |   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.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 36: | 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();
