Re: 1/T errors

*To*: mathgroup at yoda.physics.unc.edu*Subject*: Re: 1/T errors*From*: Paul=Rubin%Management%Business at banyan.cl.msu.edu*Date*: Thu, 2 Jun 94 17:16:33 EDT

Paul.Shand at uni.edu (Paul M. Shand) wrote: >I have a function f of the type (Exp[b/T]/Exp[c/T]), where b and c are >complicated functions consisting of sums over several parameters, but is >not of primary interest here. The problem is the following. I wish to >obtain values of the function f at small values of T. For example, for T = >0.05 and T = 0.03, Mathematica gives me a reasonable answer in a reasonable >amount of time (the times required for the calculation are approximately >the same). > >For T = 0.02, however, Mathematica gives a ridiculous number for the >answer (10^9000). Also, the time taken to get that answer is about twice as >large as before. The answer should be of the order of 5. I am probably >running into problems with big number arithmetic, but I am not sure how to >get around this. It would be nice if I could at least get a reasonable >value for T=0.01. What can I do? I have Mathematica 2.2 Enhanced for Mac. I've just upgraded from 2.2 Enh to 2.2.2 Enh under Windows, and I can't seem to reproduce the problem. It might help if you posted the formulas for b and c (unless their input forms are too gory). Off the cuff, it sounds like either Mma is choking on one of the arguments b/T or c/T when T=.02, or else your program computes either b or c incorrectly when T=.02. (You didn't indicate whether b or c depends at all on T.) The most I can get Mma to do is bomb "gracefully" with an overflow message if the argument for Exp gets too large. Assuming that b and c are being computed correctly, there are two things you could try: (1) use N[b, ...] and N[c, ...] in place of b and c to force more accuracy; and (2) replace Exp[b/T]/Exp[c/T] with Exp[(b-c)/T]. As a general rule of course, I would always use the latter anyway. If b and c are large and close to each other, b-c would be small but b/T and c/T would be large, so I think you're inviting some needless rounding error. ************************************************************************** * Paul A. Rubin Phone: (517) 336-3509 * * Department of Management Fax: (517) 336-1111 * * Eli Broad Graduate School of Management Net: RUBIN at MSU.EDU * * Michigan State University * * East Lansing, MI 48824-1122 (USA) * **************************************************************************