I've been using NSolve
a moderate (50-100 equations) size system of linear equations and it has been working splendidly (Solve
on the other hand is extremely slow) and I thought I'd look up the method it is using is there anyway to:
a) See which method Mathematica chooses to use for a particular set of equations?
b) See what are the available methods to NSolve. The documentation for NSolve
doesn't show anything specific under Details and Options.
Answer
The basic algorithm might be the same yet the underlying data types are certainly different. Generally, plain old arithmetic with exact rationals is much slower than machine arithmetic with floating point approximations, particularly if the underlying integers grow larger than the largest machine integer on your system, which is 9223372036854775807 on my Mac. Here's an example where the only difference is the starting point, 1 vs 1.0:
Nest[1 + 1/# &, 1, 1000000]; // Timing
Nest[1 + 1/# &, 1.0, 1000000]; // Timing
(* Out:
{4.714536, Null}
{0.031917, Null}
*)
Comments
Post a Comment