70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
var l = -1.5;
|
|
var r = 1.75;
|
|
var N = 8;
|
|
|
|
const b = JXG.JSXGraph.initBoard('jsxgraph', {
|
|
boundingbox: [l, 6.0, r,-2.0], axis:true
|
|
});
|
|
|
|
var f = function(x) {return Math.pow(x,5) - x - 1};
|
|
|
|
var graph = b.create('functiongraph', [f, l, r]);
|
|
|
|
slider = b.create('slider', [[0.25, 1], [1.0, 1], [0,0,N-1]],
|
|
{snapWidth:1,
|
|
suffixLabel:"n = "});
|
|
|
|
var intervals = [[0,1.5]];
|
|
|
|
for (i = 1; i < N; i++) {
|
|
var old = intervals[i-1];
|
|
var ai = old[0];
|
|
var bi = old[1];
|
|
var ci = (ai + bi)/2;
|
|
var fa = f(ai);
|
|
var fb = f(bi);
|
|
var fc = f(ci);
|
|
if (fc == 0) {
|
|
var newint = [ci, ci];
|
|
} else if (fa * fc < 0) {
|
|
var newint = [ai, ci];
|
|
} else {
|
|
var newint = [ci, bi];
|
|
}
|
|
intervals.push(newint);
|
|
};
|
|
|
|
b.create('functiongraph', [f,
|
|
function() {
|
|
var n = slider.Value();
|
|
return intervals[n][0];
|
|
},
|
|
function() {
|
|
var n = slider.Value();
|
|
return intervals[n][1];
|
|
}
|
|
], {strokeWidth:5});
|
|
|
|
var seg = b.create("segment", [function() {
|
|
var n = slider.Value();
|
|
var ai = intervals[n][0];
|
|
return [ai, 0];
|
|
},
|
|
function() {
|
|
var n = slider.Value();
|
|
var bi = intervals[n][1];
|
|
return [bi, 0];
|
|
}], {strokeWidth: 5});
|
|
|
|
b.create("point", [function() {
|
|
var n = slider.Value();
|
|
var ai = intervals[n][0]
|
|
return ai;
|
|
}, 0], {name:"a_n"});
|
|
|
|
b.create("point", [function() {
|
|
var n = slider.Value();
|
|
var bi = intervals[n][1]
|
|
return bi;
|
|
}, 0], {name: "b_n"});
|