WeBWorK Problems

Putting summations with answerblanks in limits of summation on one line

by Cindy Loten -
Number of replies: 0

I'm creating questions where students need to work with equations containing infinite sums (generating functions in particular), where I want make sure students can do some basic manipulations that affect the lower limits of summation and the terms.

I have found two types of code for putting answer blanks in the upper and lower limits of summation, which I called Version 1 and Version 2 below. I took existing code and modified it in both cases. Modified Library/FortLewis/Authoring/Templates/IntegralCalc/LimitsOfIntegration1_PGML.pg for Version 1 (authored 2015, from PGML tutorial) and modified Library/AlfredUniv/diffeq/series/ordinarypoints/OrdinaryPoint2fullyworked.pg for Version 2 (authored 2011)

Regarding using current styles and PGML, is Version 1 or Version 2 better?

Problem with Version (1): I don't know how to get the whole equation on one line. At the moment, each sum and each +,- = is on its own line.

Problem with Version (2): The term being summed is very far away from the summation sign, unless I put \hskip -20pt in front of the term. [see code for the first sum] This seems like a bit of hack which might cause problems?

Any suggestions would be greatly appreciated!

____________________________________________

########################################################################

DOCUMENT();

"PGstandard.pl", # Standard macros for PG language

"MathObjects.pl",

"PGML.pl",

"PGchoicemacros.pl", # NchooseK defined here

"contextIntegerFunctions.pl", # need for P(n,k) and C(n,k);

"PGunion.pl",

"PGcourse.pl", # Customization file for the course

"Alfredmacros.pl",

);

# Print problem number and point value (weight) for the problem

TEXT(beginproblem());

# Show which answers are correct and which ones are incorrect, set to 0 for no information

$showPartialCorrectAnswers = 1; ############################################################## # # Setup # # Context("Numeric"); #Context("Numeric")->variables->are(n=>"Real"); #Context()->flags->set(tolerance => 0.01);$start1 = Compute("1");

$end1 = Compute("Infinity");$start2 = Compute("1");

$end2 = Compute("Infinity");$start3 = Compute("1");

$end3 = Compute("Infinity");$start_alfred1 = Compute("1");

$end_alfred1 = Compute("Infinity");$start_alfred2 = Compute("1");

$end_alfred2 = Compute("Infinity");$start_alfred3 = Compute("1");

$end_alfred3 = Compute("Infinity"); # # Display exponents nicely #$w = 1; # width of answer blanks for sums

Context()->texStrings;

if ($displayMode eq 'TeX') {$showsum1 =

"$$\displaystyle \sum_{n = " . ans_rule(w) . "} ^{". ans_rule(w) . "} a_n x^n$$";

} else {

$showsum1 = BeginTable(center=>0). Row([ ans_rule($w).$BR.$BR.$BR.'$${\small n=}$$ '.ans_rule($w),

'$$\displaystyle \hspace{-10ex}\sum a_n x^n$$'],

separation =>2).

EndTable();

}

if ($displayMode eq 'TeX') {$showsum2 =

"$$\displaystyle \sum_{n = " . ans_rule(w) . "} ^{". ans_rule(w) . "}4a_{n-1} x^n$$";

} else {

$showsum2 = BeginTable(center=>0). Row([ ans_rule($w).$BR.$BR.$BR.'$${\small n=}$$ '.ans_rule($w),

'$$\displaystyle \hspace{-10ex}\sum 4a_{n-1} x^n$$'],

separation =>2).

EndTable();

}

if ($displayMode eq 'TeX') {$showsum3 =

"$$\displaystyle \sum_{n = " . ans_rule(w) . "} ^{". ans_rule(w) . "}2\cdot (3)^n x^n$$";

} else {

$showsum3 = BeginTable(center=>0). Row([ ans_rule($w).$BR.$BR.$BR.'$${\small n=}$$ '.ans_rule($w),

'$$\displaystyle \hspace{-10ex}\sum 2\cdot (3)^n x^n$$'],

separation =>2).

EndTable();

}

Context()->normalStrings;

##############################################################

#

# Text

#

#

BEGIN_PGML

We are going to use the method of generating functions to solve the recurrence relation below.

Let [:: f(x) = Sum(n:0,infty; a_nx^n) ::] be the generating function for the sequence above. Then

Version (1). Not using Alfredmacros.pl

[$showsum1]*** [:+:] [$showsum2]*** [:= :] [$showsum3]*** Version (2). Using Alfredmacros.pl [@ BeginTable(center=>0). Row([ tablesum(sumvariable=>'$$n$$',width=>1, upper=>ans_rule(2)), '$$a_nx^n$$', '$$+$$', tablesum(sumvariable=>'$$n$$',width=>1, upper=>ans_rule(2)), '$$a_{n-1}x^n$$', '$$=$$', tablesum(sumvariable=>'$$n$$',width=>1, upper=>ans_rule(2)), '$$2\cdot 3^nx^n$$'], separation=>1). EndTable(); @]*** END_PGML ############################ # Answer evaluation ANS($end1->cmp() );

ANS( $start1->cmp() ); ANS($end2->cmp() );

ANS( $start2->cmp() ); ANS($end3->cmp() );

ANS( $start3->cmp() ); ANS($start_alfred1->cmp() );

ANS( $end_alfred1->cmp() ); ANS($start_alfred2->cmp() );

ANS( $end_alfred2->cmp() ); ANS($start_alfred3->cmp() );

ANS( \$end_alfred3->cmp() );

COMMENT('MathObject version. Uses PGML.');

ENDDOCUMENT();