I am editing a Diff. eq. problem by Paul Pearson that uses parserAssignment. The problem is:
Library/FortLewis/DiffEq/2-Higher-order/02-Linear-2nd-order-cc/Lebl-2-2-08.pg
When the particular solution is, y=6e^(5x)−30xe^(5x),for some reason, it is marking the student incorrect when they leave the answer this way, rather than factoring out the GCF as: y=6e^(5x)(1 −5x).
The relevant code is below:
Context("Numeric");
Context()->variables->add(
'c1'=>"Real",'c2'=>"Real",y=>"Real",
);
Context()->variables->set('c1'=>{limits=>[2,4]},'c2'=>{limits=>[2,4]});
parser::Assignment->Allow;
$a = random(3,7,1);
do { $y0 = random(2,7,1); } until ($y0 != $a);
# char poly (r-$a)^2
$a2 = 2*$a;
$aa = $a*$a;
$A = $y0;
$B = -($a)*$y0;
$diffeq = "y^{\,\prime\prime} - $a2 y^{\,\prime} + $aa y = 0"; # tex
$answera = Compute("y = (c1 + c2 x) e^($a x)");
$answerb = Compute("y = ($A + $B x) e^($a x)")->reduce;
...
ANS( $answerb->cmp() );
Any ideas would be appreciated!
Thanks!
Paul