NIntegrate-FindRoot acting up in version 5.1
- To: mathgroup at smc.vnet.net
- Subject: [mg56943] NIntegrate-FindRoot acting up in version 5.1
- From: "John Roberts" <jlr-d at jlr-d.cnc.net>
- Date: Wed, 11 May 2005 05:23:58 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I originally made the input shown below in Mathematica 4.1.1. Version 4.1.1 ran it flawlessly and always produced the correct result from NIntegrate with no warnings or error messages. Now, when I run the same notebook with version 5.1.0 it crashes and gives the "FindRoot: :nlnum" message shown below: In1: len = Sqrt[ (z^2 + (x Cos[ang] + r Sin[b] )^2 + (-r Cos[b] - x Sin[ang])^2 ] ; In2: speed = NIntegrate[ (eqn = FindRoot[ len == c b r / v, {b, 0}, WorkingPrecision->100, AccuracyGoal->80 ] ; beta = b /. eqn; fnax) , {ang, 0, 3Pi/2, 2Pi}, WorkingPrecision->80, AccuracyGoal->9 ] Out2: FindRoot: :nlnum : The function value {0. + Sqrt[0.0172266 + (0. + 0.05 <<1>>)^2 + (-0.125 - 0.05 Sin[<<1>>])^2] is not a list of numbers with dimensions {1} at {b} = {0.}. As can be seen from the input shown above, NIntegrate integrates the expression fnax with respect to the angle ang. But fnax is also a function of the initial angle beta or b (beta = b), so each time NIntegrate calculates the value of fnax it must first use FindRoot to find the value of beta that corresponds to the value of ang that it is using. I did not include the expression for fnax here because it is rather large, but there is nothing exotic about fnax, it is just a lot of terms with Sin and Cos functions. All of the values z, x, r, c v are input with 120 decimal places of precision or with infinite precision (no decimal point). It should also be noted that I checked the FindRoot part alone (without NIntegrate) at various points along the range of integration from ang = 0 to ang = 2 Pi, and FindRoot got the correct value of beta at every point with no warnings or error messages; so the problem appears to be associated with how NIntegrate uses FindRoot in Mathematica 5.1 rather than with FindRoot itself. Thanks in advance for any help you can give me, John R.
- Follow-Ups:
- Re: NIntegrate-FindRoot acting up in version 5.1
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: NIntegrate-FindRoot acting up in version 5.1
- From: DrBob <drbob@bigfoot.com>
- Re: NIntegrate-FindRoot acting up in version 5.1