MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Solve / NSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg95307] Re: [mg95296] Re: Solve / NSolve
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Thu, 15 Jan 2009 06:09:54 -0500 (EST)
  • References: <gkgouo$3sg$1@smc.vnet.net> <200901141055.FAA18013@smc.vnet.net>

On 14 Jan 2009, at 11:55, Jean-Marc Gulliet wrote:

>>  Solve is a
>> *symbolic* solver, i.e. it manipulates the equations in essentially  
>> an
>> algebraic way (which does not mean that it does so in a similar  
>> fashion
>> as a human being would do). OTOH, NSolve uses *numeric* algorithms.
>> (Both sets of tools and algorithms have virtually nothing in common  
>> in
>> terms of strategies; roughly speaking, symbolic manipulations for the
>> former, iterative computations for the latter, for instance.)


It is a common misconception  that Solve is "algenriaic" while NSolve  
uses "iterative computations" (it generally does not, FindRoot does  
that), or that the algorithms used by Solve and NSolve have "nothing  
in common". Both Solve and NSolve are primarily intended for solving  
algebraic equations. They also have quite a lot in common. In fact, in  
when NSolve is given a non-algebraic system it simply passes it to  
Solve and does not attempt to solve it using iterative methods.  For  
algebraic systems both Solve and NSolve rely on Groebner basis, but  
while Solve uses exact Groeber basis NSolve (at least with  
WorkingPrecision other than MachinePrecision) relies on Mathematica's  
implementation of numerical GroebnerBasis  
(GroebnerBasis[...,CoefficientDomain->InexactNumbers]), which in turns  
relies on Mathematica's "significance arithmetic".
To sum up, while Solve and NSolve usually (but not always) use  
different algorithms, they are both essentially algebraic solvers. In  
fact NSolve is more "pure algebraic" solver since it won't even touch  
non-algebraic equations passing them to Solve to try its luck on them  
(which is usually lacking).

Andrzej Kozlowski




  • Prev by Date: Re: undefined function
  • Next by Date: Re: Maximizing function which defines a routine
  • Previous by thread: Re: Solve / NSolve
  • Next by thread: Re: Re: Solve / NSolve