From WeBWorK
Jump to: navigation, search

Shifting and Scaling Graphs or Graph Transformations

This PG code shows how to check a student answer that is a shifted and scaled version of a named function.

Problem Techniques Index

PG problem file Explanation



Initialization: We need to include the macros file

parserFunction("f(x)" => "e^(x/pi)+sin(e*x)");

$answer = Formula("-f(-2x)+1");

foreach my $i (0..1) {
 $gr[$i] = init_graph(-5,-5,5,5,axes=>[0,0],grid=>[10,10],size=>[400,400]);
 $gr[$i]->lb( new Label(4.5,0.25,'x','black','center','middle'));
 $gr[$i]->lb( new Label(0.25,4.5,'y','black','center','middle'));

 foreach my $j (1..4) {
  $gr[$i]->lb( new Label(-4.5, $j, $j,'black','center','middle'));
  $gr[$i]->lb( new Label(-4.5,-$j,-$j,'black','center','middle'));
  $gr[$i]->lb( new Label($j, -4.5, $j,'black','center','middle'));
  $gr[$i]->lb( new Label(-$j,-4.5,-$j,'black','center','middle'));


$gr[0]->moveTo(-4, 3);
$gr[0]->lineTo(-2, 3,'blue',3);
$gr[0]->lineTo( 0, 0,'blue',3);
$gr[0]->lineTo( 2, 1,'blue',3);

$gr[1]->moveTo(-1, 0);
$gr[1]->lineTo( 0, 1,'red',3);
$gr[1]->lineTo( 1,-2,'red',3);
$gr[1]->lineTo( 2,-2,'red',3);

foreach my $i (0..1) {
  $fig[$i] = image(insertGraph($gr[$i]),width=>400,height=>400,tex_size=>450);

Setup: First, we define a named function f and add it to the context so that students will be able to enter answers of the form a f(b(x-c)) + d. We intentionally choose a formula for f that students are unlikely to guess. Also, we make sure that f as a function that is defined everywhere and has moderately sized values so that the answer checker doesn't have any problems.

Second, we graph some piecewise functions for which students will be unable to enter an explicit formula. To make this example easier to follow, we did not randomize this question.

The graph of a function \( y = f(x) \) is given in the figure on the left.
The graph of the function \( g(x) \) on the right can be obtained from the 
graph of \( f \) by horizontal and vertical scaling and shifting.  
What is a formula for \( g(x) \) in terms of \( f(x) \)?
\( g(x) \) = \{ ans_rule(20) \}
AlignedRow(["Graph of \( f(x) \)","Shifted and scaled graph \( g(x) \)"]).

Main Text: We use a table to display the graphs nicely.

$showPartialCorrectAnswers = 1;

ANS( $answer->cmp() );


Answer Evaluation: Standard.

Problem Techniques Index

follow us