Integral calculus: sequences and recursively defined functions
Download file: RecursiveSequence.pg
DOCUMENT(); loadMacros('PGstandard.pl', 'PGML.pl', 'parserFunction.pl', 'PGcourse.pl');
Preamble
We will be defining a new named function and adding it to the context, and the easiest way to do this is using parserFunction.pl. There is a more basic way to add functions to the context, which is explained in example 2 at AddingFunctions
Context()->variables->are(n => 'Real'); parserFunction(f => 'sin(pi^n) + e * n^2'); $fn = Formula('3 f(n - 1) + 2');
Setup
We define a new named function f
as something the student is unlikely to guess. The named function f
is, in some sense, just a placeholder since the student will enter expressions involving f(n-1)
, WeBWorK will interpret it internally as sin(pi^(n-1))+e*n^2
, and the only thing the student sees is f(n-1)
. 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)
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)
.
BEGIN_PGML 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)`]. [`f(n) =`] [_]{$fn}{15} END_PGML
Statement
We should tell students to use function notation rather than subscript notation so that they aren’t confused about syntax.
BEGIN_PGML_SOLUTION Solution explanation goes here. END_PGML_SOLUTION ENDDOCUMENT();
Solution
A solution should be provided here.