[Date Index]
[Thread Index]
[Author Index]
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**
| |