Difference between revisions of "FormulasToConstants"
Line 72: | Line 72: | ||
<td style="background-color:#eeccff;padding:7px;"> |
<td style="background-color:#eeccff;padding:7px;"> |
||
<p> |
<p> |
||
− | And then in the answer and solution section of the file we rely on the MathObjects <code>cmp()</code> method. By specifying the <code>upToConstant=>1</code> flag for <code>cmp()</code>, we allow the student's answer to differ from the correct answer by any specific constant. |
+ | And then in the answer and solution section of the file we rely on the MathObjects <code>cmp()</code> method. By specifying the <code>upToConstant=>1</code> flag for <code>cmp()</code>, we allow the student's answer to differ from the correct answer by any specific constant. <code>sin(x)</code> and <code>sin(x)+5</code> are both marked as correct but <code> sin(x) +C </code> is not correct since it is a family of answers and not a single anti-derivative. |
− | + | ||
− | < |
+ | Note that for the formula up to an arbitrary constant the comparison will correctly mark students' answers that have different arbitrary constants: thus, a student answer of <code>sin(x)+k</code> to the second question here will be marked correct as will <code>sin(x) +c </code>. |
− | Note that for the formula up to an arbitrary constant the comparison will correctly mark students' answers that have different arbitrary constants: thus, a student answer of <code>sin(x)+k</code> to the second question here will be marked correct. |
||
</p> |
</p> |
||
</td> |
</td> |
Revision as of 15:52, 10 June 2008
Formulas Up To Constants: PG Code Snippet
This code snippet shows the essential PG code to evaluate antderivative and general antiderivative formulas. Note that these are insertions, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.
There are two types of comparison that we're interested in here: one is "an antiderivative of f(x)", and the other is "the most general antiderivative of f(x)". The former requires that the student answers F(x), F(x)+1, F(x)-sqrt(8), etc., all be marked correct, and the latter, that F(x)+C, F(x)+5-k, etc., all be marked correct. These are both illustrated below.
It is possible to do some of this type of comparison with old-style answer checkers. This is shown in a table below.
PG problem file | Explanation |
---|---|
loadMacros("parserFormulaUpToConstant.pl"); |
To check the most general antiderivative of a function, that is, a formula up to an arbitrary additive constant, we need to load the |
$func = Formula("sin(x)"); $gfunc = FormulaUpToConstant("sin(x)+C"); |
In the problem set-up section of the problem file, we define an antiderivative function, |
BEGIN_TEXT An antiderivative of \(cos(x)\) is \{ ans_rule(15) \} $BR The most general antiderivative is \{ ans_rule(15) \} END_TEXT |
In the text section of the file we ask for the answers as usual. |
ANS( $func->cmp(upToConstant=>1) ); ANS( $gfunc->cmp() ); |
And then in the answer and solution section of the file we rely on the MathObjects |
With old-style answer checkers we can check antiderivatives, but checking the most general antiderivative is much less elegant, as we have to require that the student use a specific constant of integration.
PG problem file | Explanation |
---|---|
$func = "sin(x)"; $gfunc = "sin(x)+C"; |
In this case we need no additional macros, and so do not change the description and tagging or initialization sections of the file. In the problem set-up section we specify the function(s) to evaluate. |
BEGIN_TEXT An antiderivative of \(cos(x)\) is \{ ans_rule(15) \} $BR The most general antiderivative is \{ ans_rule(15) \} $BR ${BITALIC}(Use "C" for any arbitrary constant of integration in your answer.)$EITALIC END_TEXT |
In the text section of the problem we ask for the functions. Because we require that the most general antiderivative use the constant |
ANS( fun_cmp( $func, mode=>"antider" ) ); ANS( fun_cmp( $gfunc, mode=>"antider", var=>["x","C"] ) ); |
When checking the answer in the answer and solutions section of the file, we specify |