Hi,

I recently set up the STACK question system in my Moodle server and instantly fell in love with it. I'ts a great piece of (educational) software. Thanks for it!

Yesterday we ran an exam for 100 students and all went well, except for one thing:

One of the questions involved generating an arbitrary second-order Laplace Transfer Function, H(s), with integer coefficients, and we asked the student to calculate its Inverse Laplace Transform. The problem is that **the students give their answers using floating-point coefficients** resulting from their calculations. That raises the problem of how to compare these student answers with the Maxima-calculated ones, which are algebraic of course.

To give a more concrete example: The goal is to compare the Maxima-calculated Inverse Laplace trasform as:

(%e^(-(21*t)/4)*((2*cos((7^(3/2)*t)/4))/5-(6*sin((7^(3/2)*t)/4))/(5*sqrt(7))))/2

with the student-provided response which is:

0.3*e^(-5.25*t)*cos(4.63*t-0.848)

As I said before, I'm a newbie to STACK questions, so the idea (*) I had to perform this test was to **evaluate the student and teacher functions at some random points** (I choose a set of 5 random points) and then do a "NumRelative" test with these results. If the two functions evaluate to the same values (within some margin, obviously) at test points, I can assume they are equal.

So far, so good, but when the exam was graded we saw that **the test fails in few cases**. After some investigation we found that sometimes one of the random points falls near a function zero, and that leads to greater numerical errors that make the relative error increase beyond the limit set in the "options" field of the PRT.

So, sorry for the long explanation. My question is: **is there any (better) method to compare a student-entered function with floating-point coefficients** with a Maxima-calculated counterpart?

Thanks in advance.

Orestes

(*) The idea was, in fact, not mine: is the method used by the (non-standard) "algebra" question type.