[LON-CAPA-users] square roots in formula response

Peter Riegler lon-capa-users@mail.lon-capa.org
Tue, 04 Sep 2007 14:12:09 +0200


Hi Justin,


Justin Gray wrote:

> Hi Peter,
> 
> Are you sure that Maxima does not simplify expressions when comparing 
> them? 

ahm, well, sorry, no.

What's PRECISELY going on is the following:
lonmaxima, loncapa's interface to maxima, inputs
    is(trigsimp(trigreduce(RESPONSE-ANSWER))=0);
to maxima. Here, RESPONSE is the student's response, ANSWER the correct 
answer.

In the example you have given maxima would not simplify
RESPONSE-ANSWER
to zero, but applying trigreduce will do so.
Obviously trigreduce includes some sort of rational simplification which 
affects your example but doesn't affect the one with the sqrt you had 
given yesterday.

When it comes to simplification I have to confess that I only have a gut 
feeling which command will have which effects. Basically this is based 
on my experience with these commands, but I am still lacking a thorough 
understanding.

Also this issue here brings up my uneasy feelings that lonmaxima's
    is(trigsimp(trigreduce(RESPONSE-ANSWER))=0);
is not a good idea. It should be
    is(RESPONSE=ANSWER);
If an author wishes/needs to have simplification it should be his task 
to put in the proper/desired command using the 2nd interface called 
mathresponse.

While I am typing this, Gerd's email on this issue is coming in.

In general, I agree with Gerd's view. Here in my group we are struggling 
almost every day with solving that "make sure that the original problem 
is not accepted as an answer"-problem. Regular expressions are helpful 
sometimes, sometimes it's proper use of simplification commands or a 
combination of both.

What I am dreaming of is investigating the tree representation of the 
expression under investigation (such as Mathematica's FullForm returns) 
and decide on this tree whether the student's answer is simple enough.

Anyway, here is how I would solve the current problem given my current 
knowledge of maxima:

<problem>
<script type="loncapa/perl">
$answer = "(x^2 + 3)/((x + 3)(x^2 + 9))";
</script>
     <startouttext />
Simplify: <p></p>

<m>$\Large{\frac{x^3 - 3x^2 + 3x - 9}{x^4 - 81}} = $</m>
     <endouttext />

     <mathresponse cas="maxima" answerdisplay="$answer" args="$answer">
       <answer>
         is(RESPONSE[1]=LONCAPALIST[1]);
       </answer>
         <textline readonly="no" size="40" />
     </mathresponse>
</problem>

Note however, that this will not accept responses where products are 
expanded. To allow that you would have to use e.g.
is(factor(RESPONSE[1])=LONCAPALIST[1]);

the args attribute will pass a perl array to a maxima array named 
LONCAPALIST (technically this is not quite true, but details are not 
important here).

Finally I give another version which I call the "lazy programmer's 
solution":

<problem>
<script type="loncapa/perl">
$fun = "(x^3 - 3*x^2 + 3*x - 9)/(x^4 - 81)";
$answer = &cas("maxima","factor(ratsimp($fun));");
</script>
     <startouttext />
Simplify: <p></p>

<m>$\Large{\frac{x^3 - 3x^2 + 3x - 9}{x^4 - 81}} = $</m>
     <endouttext />

     <mathresponse cas="maxima" answerdisplay="$answer" args="$answer">
       <answer>
         is(RESPONSE[1]=LONCAPALIST[1]);
       </answer>
         <textline readonly="no" size="40" />
     </mathresponse>
</problem>

Have fun with it

Peter



I was under the impression that Maxima tries to simplify the
> difference of two equivalent expressions and verify that it is zero. 
> Consider the following problem.
> 
> <problem> 
>     <startouttext />
> Simplify: <p></p>
> 
> <m display = jsmath>$\Large{\frac{x^3 - 3x^2 + 3x - 9}{x^4 - 81}} = $</m>
>     <endouttext />
> 
>     <formularesponse answer="(x^2 + 3)/((x + 3)(x^2 + 9))">
>         <textline readonly="no" size="40" />   
>     </formularesponse>
> </problem>
> 
> This appears to accept the LHS as a correct answer.
> 
> Thanks,
> Justin
> 
> On 9/3/07, *Justin Gray* <jgray@math.sfu.ca <mailto:jgray@math.sfu.ca>> 
> wrote:
> 
>     Many thanks, Peter. This is exactly what I was looking for.
> 
>     Justin
> 
> 
>     On 9/3/07, * Peter Riegler* <p.riegler@fh-wolfenbuettel.de
>     <mailto:p.riegler@fh-wolfenbuettel.de>> wrote:
> 
>         Hi Justin,
> 
>         does "elegant" include two seperate input fields, for
>         demoninator and
>         numerator? Or did you come up with two input fields because
>         otherwise
>         the lhs (i.e. non-rationalized) would be accepted if using sampling?
>         If so, I would suggest something like
>         <formularesponse answer="(m - 4)*(sqrt(m) + 4)/(m-16)">
> 
>         (I would prefer the students enter sqrt(m) rather than sqrtm).
> 
>         What the above does is to ask maxima
>         is( STUDENTSRESPONSE = (m - 4)*(sqrt(m) + 4)/(m-16));
> 
>         The important point here is that a student's reponse
>         (m-4)/(sqrt(m)-4)
>         would return false. The reason is, maxima does not simplify before
>         comparison.
> 
>         Hope this will help.
> 
>         Peter
> 
>         Justin Gray wrote:
> 
>>  Does anyone know a more elegant way to write the problem below?
>>
>>  Thanks,
>>  Justin
>>
>>  <problem>
>>  <startouttext />Rationalize the denominator and
>         simplify:<p></p><br></br>
>>  Use sqrtm for <m display = jsmath>$\sqrt{m}</m>.<p></p>
>>  <table>
>>
>>  <tr>
>>     <td><m display="jsMath">\, \, \, \, $m - 4$</m></td> <td></td>
>>  <td><endouttext />
>>  <formularesponse samples="m,sqrtm@-3,-3:3,3#5" answer="(m -
>         4)(sqrtm +
>>  4)" id="11">
>>
>>     <textline readonly="no" size="20" />
>>
>>  </formularesponse><startouttext /></td>
>>  </tr>
>>  <tr>
>>     <td><hr width="60"></hr></td> <td><m
>         display="jsMath">$\mbox{ } =
>>  \mbox{ }$</m></td> <td><hr width="140"></hr></td>
>>  </tr>
>>  <tr>
>>     <td><m display="jsMath">$\sqrt{m} - 4$</m></td> <td></td>
>>  <td><endouttext />
>>  <formularesponse samples="m@-3:3#5" answer="m - 16" id="12">
>>
>>     <textline readonly="no" size="20" />
>>
>>  </formularesponse><startouttext /></td>
>>  </tr>
>>  </table><p></p><endouttext />
>>  </problem>
>>
>>
>>  --
>>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>  Justin Gray                                                  Tel.
>>  778-782-4237
>>  Dept. of Mathematics                                   Fax.
>         778-782-4947
>>  Simon Fraser University
>>  8888 University Drive
>>  Burnaby, B.C. V5A 1S6
>>  Canada
>>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
>         --
>         Peter Riegler
>         Fachhochschule Braunschweig/Wolfenbüttel
>         Salzdahlumer Str. 46/48, 38302 Wolfenbüttel
>         Tel. +49 5331 939 6314, Fax. +49 5331 939 6002
>         email: p.riegler@fh-wolfenbuettel.de
>         <mailto:p.riegler@fh-wolfenbuettel.de>
>         http://public.rz.fh-wolfenbuettel.de/~riegler
>         <http://public.rz.fh-wolfenbuettel.de/%7Eriegler>
>         _______________________________________________
>         LON-CAPA-users mailing list
>         LON-CAPA-users@mail.lon-capa.org
>         <mailto:LON-CAPA-users@mail.lon-capa.org>
>         http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
> 
> 
> 
> 
>     -- 
>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
>     Justin Gray                                                  Tel.
>     778-782-4237
>     Dept. of Mathematics                                   Fax. 778-782-4947
>     Simon Fraser University
>     8888 University Drive
>     Burnaby, B.C. V5A 1S6
>     Canada
>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
> 
> 
> 
> 
> -- 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Justin Gray                                                  Tel. 
> 778-782-4237
> Dept. of Mathematics                                   Fax. 778-782-4947
> Simon Fraser University
> 8888 University Drive
> Burnaby, B.C. V5A 1S6
> Canada
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- 
Peter Riegler
Fachhochschule Braunschweig/Wolfenbüttel
Salzdahlumer Str. 46/48, 38302 Wolfenbüttel
Tel. +49 5331 939 6314, Fax. +49 5331 939 6002
email: p.riegler@fh-wolfenbuettel.de
http://public.rz.fh-wolfenbuettel.de/~riegler