--- loncom/html/adm/help/tex/Tolerance.tex 2002/07/05 16:12:31 1.1 +++ loncom/html/adm/help/tex/Tolerance.tex 2013/09/09 20:57:54 1.6 @@ -1,30 +1,60 @@ +\label{Tolerance} A \textbf{tolerance\index{tolerance}} parameter determines how closely the system will require the student's answer to be in order to count it correct. +The tolerance will default to zero if it is not defined. +The tolerance parameter should always be defined for a numerical problem +unless you are certain only integer answers are generated from your script and +you want students to reply with exactly that integer. - -For technical reasons, it is almost never a good idea to set this parameter -to zero. Computers can only approximate computations involving real numbers. For instance, +If the computer answer is a floating point number, the tolerance should not +be zero. Computers can only approximate computations involving real numbers. For instance, a computer's {[}decimal{]} answer to the simple problem $\frac{1}{3}$ is {}``0.33333333333333331''. It \emph{should} be an infinite series of 3's, and there certainly shouldn't be a {}``1'' in the answer, but no computer can represent an infinitely long, infinitely detailed real number. Therefore, -for any problem where the answer is not a small integer, you \emph{need} +for any problem where the answer is not an integer, you \emph{need} to allow a tolerance factor, or the students will find it nearly impossible -to exactly match the computers idea of the answer. You may find the -default too large for some problems. +to exactly match the computer's idea of the answer. You may find the +default tolerance too large for some problems, so adjust as appropriate. -There are -two kinds of tolerance. For some answer $a$ and a tolerance $t$, +There are three kinds of tolerance. For some answer $A$ and a tolerance $T$, \begin{enumerate} \item an \textbf{Absolute} tolerance\index{absolute tolerance}\index{tolerance, absolute} -will take anything in the range $a\pm t$. So if $a=10$ and $t=2$, then +will take anything in the range $A\pm T$. So if $A=10$ and $T=2$, then anything between 8 and 12 is acceptable. Any number in the tolerance field \emph{without} a \textbf{\%} symbol is an absolute tolerance. \item a \textbf{Relative} tolerance\index{relative tolerance}\index{tolerance, relative} -will take anything in the range $a\pm at$, where \emph{t} is interpreted -as a percentage. Any number in the tolerance field \emph{followed by} a \textbf{\%} +will take anything in the range $A\pm aT$, where \emph{T} is interpreted +as a percentage/100. Any number in the tolerance field \emph{followed by} a \textbf{\%} symbol is a relative tolerance. For example, $a=10$ and $t=10\%$ will accept anything between 9 and 11. -\end{enumerate} \ No newline at end of file + +\item a tolerance that is a calculated variable (identified by \$ sign as +the first character). For example, if an answer is $\$X$,and for a student +possible values range from $-\$X1$ to $+\$X1$, you could choose $T = +\$tolerance = \$2X1/100;$ acceptable answers would then be from +$\$X-\$tolerance$ to $\$X+\$tolerance$. (This is especially useful when answers +close to zero are possible for some students) + +\end{enumerate} + +Some care is necessary when setting the display format of the computer answer. +Before testing the tolerance, LON-CAPA converts the computer answer, +as generated in the script block, according to the +format attribute in the numericalresponse tag. + +Next, the formatted comptuer answer is "graded" relative to the significant +figures parameter, if it is set (see section \ref{Significant_Figures}. +If that test was passed, then a numerical comparison of the Computer's +answer is made with the range of values: + +(\$computerAnswer - \$tolerance) $<$ \$formattedcomputerAnswer $<$ +(\$computerAnswer + \$tolerance) + +If the \$formattedcomputerAnswer satisfies the permitted range, then +"correct" is returned for the computer answer. It is good idea to test multiple +randomizations to make sure that your tolerance is compatible with the display format. + +