Difference between revisions of "FormulaDomain1"

From WeBWorK_wiki
Jump to navigation Jump to search
(Created page with '<h2>Answer is a Function with Domain Issues</h2> 300px|thumb|right|Click to enlarge <p style="background-color:#f9f9f9;border:black solid 1px;padding…')
 
Line 140: Line 140:
 
<p>
 
<p>
 
<b>Answer Evaluation:</b>
 
<b>Answer Evaluation:</b>
It is possible to specify the limits and test points for evaluation in the argument to <code>cmp()</code>. For more details, please see [http://webwork.maa.org/wiki/FormulaTestPoints formula test points] in the index of problem techniques.
 
  +
It is possible to get diagnostic information about the answer checker using <code>cmp(diagnostics=>1)</code>.
 
</p>
 
</p>
 
<p>
 
<p>

Revision as of 01:20, 6 December 2010

Answer is a Function with Domain Issues

Click to enlarge

This PG code shows how to set the domain and test points for a formula.

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


Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

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

TEXT(beginproblem());

Initialization: We load AnswerFormatHelp.pl to provide help links to students. We load answerHints.pl to provide customized answer hints in the answer evaluation section.

Context("Numeric");

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

$answer1 = Compute("sqrt(x-$a)");
$answer1->{limits} = [$a+1,$a+4];

$answer2 = Compute("ln(abs( x / (x-$a) ))");
$answer2->{test_points} = [[-5],[-4],[1],[$a-1],[7],[8]];

Setup: We restrict the domain of function evaluation using $answer1->{limits} = [$a+1,$a+4];, which will choose test points at random in the interval [$a+1,$a+4]

The domain for $answer2 is all real numbers except for 0 and $a, and we would like to stay away from these vertical asymptotes because answer evaluators don't work well when the function values are very large or very small. Thus, we explicitly list those test points in the domain that will be used when the function is evaluated.

It is possible to set the domain once for all of the functions within a particular context. For more details, please see formula test points in the index of problem techniques.

Context()->texStrings;
BEGIN_TEXT
(a) Suppose the first answer is 
\( \displaystyle $answer1 \).
$BR
\{ ans_rule(20) \}
\{ AnswerFormatHelp("formulas") \}
$BR
$BR
(b) Suppose the second answer is 
\( \displaystyle $answer2 \)
$BR
\{ ans_rule(20) \}
\{ AnswerFormatHelp("formulas") \}
END_TEXT
Context()->normalStrings;

Main Text: Notice that in this multipart question we have grouped the text for each part together in a block, put each answer blank on a new line immediately below each block of text, and added extra space between each part. This should make the question easy to read both in HTML and PDF format.

$showPartialCorrectAnswers = 1;

ANS( $answer1->cmp() );

ANS( $answer2->cmp()
->withPostFilter(AnswerHints(
  [Compute("ln(x/(x-$a))"),Compute("ln(x)-ln(x-$a)")] => 
  "Don't forget to use absolute value",
)) 
);

Answer Evaluation: It is possible to get diagnostic information about the answer checker using cmp(diagnostics=>1).

For the second answer, we have used AnswerHints to give students who enter particular answers customized feedback messages. For more details, please see answer hints in the index of problem techniques.

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

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area