EquationImplicitFunction1

From WeBWorK_wiki
Revision as of 00:45, 4 December 2010 by Pearson (talk | contribs)
Jump to navigation Jump to search

Answer is an Equation that Implicitly Defines a Function

Click to enlarge

This PG code shows how to have an answer that is an equation that implicitly defines a function.

  • Download file: File:EquationImplicitFunction1.txt (change the file extension from txt to pg when you save it)
  • File location in NPL: FortLewis/Authoring/Templates/Algebra/EquationImplicitFunction1.pg


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();   

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"parserImplicitEquation.pl",
"AnswerFormatHelp.pl",
);     

TEXT(beginproblem());

Initialization:

Context("ImplicitEquation");
Context()->{error}{msg}{
"Can't find any solutions to your equation"} = " ";
Context()->{error}{msg}{
"Can't generate enough valid points for comparison"} = " ";

Context()->variables->set(
  x=>{limits=>[-6,11]},
  y=>{limits=>[-6,11]},
);

$a = random(1,5,1);
$b = random(1,5,1);
$r = random(2,5,1);

$answer = ImplicitEquation(
  "(x-$a)^2 + (y-$b)^2 = $r^2",
  solutions=>[ 
     [$a,$b+$r],
     [$a,$b-$r],
     [$a+$r,$b],
     [$a-$r,$b],
     [$a+$r*sqrt(2)/2,$b+$r*sqrt(2)/2],
  ]
);

Setup: We quash some error messages by redefining them to be a blank string " " (notice the space). Since the circle will always be contained in a rectangle with two opposite corners at (-4,-4) and (10,10), we set the limits for the variables x and y to be outside of this rectangle. The ImplicitEquation object allows us to specify as many solutions as we like, and doing so should improve the accuracy of the answer evaluator.

Context()->texStrings;
BEGIN_TEXT
Enter an equation for a circle in the xy-plane 
of radius \( $r \) centered at \( ($a,$b) \).
$BR
$BR
\{ ans_rule(40) \}
\{ AnswerFormatHelp("equation") \}
END_TEXT
Context()->normalStrings;

Main Text:

$showPartialCorrectAnswers = 1;

ANS( $answer->cmp() );

Answer Evaluation: The answer evaluator used is very sensitive and finicky. We strongly recommended that you read about it at parserImplicitEquation.pl.html

Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT("MathObject version.");

ENDDOCUMENT();

Solution:

Templates by Subject Area