Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2001

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

Search the Archive

Re: Re: Why can't Nsolve find a solution to this ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg29121] Re: [mg29085] Re: Why can't Nsolve find a solution to this ?
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 30 May 2001 05:50:36 -0400 (EDT)
  • References: <200105272204.SAA03679@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

David Kirkby wrote:
> 
>    I'd like if possible to obtain an analytical solution to the
> following two simultaneous equations, but given that is apparently not
> likely to be found, I thought of a using NSolve to get a numerical one.
> However, Nsolve can't seem to find a solution, despite the fact that if
> I  write a computer programme in 5 minutes or less to solve it
> numerically. Am I missing something here ??
> 
> The equations arrise from optical waveguides:
> W^2=u^2 + v^2
> v=u tan(u)
> 
> W is known in advance, so I want to find the 2 variables u and v using
> the above 2 equations. I've tried:
> 
> In[2]:= NSolve[ {1.7863852^2== v^2 + u^2, u Tan[u] == v},{u,v}]
> 
> Solve::tdep: The equations appear to involve the variables to be solved
> for in
>     an essentially non-algebraic way.
> 
>                             2    2
> Out[2]= NSolve[{3.19117 == u  + v , u Tan[u] == v}, {u, v}]
> 
> Yet I know there is a solution to this : u->0.986, v->1.4893.
> 
> Any suggestions on how to get Mathematica to find such solutions ???
> 
> I'm using Mathematica 4.01 on a Sun SPARCstation 20, with Solaris 8.
> 
> --
> Dr. David Kirkby Ph.D,
> email: REMOOVE_THIS_drkirkby at AND_THIS_ntlworld.com
> former email address: davek at DELLETE_THIS_medphys.ucl.ac.uk
> web page: http://www.david-kirkby.co.uk
> Amateur radio callsign: G8WRB

NSolve handles polynomial systems with finitely many solutions. For
transcendental systems you can use FindRoot. Below I do this using
random guess values each between 0 and 1.

In[26]:= FindRoot[{1.7863852^2== v^2 + u^2, u Tan[u] == v},
{u,Random[]}, {v,Random[]}]

Out[26]//InputForm= {u -> 0.9860552189827669, v -> 1.4895862496875691}


Daniel Lichtblau
Wolfram Research


  • Prev by Date: NDsolve question
  • Next by Date: Re: Importing EPS
  • Previous by thread: Re: Why can't Nsolve find a solution to this ?
  • Next by thread: Re: Why can't Nsolve find a solution to this ?