Difference between revisions of "Convergence of series"

From JSXGraph Wiki
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
<p>
 
<p>
 
nth-element of the series: <input type="text" id="input" value="1 / 2^n">
 
nth-element of the series: <input type="text" id="input" value="1 / 2^n">
start summation at n = <input type="number" id="startval" value="1" style="width:2em"><br />
+
start summation at n = <input type="number" id="startval" value="0" style="width:2em"><br />
 
<input type="button" value="start" onClick="start_approx()">
 
<input type="button" value="start" onClick="start_approx()">
 
<input type="button" value="stop" onClick="clear_all()">
 
<input type="button" value="stop" onClick="clear_all()">
Line 37: Line 37:
 
var a_n;
 
var a_n;
 
var start_approx = function() {
 
var start_approx = function() {
 +
  series.dataX = [];
 +
  series.dataY = [];
 +
 
   var txtraw = document.getElementById('input').value;
 
   var txtraw = document.getElementById('input').value;
 
   a_n = board.jc.snippet(txtraw, true, 'n', true);
 
   a_n = board.jc.snippet(txtraw, true, 'n', true);
Line 45: Line 48:
 
var clear_all = function() {
 
var clear_all = function() {
 
   clearTimeout(TO);
 
   clearTimeout(TO);
  series.dataX = [];
 
  series.dataY = [];
 
  n = 0;
 
 
};
 
};
  
Line 55: Line 55:
 
<source lang="javascript">
 
<source lang="javascript">
 
  var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 8, 50, -8]});
 
  var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 8, 50, -8]});
  var series = board.create('curve', [[0], [1]], {strokeColor: 'black'});
+
  var series = board.create('curve', [[], []], {strokeColor: 'black'});
 +
var n;
 
   
 
   
 
  var series_add = function() {
 
  var series_add = function() {
     var n = series.dataX.length,
+
     var val = a_n(n);
        val = series.dataY[n - 1] + a_n(n);
+
    if (series.dataY.length > 0) {
 +
      val += series.dataY[series.dataY.length - 1];
 +
    }
 
     series.dataX.push(n);
 
     series.dataX.push(n);
 
     series.dataY.push(val);
 
     series.dataY.push(val);
 +
    n++;
 
  };
 
  };
  
Line 78: Line 82:
 
var a_n;
 
var a_n;
 
var start_approx = function() {
 
var start_approx = function() {
 +
  series.dataX = [];
 +
  series.dataY = [];
 +
 
   var txtraw = document.getElementById('input').value;
 
   var txtraw = document.getElementById('input').value;
 
   a_n = board.jc.snippet(txtraw, true, 'n', true);
 
   a_n = board.jc.snippet(txtraw, true, 'n', true);
 +
  n = parseInt(document.getElementById('startval').value);
 
   approx();
 
   approx();
 
}
 
}
Line 85: Line 93:
 
var clear_all = function() {
 
var clear_all = function() {
 
   clearTimeout(TO);
 
   clearTimeout(TO);
  series.dataX = [0];
 
  series.dataY = [1];
 
 
};
 
};
 +
 
</source>
 
</source>
  
 
[[Category:Examples]]
 
[[Category:Examples]]
 
[[Category:Calculus]]
 
[[Category:Calculus]]

Latest revision as of 11:36, 30 January 2019

Compute partial sums of the series [math] \sum_{n=0}^\infty a_n[/math].

nth-element of the series: start summation at n =

The underlying JavaScript code

 var board = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-3, 8, 50, -8]});
 var series = board.create('curve', [[], []], {strokeColor: 'black'});
 var n;
 
 var series_add = function() {
    var val = a_n(n);
    if (series.dataY.length > 0) {
      val += series.dataY[series.dataY.length - 1];
    }
    series.dataX.push(n);
    series.dataY.push(val);
    n++;
 };

 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 TO;

var approx = function() {
     series_add();
     board.update();
     if (series.dataX.length <= 50) {
         TO = setTimeout(approx, 500);
     }
};

var a_n;
var start_approx = function() {
  series.dataX = [];
  series.dataY = [];

  var txtraw = document.getElementById('input').value;
  a_n = board.jc.snippet(txtraw, true, 'n', true);
  n = parseInt(document.getElementById('startval').value);
  approx();
}

var clear_all = function() {
  clearTimeout(TO);
};