LinearApprox1
From WeBWorK
Linear Approximation With Answer Hints
This PG code shows how to ask a linear approximation question in which the answer is an equation and students receive customized answer hints.
 File location in OPL: FortLewis/Authoring/Templates/DiffCalc/LinearApprox1.pg
 PGML location in OPL: FortLewis/Authoring/Templates/DiffCalc/LinearApprox1_PGML.pg
PG problem file  Explanation 

Problem tagging: 

DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "AnswerFormatHelp.pl", "answerHints.pl", "parserAssignment.pl", ); TEXT(beginproblem()); 
Initialization:
We load 
Context("Numeric")>variables>add(y=>"Real"); parser::Assignment>Allow; $a = random(2,5,1); $aa = $a**2; $a2 = 2 * $a; $f = Compute("sqrt(x)"); $answer = Compute("y = $a + (1/$a2) * (x$aa)"); 
Setup: We have to tell the context that we are allowing the assignment of a variable to a formula. 
Context()>texStrings; BEGIN_TEXT Find the linear approximation to \( f(x) = $f \) at \( x = $aa \). Your answer should be an equation in the variables \( x \) and \( y \). $BR $BR \{ ans_rule(20) \} \{ AnswerFormatHelp("equations") \} END_TEXT Context()>normalStrings; 
Main Text: 
$showPartialCorrectAnswers = 1; ANS( $answer>cmp() >withPostFilter(AnswerHints( [Formula("1/$a2"),Formula("y=1/$a2")] => ["Your answer should be an equation for a nonhorizontal line.", replaceMessage=>1], )) ); 
Answer Evaluation: We use answer hints to remind students to enter an equation for a line, not just the slope of the line. 
Context()>texStrings; BEGIN_SOLUTION Solution explanation goes here. END_SOLUTION Context()>normalStrings; COMMENT("MathObject version."); ENDDOCUMENT(); 
Solution: 