# Rational functions

Polynomial $f$:

Polynomial $g$:

Rational function $\frac{f}{g}$:

### The underlying JavaScript source code

        board = JXG.JSXGraph.initBoard('box1', {originX: 300, originY: 100, unitX: 30, unitY: 25});
// Axes
b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
b1axisy = board.createElement('axis', [[0,0], [0,1]], {});

var p = [];
var q = [];
p[0] = board.createElement('point', [-1,2], {style:6});
p[1] = board.createElement('point', [3,-1], {style:6});
var f = board.lagrangePolynomial(p);
graph = board.createElement('curve', ['x', f, 'x', -10, 10], {curveType:'graph'});

p.push(board.createElement('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{style:6}));
board.update();
}

board2 = JXG.JSXGraph.initBoard('box2', {originX: 300, originY: 100, unitX: 30, unitY: 25});
// Axes
b1axisx2 = board2.createElement('axis', [[0,0], [1,0]], {});
b1axisy2 = board2.createElement('axis', [[0,0], [0,1]], {});

q[0] = board2.createElement('point', [-1,2], {style:6});
q[1] = board2.createElement('point', [3,-1], {style:6});
var f2 = board2.lagrangePolynomial(p);
graph2 = board2.createElement('curve', ['x', f2, 'x', -10, 10], {curveType:'graph'});

q.push(board2.createElement('point',[(Math.random()-0.5)*10,(Math.random()-0.5)*3],{style:6}));
board2.update();
}

board3 = JXG.JSXGraph.initBoard('box3', {originX: 300, originY: 200, unitX: 30, unitY: 25});
// Axes
b1axisx3 = board3.createElement('axis', [[0,0], [1,0]], {});
b1axisy3 = board3.createElement('axis', [[0,0], [0,1]], {});
graph3 = board3.createElement('curve', ['x', function(x){return f(x)/f2(x);}, 'x', -10, 10], {curveType:'graph',strokeColor:'#ff0000'});