FindRoot problem fixed
- To: mathgroup at yoda.physics.unc.edu
- Subject: FindRoot problem fixed
- From: deutsch at bu-pub.bu.edu
- Date: Wed, 16 Sep 92 11:22:35 -0400
Hello Mathgroup, Robby Villegas of WRI sent me mail this morning which fixed a problem that one of our users here at Boston University was having with FindRoot. Robby instructed me to set Compile -> False in the FindRoot argument list. This not only fixed the problem but reduced the computation time from 33 secs to 10 sec. It is such a bizarre bug that I wanted to mention it to the mathgroup. I have enclosed my original question and the response from WRI. David Deutsch Boston University Information Technology ----------------------------------------------------------------------- Hello, I provide Mathematica support for users here at Boston University. Recently a user has shown me a problem with FindRoot. Using Timing[s] where s := N[ FindRoot[{d1v==0,d2v==0},{p2,p20},{m3,m30}] ,15] and d1v := a function of p2 and m3 d2v := a function of p2 and m3 we observed that the time for solution was about 33 seconds which was reasonable given the complexity of d1v and d2v. However, when we repeated the same calculation we observed that the time more than doubled. Further attempts showed that the time continued to increase by a factor of 2. Are there any known problems with FindRoot that people are aware of? Does anyone have any suggestions as to what could be causing a problem of this type. Thank you, David Deutsch Information Technology Boston University deutsch at bu-it.bu.edu ===================================================================== Hi David, This is a known bug in the compiler which crops up in some cases. You can solve the problem by turning off the Compiled option for FindRoot: FindRoot[your arguments, Compiled->False] I have forwarded the particular problem to the developer of Compiled. This problem report is indexed as 92i.336, so if you wish to refer to it in the future, please use this index. Yours in truth, Robby Villegas Technical Support