Re: How to avoid overflow or underflow in mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg88674] Re: [mg88648] How to avoid overflow or underflow in mathematica?
- From: "W_Craig Carter" <ccarter at mit.edu>
- Date: Mon, 12 May 2008 04:46:47 -0400 (EDT)
- References: <200805111914.PAA08842@smc.vnet.net>
Hello Quantum Fang, You could use arbitrary precision and do something like this (although I don't advise this approach): fermiseries = Normal[Series[1/(1 + E^((muShift) beta)), {beta, 0, 14}]]; colist = Simplify[CoefficientList[fermiseries, beta]] and then write a function that calls N[beta, bigNumber] and N[mushift, bigNumber] on the product of the two list until you have the accuracy that you want.... This is a bad idea. However your function, except for ((omega - mu - Ef)/KBT) approximately 1, is the unit step function (0 if x<0, 1/2 x=0, 1 if x>0). If you are interested in the physical aspects of this problem then expand (omega - mu - ef) near 1/(kb T). In other words, scale your energies with the thermal energy. WCC On Sun, May 11, 2008 at 3:14 PM, quantumfang <membrane at 163.com> wrote: > It's well known that Mathematica can do evaluation to arbitrary precision. But I don't know how to avoid the following trouble in computing: > > Ef = 0.; > mu=0.; > KBT = 1.*10^-10; > FL[omega_Real] := 1./(1. + E^((omega - mu - Ef)/KBT)); > > the error message shows > > General::ovfl: Overflow occurred in computation. >> > General::unfl: Underflow occurred in computation. >> > > -- W. Craig Carter
- References:
- How to avoid overflow or underflow in mathematica?
- From: quantumfang <membrane@163.com>
- How to avoid overflow or underflow in mathematica?