DifferentiateFunction1: Difference between revisions
No edit summary |
(add historical tag and give links to newer problems.) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{historical}} | |||
<p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/DiffCalc/DifferentiateFunction.html a newer version of this problem]</p> | |||
<h2>Differentiating and Evaluating a Function</h2> | <h2>Differentiating and Evaluating a Function</h2> | ||
Line 5: | Line 10: | ||
This PG code shows how to create a function using MathObjects, differentiate it, and evaluate it. | This PG code shows how to create a function using MathObjects, differentiate it, and evaluate it. | ||
</p> | </p> | ||
* | <!--* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/DiffCalc/DifferentiateFunction1.pg FortLewis/Authoring/Templates/DiffCalc/DifferentiateFunction1.pg] --> | ||
* | * PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/DiffCalc/DifferentiateFunction1_PGML.pg FortLewis/Authoring/Templates/DiffCalc/DifferentiateFunction1_PGML.pg] | ||
<br clear="all" /> | <br clear="all" /> | ||
Line 16: | Line 21: | ||
<tr valign="top"> | <tr valign="top"> | ||
<th> PG problem file </th> | <th style="width: 50%"> PG problem file </th> | ||
<th> Explanation </th> | <th> Explanation </th> | ||
</tr> | </tr> | ||
Line 43: | Line 48: | ||
loadMacros( | loadMacros( | ||
'PGstandard.pl', | |||
'MathObjects.pl', | |||
'PGML.pl', | |||
'PGcourse.pl' | |||
); | ); | ||
Line 54: | Line 59: | ||
<td style="background-color:#ddffdd;padding:7px;"> | <td style="background-color:#ddffdd;padding:7px;"> | ||
<p> | <p> | ||
</p> | </p> | ||
</td> | </td> | ||
Line 66: | Line 69: | ||
<td style="background-color:#ffffdd;border:black 1px dashed;"> | <td style="background-color:#ffffdd;border:black 1px dashed;"> | ||
<pre> | <pre> | ||
Context( | Context('Numeric')->variables->add(k=>'Real'); | ||
Context()->flags->set( | Context()->flags->set( | ||
reduceConstants=>0, # no decimals | reduceConstants=>0, # no decimals | ||
Line 76: | Line 79: | ||
$k = random(3,5,1); | $k = random(3,5,1); | ||
$f = Formula( | $f = Formula('k x^2'); | ||
$fx = $f->D('x'); | $fx = $f->D('x'); | ||
$ans1 = $fx; | |||
$ans2 = $fx->substitute(k=>$k); | |||
$ | $ans3 = $fx->substitute(x=>$a*pi,k=>$k); | ||
$ | |||
$ | |||
</pre> | </pre> | ||
</td> | </td> | ||
Line 98: | Line 96: | ||
* <code>eval()</code> returns a Real (a number) | * <code>eval()</code> returns a Real (a number) | ||
* <code>substitute()</code> returns a Formula | * <code>substitute()</code> returns a Formula | ||
Since plugging a particular number <code>$k</code> into the Formula <code>$f</code> returns a Formula <code>$k x</code>, if we had used the eval method <code>$ | Since plugging a particular number <code>$k</code> into the Formula <code>$f</code> returns a Formula <code>$k x</code>, if we had used the eval method <code>$ans2 = $fx->eval(k=>$k);</code> instead of the substitute method, we would get errors because <code>$k x</code> is a Formula, not a Real. Note: You cannot use eval or substitute to perform function composition, i.e., you can only plug in numbers, not formulas. | ||
</p> | |||
<p> | |||
When the answer is a constant, we can use either the eval method, in which case the answer would be a Real, or the substitute method, in which case the answer would be a constant Formula. If you use the eval method, <code>$ans3 = $fx->eval(x=>$a*pi,k=>$k);</code> the answer will be a Real and will display as a single number in decimal format. If you use the substitute method instead, you have more control over how the answer will be displayed. In particular, the context flag | |||
<code>reduceConstants</code> controls whether the answer will be reduced to a single number in decimal format, the flag <code>reduceConstantFunctions</code> controls whether or not expressions such as <code>4+5*2</code> are reduced to <code>14</code>, and setting the context flag <code>formatStudentAnswer=>'parsed'</code> will prevent the student's answer from being reduced to a single number in decimal format and will also display <code>pi</code> instead of <code>3.14159...</code> | |||
</p> | </p> | ||
<p> | <p> | ||
For more details, see [http://webwork.maa.org/wiki/Eval%28%29vs.substitute%28%29 eval versus substitute], [http://webwork.maa.org/wiki/FormattingCorrectAnswers:_NumbersAndFormulas formatting correct answers], and [http://webwork.maa.org/wiki/ConstantsInProblems constants in problems]. | |||
</p> | </p> | ||
</td> | </td> | ||
Line 111: | Line 113: | ||
<td style="background-color:#ffdddd;border:black 1px dashed;"> | <td style="background-color:#ffdddd;border:black 1px dashed;"> | ||
<pre> | <pre> | ||
BEGIN_PGML | |||
Suppose [` f(x) = [$f] `] where [` k `] is a constant. | |||
Suppose | |||
constant. | |||
a. [` f ' (x) = `] [_______________]{$ans1} | |||
b. If [` k = [$k] `] then [` f ' (x) = `] [_______________]{$ans2} | |||
c. If [` k = [$k] `] then [` f ' ([$a]\pi) = `] [_______________]{$ans3} | |||
[@ helpLink('formulas') @]* | |||
END_PGML | |||
</pre> | </pre> | ||
<td style="background-color:#ffcccc;padding:7px;"> | <td style="background-color:#ffcccc;padding:7px;"> | ||
<p> | <p> | ||
<b>Main Text:</b> | <b>Main Text:</b> | ||
</p> | </p> | ||
</td> | </td> | ||
Line 163: | Line 137: | ||
<td style="background-color:#ddddff;border:black 1px dashed;"> | <td style="background-color:#ddddff;border:black 1px dashed;"> | ||
<pre> | <pre> | ||
BEGIN_PGML_SOLUTION | |||
Solution explanation goes here. | Solution explanation goes here. | ||
END_PGML_SOLUTION | |||
COMMENT( | COMMENT('Uses PGML.'); | ||
ENDDOCUMENT(); | ENDDOCUMENT(); | ||
Line 188: | Line 159: | ||
[[Category:Top]] | [[Category:Top]] | ||
[[Category: | [[Category:Sample Problems]] | ||
[[Category:Subject Area Templates]] |
Latest revision as of 10:09, 18 July 2023
This problem has been replaced with a newer version of this problem
Differentiating and Evaluating a Function

This PG code shows how to create a function using MathObjects, differentiate it, and evaluate it.
- PGML location in OPL: FortLewis/Authoring/Templates/DiffCalc/DifferentiateFunction1_PGML.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros( 'PGstandard.pl', 'MathObjects.pl', 'PGML.pl', 'PGcourse.pl' ); TEXT(beginproblem()); |
|
Context('Numeric')->variables->add(k=>'Real'); Context()->flags->set( reduceConstants=>0, # no decimals reduceConstantFunctions=>1, # combine 4+5*2? formatStudentAnswer=>'parsed', # no decimals ); $a = random(6,9,1); $k = random(3,5,1); $f = Formula('k x^2'); $fx = $f->D('x'); $ans1 = $fx; $ans2 = $fx->substitute(k=>$k); $ans3 = $fx->substitute(x=>$a*pi,k=>$k); |
Setup:
The partial differentiation operator is
The main difference between
$k into the Formula $f returns a Formula $k x , if we had used the eval method $ans2 = $fx->eval(k=>$k); instead of the substitute method, we would get errors because $k x is a Formula, not a Real. Note: You cannot use eval or substitute to perform function composition, i.e., you can only plug in numbers, not formulas.
When the answer is a constant, we can use either the eval method, in which case the answer would be a Real, or the substitute method, in which case the answer would be a constant Formula. If you use the eval method, For more details, see eval versus substitute, formatting correct answers, and constants in problems. |
BEGIN_PGML Suppose [` f(x) = [$f] `] where [` k `] is a constant. a. [` f ' (x) = `] [_______________]{$ans1} b. If [` k = [$k] `] then [` f ' (x) = `] [_______________]{$ans2} c. If [` k = [$k] `] then [` f ' ([$a]\pi) = `] [_______________]{$ans3} [@ helpLink('formulas') @]* END_PGML |
Main Text: |
BEGIN_PGML_SOLUTION Solution explanation goes here. END_PGML_SOLUTION COMMENT('Uses PGML.'); ENDDOCUMENT(); |
Solution: |