[LON-CAPA-users] formula response question
James Mueller
lon-capa-users@mail.lon-capa.org
Sun, 22 Feb 2009 13:57:01 -0500
Peter and Stefan,
Thanks for the suggestions. I will pass them on to the instructor
who wrote the problem. I will suggest that she also subscribe to this
mailing list.
-Jim
On Feb 22, 2009, at 11:08 AM, Stefan Bisitz wrote:
> Hi James,
>
> something else I recognized is the following part of your code:
>> $b=0; $d=0; while($b==0 || $d==0){$b=&random(-10,10,1);
>> $d=&random(-10,10,1);}
>> $a=-1*$b/$d; while($a==-1*$b/$d){$a=&random(1,10,1);}
>
> It is recommended to avoid such loops, especially to create random
> variables.
> Can you asure that this will
> a) always properly terminate?
> b) not run to long under special random circumstences?
>
> The first loop
> $b=0; $d=0; while($b==0 || $d==0){$b=&random(-10,10,1);
> $d=&random(-10,10,1);}
> could be easily substituted by
> $b=&random(-1,1,2)*&random(1,10,1);$d=&random(-1,1,2)*&random(1,10,1);
> to get random numbers between -10 and +10 but without zero.
>
> The second loop is more tricky, but there should be solutions to
> avoid it, too.
>
> Stefan Bisitz
>
>
> On 22.02.09, Peter Riegler <p.riegler@fh-wolfenbuettel.de> wrote:
>
>> Hi,
>>
>> I have tested your code on my 2.8 server:
>> The problem is related to the +-2 in
>> $solution=7*exp(2*x)+-2*exp(-1*-7/4*x) .
>> So you should write
>> $solution="$M1*exp($d*x)+($M2)*exp(-1*$b/$a*x)
>> in your script. Note the parentheses around $M2.
>> I can't explain that to you perlwise because "...+-2*..." is legal
>> perl.
>> As your script is written $M2 becomes negative very infrequently,
>> hence you don't encounter such problems often.
>>
>> Peter
>>
>> James Mueller wrote:
>>> A student in a calculus course is entering an answer to a formula
>>> response problem and keeps getting "Unable to understand formula"
>>> even when they enter something simple like "x" for their answer.
>>> The rest of the students are reported to be not having troubles.
>>> I assumed it must be some problem with the script tat was
>>> triggered by the numbers used for this particular problem. After
>>> a quick look, I can't see anything, but I have to admit my perl
>>> is rusty. Anybody else se anything?
>>>
>>> The script is
>>>
>>> <problem>
>>> <meta name="isbasedontime" content="1235265561" />
>>> <meta name="isbasedonres" content="\%2fres\%2fpitt\%2fathanas\
>>> %2fc2\ %2ddiffeq\%2d21\%2eproblem" />
>>> <script type="loncapa/perl">
>>> $b=0; $d=0; while($b==0 || $d==0){$b=&random(-10,10,1);
>>> $d=&random(-10,10,1);}
>>> $a=-1*$b/$d; while($a==-1*$b/$d){$a=&random(1,10,1);}
>>> $c=&random(1,10,1); $i=&random(1,50,1);
>>> if($b<0){$s=" ";} if($b>0){$s="+";}
>>> $M1=$c/($a*$d+$b); $M2=$i-$M1;
>>> $solution="$M1*exp($d*x)+$M2*exp(-1*$b/$a*x) ";
>>> </script>
>>> <startouttext />
>>> <br />
>>> Determine the solution to the initial value differential equation
>>> <m eval="on"> \[ $a y' $s $b y = $c e^{$d x} \hspace{.2in} y
>>> ( 0 )= $i \]</m>
>>> <endouttext />
>>>
>>> <p />
>>> <startouttext /><m>$ y ( x ) = $</m><endouttext />
>>> <formularesponse samples="x@1:3#4" answer="$solution" id="11">
>>> <responseparam name="tol" default="0.001" type="tolerance"
>>> description="Numerical Tolerance" />
>>> <textline readonly="no" size="35" />
>>> </formularesponse>
>>> </problem>
>>>
>>> And the students variables for this problem are
>>>
>>> %!
>>> =
>>> (E2BIG
>>> =>0,EACCES=>0,EADDRINUSE=>0,EADDRNOTAVAIL=>0,EADV=>0,EAFNOSUPPORT
>>> =
>>> >
>>> 0
>>> ,EAGAIN
>>> =>0,EALREADY=>0,EBADE=>0,EBADF=>0,EBADFD=>0,EBADMSG=>0,EBADR=>
>>> 0
>>> ,EBADRQC
>>> =>0,EBADSLT=>0,EBFONT=>0,EBUSY=>0,ECANCELED=>0,ECHILD=>0,ECHRNG
>>> =
>>> >
>>> 0
>>> ,ECOMM
>>> =>0,ECONNABORTED=>0,ECONNREFUSED=>0,ECONNRESET=>0,EDEADLK=>0,ED
>>> EADLOCK
>>> =>0,EDESTADDRREQ=>0,EDOM=>0,EDOTDOT=>0,EDQUOT=>0,EEXIST=>0,EFAULT
>>> =
>>> >
>>> 0
>>> ,EFBIG
>>> =>0,EHOSTDOWN=>0,EHOSTUNREACH=>0,EIDRM=>0,EILSEQ=>0,EINPROGRESS
>>> =
>>> >
>>> 0
>>> ,EINTR
>>> =>0,EINVAL=>0,EIO=>0,EISCONN=>0,EISDIR=>0,EISNAM=>0,EKEYEXPIRED
>>> =
>>> >
>>> 0
>>> ,EKEYREJECTED
>>> =>0,EKEYREVOKED=>0,EL2HLT=>0,EL2NSYNC=>0,EL3HLT=>0,EL3RS
>>> T=>0,ELIBACC=>0,ELIBBAD=>0,ELIBEXEC=>0,ELIBMAX=>0,ELIBSCN=>0,ELNRNG=>0,ELOOP=>0,EMEDIUMTYPE=>0,EMFILE=>0,EMLINK=>0,EMSGSIZE=>0,EMULTIHOP=>0,ENAMETOOLONG=>0,ENAVAIL=>0,ENETDOWN=>0,ENETRESET=>0,ENETUNREACH=>0,ENFILE=>0,ENOANO=>0,ENOBUFS=>0,ENOCSI=>0,ENODATA=>0,ENODEV=>0,ENOENT=>0,ENOEXEC=>0,ENOKEY=>0,ENOLCK=>0,ENOLINK=>0,ENOMEDIUM=>0,ENOMEM=>0,ENOMSG=>0,ENONET=>0,ENOPKG=>0,ENOPROTOOPT=>0,ENOSPC=>0,!
> ENOSR=>0,ENOSTR=>0,ENOSYS=>0,ENOTBLK=>0,ENOTCONN=>0,ENOTDIR=>0,ENOTEMPTY=>0,ENOTNAM=>0,ENOTRECOVERABLE=>0,ENOTSOCK=>0,ENOTSUP=>0,ENOTTY=>0,ENOTUNIQ=>0,ENXIO=>0,EOPNOTSUPP=>0,EOVERFLOW=>0,EOWNERDEAD=>0,EPERM=>0,EPFNOSUPPORT=>0,EPIPE=>0,EPROTO=>0,EPROTONOSUPPORT=>0,EPROTOTYPE=>0,ERANGE=>0,EREMCHG=>0,EREMOTE=>0,EREMOTEIO=>0,ERESTART=>0,EROFS=>0,ESHUTDOWN=>0,ESOCKTNOSUPPORT=>0,ESPIPE=>0,ESRCH=>0,ESRMNT=>0,ESTALE=>0,ESTRPIPE=>0,ETIME=>0,ETIMEDOUT=>0,ETOOMANYREFS=>0,ETXTBSY=>0,EUCLEAN=>0,EUNATCH=>0,EUSERS=>0,EWOULDBLOCK=>0,EXDEV=>0,EXFULL=>0)
>>> $M1=7
>>> $M2=-2
>>> $a=4
>>> $b=-7
>>> $c=7
>>> $d=2
>>> $deg2rad=0.0174532925199433
>>> $i=5
>>> $pi=3.14159265358979
>>> $rad2deg=57.2957795130823
>>> $s=
>>> $solution=7*exp(2*x)+-2*exp(-1*-7/4*x)
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> LON-CAPA-users mailing list
>>> LON-CAPA-users@mail.lon-capa.org
>>> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users (http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
>>> )
>>
>> --
>> 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 (http://public.rz.fh-wolfenbuettel.de/~riegler
>> )
>> _______________________________________________
>> LON-CAPA-users mailing list
>> LON-CAPA-users@mail.lon-capa.org
>> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users (http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
>> )
>>
>>
>
> _______________________________________________
> LON-CAPA-users mailing list
> LON-CAPA-users@mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users