randRange( -8, 8 ) randRange( -8, 8 ) abs ( Y_ORIG ) < 5 ? randRangeNonZero( -1, 1 ) : -abs ( Y_ORIG )/ Y_ORIG X_ORIG > 0 ? randRange( -6, -1 ) : randRange( 1, 6 ) randRangeNonZero(-1, 1) randRangeNonZero( -6 , 6 )

\color{red}{f(x)} jest na rysunku na czerwono.

\color{blue}{g(x)} jest na rysunku na niebiesko.

Ile wynosi \color{blue}{g(x)} dla \color{red}{f(x)}?

graphInit({ range: 10, scale: 20, labelStep: 1, axisArrows: "<->" }) style({ stroke: "red", strokeWidth: 2, arrows: null }); plot( function( x ) { return UP_ORIG * pow(( x + X_ORIG), 2 ) + Y_ORIG; }, [-10, 10]); style({ stroke: "blue" }); plot( function( x ) { return FLIP * UP_ORIG * pow(( x + X_ORIG + X_SHIFT), 2 ) + FLIP * Y_ORIG + Y_SHIFT; }, [-10, 10]);

expr(["+",["*", FLIP, ["*", "f", ["+","x", X_SHIFT]]],Y_SHIFT])

  • expr(["+",["*", FLIP, ["*", "f", ["+","x", X_SHIFT]]],-Y_SHIFT])
  • expr(["+",["*", FLIP, ["*", "f", ["+","x", -X_SHIFT]]],Y_SHIFT])
  • expr(["+",["*", -FLIP, ["*", "f", ["+","x", X_SHIFT]]],Y_SHIFT])
  • expr(["+",["*", FLIP, ["*", "f", ["+","x", -X_SHIFT]]],-Y_SHIFT])

Żeby przejść od f(x) do g(x), po pierwsze "odwróć" f(x) pionowo mnożąc przez -1 otrzymując -f(x).

style({ stroke: "purple" }); plot( function( x ) { return FLIP * UP_ORIG * pow(( x + X_ORIG ), 2 ) - Y_ORIG; }, [-10, 10]);

Przesuń funkcję -f(x) (Y_SHIFT > 0 ? "w górę " : "w dół ") o units(abs(Y_SHIFT)) otrzymując expr(["+",["*", FLIP,"f(x)"], Y_SHIFT]).

style({ strokeWidth: 2, stroke: "green", arrows: "->", strokeDasharray: "- " }); plot( function( x ) { return FLIP * UP_ORIG * pow(( x + X_ORIG ), 2 ) + FLIP * Y_ORIG + Y_SHIFT; }, [-10, 10]); strokeDasharray: "- " style({ strokeWidth: 2, strokeDasharray: "" }); path([ [-X_ORIG, FLIP * Y_ORIG], [-X_ORIG, FLIP * Y_ORIG + Y_SHIFT] ]);

Teraz przesuń funkcję expr(["+",["*", FLIP,"f(x)"], Y_SHIFT]) (X_SHIFT > 0 ? "w lewo " : "w prawo ") o units(abs(X_SHIFT)) otrzymując expr(["+",["*", FLIP, ["*", "f", ["+","x", X_SHIFT]]], Y_SHIFT]).

Teraz wiemy, że g(x) = expr(["+",["*", FLIP, ["*", "f", ["+","x", X_SHIFT]]],Y_SHIFT]).

style({ stroke: "blue", strokeWidth: 2, strokeDasharray: "" }); path([ [ -X_ORIG, FLIP * Y_ORIG + Y_SHIFT ], [ -X_ORIG - X_SHIFT , FLIP * Y_ORIG + Y_SHIFT] ]);