[LON-CAPA-users] Maxima is being fussy

Seema Ali sali at vsb.bc.ca
Tue Feb 21 13:13:24 EST 2012

Hi,

I have a graph transformation question, that recognizes correct answers most of the time.  I was wondering if it could recognize it all of the time.

Example: y = 8 + (x-12)^3
New graph is vertically compressed by 1/3 and shifted horizontally to the left by 9 units.

A possible solution:  1/3 * (8 + (x -3)^3)
This solutions was marked wrong as was:
(8 + (x -3)^3)/3

The solution that was marked correctly was:
8/3 + ((x-3)^3)/3

I'm not sure why Maxima did not mark the other 2 correctly.  Below is the code for the problem.

Also is there something that I'm missing?  I am worried that for the algebra response questions that I created students may be marked incorrectly when they are right.

Thanks.

<problem>
<script type="loncapa/perl">$origA = &random(5,9,1);$origB = &random(10,15,1);
$origC = &random(16,20,1); #pick a function$index = &random(1,3,1);
$function = &choose($index, "sqrt($origA-(x-$origB)^2)",  "$origA + (x-$origB)^3", "$origA / (x-$origB) + $origC");$functionL= &choose($index, "\\sqrt{$origA-(x-$origB)^2}", "$origA + (x-$origB)^3", "\\Large\\frac{$origA}{x-$origB} \\normalsize +$origC");

#set the types of translations
$temp = &random(1,2,1);$compression = &choose($temp,"horizontal ", "vertical ");$temp = &random(1,2,1);
$compression =$compression.&choose($temp,"expansion", "compression");$compressionAmount = &random(2,9,1);

$temp = &random(1,2,1);$translation = &choose($temp, "horizontal translation", "vertical translation");$temp = &random(1,2,1)+ ($temp-1)*2;$translationDirection = &choose($temp, "left", "right", "up", "down"); do {$translationAmount = &random(2,9,1);
}while($compressionAmount==$translationAmount);

#set the constants for $a and$b
if($compression eq "horizontal expansion") {$a = 1;
$b = 1/$compressionAmount;
$texcomp =$compressionAmount;
}
elsif($compression eq "horizontal compression") {$a = 1;
$b =$compressionAmount;
$texcomp = "\\frac{1}{$compressionAmount}";
}
elsif($compression eq "vertical compression") {$a = 1/$compressionAmount;$b = 1;
$texcomp = "\\frac{1}{$compressionAmount}";
}
else
{
$a =$compressionAmount;
$b = 1;$texcomp = $compressionAmount; } #set values to$c and $d if($translation eq "horizontal translation" && $translationDirection eq "left") {$c = -1*$translationAmount;$d = 0;
}
elsif($translation eq "horizontal translation" &&$translationDirection eq "right")
{
$c =$translationAmount;
$d = 0; } elsif($translation eq "vertical translation" && $translationDirection eq "up") {$c = 0;
$d =$translationAmount;
}
elsif($translation eq "vertical translation" &&$translationDirection eq "down")
{
$c = 0;$d = -1*$translationAmount; } @args = ($function, $a,$b, $c,$d);</script><startouttext /><p>
What is the equation of <m eval="on"> $y=$functionL$</m> after a$compression by a factor of <m eval="on">texcomp $</m> and$translation $translationAmount units$translationDirection?
</p>
Instructions: <br />
<ul>
<li>Use * for multiplication, / for division, ^ for exponent and brackets</li>
<li>For example to represent <m>$y=\Large\frac{(x^3-4)^5}{2}$</m>you would type: ((x^3-4)^5)/2</li>
<li>If you enter a formula, double check your formula by clicking on the pencil icon to get a
different representation of your formula </li>
<li>Another example to represent <m>$\sqrt{x^2+3} - 5$</m> you would type:  sqrt(x^2 + 3) - 5</li>
</ul>

<br />
<br />

Answer:  <m>$y =$</m><endouttext />
<mathresponse cas="maxima" args="@args" id="11">
a:LONCAPALIST[2];
b:LONCAPALIST[3];
c:LONCAPALIST[4];
d:LONCAPALIST[5];
g(x) := LONCAPALIST[2]*f(LONCAPALIST[3]*(x-LONCAPALIST[4]))+LONCAPALIST[5];