RecursivelyDefinedFunctions: Difference between revisions
(New page: <h2>Recursively Defined Functions</h2> <!-- Header for these sections -- no modification needed --> <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> <em>This P...) |
(add historical tag and give links to newer problems.) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<h2>Recursively Defined Functions</h2> | {{historical}} | ||
<p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/Sequences/RecursiveSequence.html a newer version of this problem]</p> | |||
<h2>Recursively Defined Functions (Sequences)</h2> | |||
<!-- Header for these sections -- no modification needed --> | <!-- Header for these sections -- no modification needed --> | ||
Line 55: | Line 60: | ||
<p> | <p> | ||
<b>Setup:</b> | <b>Setup:</b> | ||
We define a new named function <code>f</code> as something the student is unlikely to guess. The named function <code>f</ | We define a new named function <code>f</code> as something the student is unlikely to guess. The named function <code>f</code> is, in some sense, just a placeholder since the student will enter expressions involving <code>f(n-1)</code>, WeBWorK will interpret it internally as <code>sin(pi^(n-1))+e</code>, and the only thing the student sees is <code>f(n-1)</code>. If the | ||
recursion has an closed-form solution (e.g., the Fibonacci numbers are given by f(n) = (a^n - (1-a)^n)/sqrt(5) where a = (1+sqrt(5))/2), it would be good to define f using that explicit solution in case the student tries to answer the question by writing out the explicit solution (a^n - (1-a)^n)/sqrt(5) instead of using the shorthand f(n). | recursion has an closed-form solution (e.g., the Fibonacci numbers are given by f(n) = (a^n - (1-a)^n)/sqrt(5) where a = (1+sqrt(5))/2) and you want to allows students to enter the closed-form solution, it would be good to define f using that explicit solution in case the student tries to answer the question by writing out the explicit solution (a^n - (1-a)^n)/sqrt(5) instead of using the shorthand f(n). | ||
</p> | </p> | ||
</td> | </td> | ||
Line 66: | Line 71: | ||
<td style="background-color:#ffdddd;border:black 1px dashed;"> | <td style="background-color:#ffdddd;border:black 1px dashed;"> | ||
<pre> | <pre> | ||
Context()->texStrings; | |||
BEGIN_TEXT | BEGIN_TEXT | ||
The current value \( f(n) \) is three | The current value \( f(n) \) is three | ||
times the previous value plus two. Find | times the previous value, plus two. Find | ||
a recursive definition for \( f(n) \). | a recursive definition for \( f(n) \). | ||
Enter \( f_{n-1} \) as \( f(n-1) \). | Enter \( f_{n-1} \) as \( f(n-1) \). | ||
Line 74: | Line 80: | ||
\( f(n) \) = \{ ans_rule(20) \} | \( f(n) \) = \{ ans_rule(20) \} | ||
END_TEXT | END_TEXT | ||
Context()->normalStrings; | |||
</pre> | </pre> | ||
<td style="background-color:#ffcccc;padding:7px;"> | <td style="background-color:#ffcccc;padding:7px;"> | ||
Line 108: | Line 115: | ||
[[Category:Problem Techniques]] | [[Category:Problem Techniques]] | ||
<ul> | |||
<li>POD documentation: [http://webwork.maa.org/pod/pg/macros/parserFunction.html parserFunction.pl]</li> | |||
<li>PG macro: [http://webwork.maa.org/viewvc/system/trunk/pg/macros/parserFunction.pl?view=log parserFunction.pl]</li> | |||
</ul> |
Latest revision as of 18:48, 16 July 2023
This problem has been replaced with a newer version of this problem
Recursively Defined Functions (Sequences)
This PG code shows how to check student answers that are recursively defined functions.
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "parserFunction.pl", ); TEXT(beginproblem()); |
Initialization:
We will be defining a new named function and adding it to the context, and the easiest way to do this is using |
Context("Numeric")->variables->are(n=>"Real"); parserFunction(f => "sin(pi^n)+e"); $fn = Formula("3 f(n-1) + 2"); |
Setup:
We define a new named function |
Context()->texStrings; BEGIN_TEXT The current value \( f(n) \) is three times the previous value, plus two. Find a recursive definition for \( f(n) \). Enter \( f_{n-1} \) as \( f(n-1) \). $BR \( f(n) \) = \{ ans_rule(20) \} END_TEXT Context()->normalStrings; |
Main Text: The problem text section of the file is as we'd expect. We should tell students to use function notation rather than subscript notation so that they aren't confused about syntax. |
$showPartialCorrectAnswers=1; ANS( $fn->cmp() ); ENDDOCUMENT(); |
Answer Evaluation: As is the answer. |
- POD documentation: parserFunction.pl
- PG macro: parserFunction.pl