Indeterminate result (numerical problem)
- To: mathgroup at smc.vnet.net
- Subject: [mg120560] Indeterminate result (numerical problem)
- From: Sebastian Hofer <sebhofer at gmail.com>
- Date: Fri, 29 Jul 2011 04:42:05 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Reply-to: comp.soft-sys.math.mathematica at googlegroups.com
I have a large symbolic expression which is a sum of a large number of fractions, which is the result of an integral. I can get numerical values by NIntegrate, but eventually the expression should go into a minimization problem, which would be much faster starting from an analytic expression. My troubles start even earlier though. When I try to evaluate the expression by N[expr/.parameters] I get Indeterminate. This is true independently of the precision given to N(machine or arbitrary precision) or the chosen parameters, which I initially chose to be rational numbers from an interval of about 1/10 to 10. Simplifying the symbolic expression is not possible due to its sheer size. Simplifying the separate terms and evaluating them gives me a result, but only if I set $MinPrecision=$MaxPrecision as in In[466]:= Block[{prec=MachinePrecision,$MaxPrecision,$MinPrecision},$MaxPrecision=$MinPrecision=prec;N[slist,prec]//Total] Out[466]= -0.0000554539 + 0.000957437 I where slist contains the simplified and evaluated terms. If I work with arbitrary precision instead I get In[462]:= Block[{prec=16,$MaxPrecision,$MinPrecision},$MaxPrecision=$MinPrecision=prec;N[slist,prec]//Total] Out[462]= -0.00001695456281093148 + 0.0009204297860912486 I The latter result coincides with what I obtain from NIntegrate, which I guess is correct. (Is this a valid assumption?) However, for different values of prec I get very strange results: prec=17,18,21: same as prec=16 prec=19: -0.001922263621488465141 - 0.003379886739497078367 I prec: Indeterminate prec=22: -0.0006868461930781501884710 - 0.0006068980872473164707112 I ... What is the best way to approach this problem? How do I know which results I can trust? Is there a better approach to start with? All tips are highly welcome! Sebastian