1 randRange( -4, 4 ) randRange( [ -5, -7, -8, -9, -9, -9, -8, -7, -5 ][ B + 4 ], [ -3, -1, 1, 3, 5, 3, 1, -1, -3 ][ B + 4 ] )

Graph the following equation:

graphInit({ range: 11, scale: 20, axisArrows: "<->", tickStep: 1, labelStep: 1, gridOpacity: 0.05, axisOpacity: 0.2, tickOpacity: 0.4, labelOpacity: 0.5 }); label( [ 0, 11 ], "y", "above" ); label( [ 11, 0 ], "x", "right" ); addMouseLayer(); graph.pointA = addMovablePoint({ coord: [ 5, 5 ], snapX: 0.5, snapY: 0.5, normalStyle: { stroke: KhanUtil.BLUE, fill: KhanUtil.BLUE } }); graph.pointB = addMovablePoint({ coord: [ -5, 5 ], snapX: 0.5, snapY: 0.5, normalStyle: { stroke: KhanUtil.BLUE, fill: KhanUtil.BLUE } }); graph.pointC = addMovablePoint({ coord: [ 0, 5 ], snapX: 0.5, snapY: 0.5, normalStyle: { stroke: KhanUtil.BLUE, fill: KhanUtil.BLUE } }); // returns true if the three points don't form a parabola (that opens vertically) graph.invalid = function( p1, p2, p3 ) { return ( ( p1[ 0 ] - p2[ 0 ] ) * ( p1[ 0 ] - p3[ 0 ] ) * ( p2[ 0 ] - p3[ 0 ] ) === 0 ); }; // Fits a parabola to 3 points graph.fitParabola = function( p1, p2, p3 ) { var denom = (p1[0] - p2[0]) * (p1[0] - p3[0]) * (p2[0] - p3[0]); if ( denom !== 0 ) { var A = (p3[0] * (p2[1] - p1[1]) + p2[0] * (p1[1] - p3[1]) + p1[0] * (p3[1] - p2[1])) / denom; var B = ((p3[0] * p3[0]) * (p1[1] - p2[1]) + (p2[0] * p2[0]) * (p3[1] - p1[1]) + (p1[0] * p1[0]) * (p2[1] - p3[1])) / denom; var C = (p2[0] * p3[0] * (p2[0] - p3[0]) * p1[1] + p3[0] * p1[0] * (p3[0] - p1[0]) * p2[1] + p1[0] * p2[0] * (p1[0] - p2[0]) * p3[1]) / denom; return [ A, B, C ]; } else { return [ 0, 0, 0 ]; } }; // A and B can't be in the same place graph.pointA.onMove = function( x, y ) { if ( graph.invalid( [ x, y ], graph.pointB.coord, graph.pointC.coord ) ) { return false; } graph.pointA.coord = [ x, y ]; graph.drawParabola(); }; graph.pointB.onMove = function( x, y ) { if ( graph.invalid( graph.pointA.coord, [ x, y ], graph.pointC.coord ) ) { return false; } graph.pointB.coord = [ x, y ]; graph.drawParabola(); }; graph.pointC.onMove = function( x, y ) { if ( graph.invalid( graph.pointA.coord, graph.pointB.coord, [ x, y ] ) ) { return false; } graph.pointC.coord = [ x, y ]; graph.drawParabola(); }; graph.parabola = bogusShape; graph.drawParabola = function() { graph.parabola.remove(); var coeffs = graph.fitParabola( graph.pointA.coord, graph.pointB.coord, graph.pointC.coord ); style({ stroke: KhanUtil.BLUE }, function() { // Plot the parabola var a = coeffs[0], b = coeffs[1], c = coeffs[2]; graph.parabola = parabola(a, b, c); graph.parabola.toBack(); }); }; graph.drawParabola(); graph.showSolution = function() { $( "html, body" ).animate({ scrollTop: $( ".question" ).offset().top }, { duration: 500, easing: "swing", complete: function() { var coords = { x1: graph.pointA.coord[0], y1: graph.pointA.coord[1], x2: graph.pointB.coord[0], y2: graph.pointB.coord[1], x3: graph.pointC.coord[0], y3: graph.pointC.coord[1] }; $( coords ).delay( 100 ).animate({ x1: 2, y1: 2 * 2 + B * 2 + C, x2: -2, y2: -2 * -2 + B * -2 + C, x3: 0, y3: C }, { duration: 500, easing: "linear", step: function( now, fx ) { coords[ fx.prop ] = now; graph.pointA.setCoord([ coords.x1, coords.y1 ]); graph.pointB.setCoord([ coords.x2, coords.y2 ]); graph.pointC.setCoord([ coords.x3, coords.y3 ]); graph.drawParabola(); } }); } }); };
Drag the three points to graph the equation.
[ graph.pointA.coord, graph.pointB.coord, graph.pointC.coord ]
var coeffs = graph.fitParabola( graph.pointA.coord, graph.pointB.coord, graph.pointC.coord ); if ( coeffs[0] === 0 && coeffs[1] === 0 && coeffs[2] === 5 ) { return ""; } return abs( A - coeffs[0] ) < 0.001 && abs( B - coeffs[1] ) < 0.001 && abs( C - coeffs[2] ) < 0.001;
graph.pointA.setCoord( guess[0] ); graph.pointB.setCoord( guess[1] ); graph.pointC.setCoord( guess[2] ); graph.drawParabola();

`y = plus( "x^2", B + "x", C )`

Create a table of `x` and `y` values by plugging different values of `x` into the equation and plot each value:

`x` `\hphantom{= } \quad y`
`x` `\color{BLUE}{plus( "(" + x + ")^2", B + "(" + x + ")", C )}` `= \quad \color{PINK}{x * x + B * x + C}`
var y = x * x + B * x + C; style({ stroke: PINK, strokeWidth: 3 }, function() { line( [ x - 0.3, y - 0.3 ], [ x + 0.3, y + 0.3 ] ).toBack(); line( [ x - 0.3, y + 0.3 ], [ x + 0.3, y - 0.3 ] ).toBack(); });

There is only one graph of a parabola that passes through all of the `(\color{GREEN}{x}, \color{PINK}{y})` points we plotted.