Re: [Q] FindRoot & large system of eqns
- To: mathgroup at smc.vnet.net
- Subject: [mg5099] Re: [mg5070] [Q] FindRoot & large system of eqns
- From: "Paul R. Wellin" <wellin>
- Date: Wed, 30 Oct 1996 22:03:48 -0500
- Sender: owner-wri-mathgroup at wolfram.com
> I am a new user of the student edition of mathematica. I am trying to use
> it to solve a large system of non-linear equations using FindRoot in the
> form of:
>
> FindRoot[{eqn1==something,eqn2==somethingelse,...},{x1,0},{x2,0}]
>
> I have 16 equations and 16 unknowns, as is required, but it seems no matter
> how many of the system variables that I provide initial guesses for,
> mathematica always seems to state that my system is somehow not properly
> defined, guessed for...etc.
>
> Does someone have a good, straight-forward example for FindRoot applied to
> a large non-linear system? If so, please e-mail it to me at
The function you should use is Solve.
In[1]:= ?Solve
Solve[eqns, vars] attempts to solve an equation or set of equations for the
variables vars. Solve[eqns, vars, elims] attempts to solve the equations
for vars, eliminating the variables elims.
Here is a nonlinear example of its use:
In[2]:= Solve[{x^2 - 2y == 0, 3y^2 + x - 1 == 2}, {x,y}]
(The output of this is rather lengthy, so I am not including it here.)
This will give you a solution in the form of a rule (x -> something).
So if you need those solutions to manipulate later, you should do
something like this (with a simpler example):
In[9]:= Solve[{x + y == 1, x - y == 3}, {x,y}]
Out[9]= {{x -> 2, y -> -1}}
In[10]:= {x, y} /. %
Out[10]= {{2,-1}}
FindRoot is used for searching for a numerical solution to a single
equation. It uses a variant of Newton's method and hence requires some
initial guesses to get it started. It will use a secant method
if you provide two initial guesses.
Hope this helps.
---
Paul Wellin
Academic/Business Liaison
Wolfram Research, Inc.
100 Trade Center Drive
Champaign, IL 61820
phone: 217-398-0700
fax: 217-398-0747
email: wellin at wolfram.com