MathGroup Archive 2007

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

Search the Archive

Re: How does Solve works ??

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80211] Re: How does Solve works ??
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 15 Aug 2007 04:09:00 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <f9s3j1$abs$1@smc.vnet.net>

Ravinder K Banyal wrote:
> Hi,
> I am just a beginner in Mathematica.
> I have two simple equations as follows:
> e1=n^2-k^2;
> e2=2 n*k;
> If I solve for n and k, I should get
> n = (e1 + (e1^2 + e2^2)^1/2)^1/2 * sqrt(1/2)
> k = (-e1 + (e1^2 + e2^2)^1/2)^1/2 * sqrt(1/2)
> However when I use mathematica (ver 5.1) to solve the above equations I  
> do not get the intended results. 
> Solve[e1 -n^2+k^2 = = 0, e2-2n*k = = 0, {n,k}]
> None of the four roots generated by mathematica matches with above results.

First, we solve the system of two equations in two variables.

In[1]:= eqns = {e1 == n^2 - k^2, e2 == 2 n*k};
sols = Solve[eqns, {n, k}]

Out[2]= {{n -> (-((e1 Sqrt[-e1 - Sqrt[e1^2 + e2^2]])/Sqrt[2]) + (
     Sqrt[e1^2 + e2^2] Sqrt[-e1 - Sqrt[e1^2 + e2^2]])/Sqrt[2])/e2,
   k -> -(Sqrt[-e1 - Sqrt[e1^2 + e2^2]]/Sqrt[2])}, {n -> (
    Sqrt[2] e1 Sqrt[-e1 - Sqrt[e1^2 + e2^2]] -
     Sqrt[2] Sqrt[e1^2 + e2^2] Sqrt[-e1 - Sqrt[e1^2 + e2^2]])/(2 e2),
   k -> Sqrt[-e1 - Sqrt[e1^2 + e2^2]]/Sqrt[2]}, {n -> (
    e1 Sqrt[-(e1/2) + 1/2 Sqrt[e1^2 + e2^2]] +
     Sqrt[e1^2 + e2^2] Sqrt[-(e1/2) + 1/2 Sqrt[e1^2 + e2^2]])/e2,
   k -> Sqrt[-(e1/2) +
     1/2 Sqrt[
      e1^2 + e2^2]]}, {n -> (-Sqrt[2] e1 Sqrt[-e1 + Sqrt[
       e1^2 + e2^2]] -
     Sqrt[2] Sqrt[e1^2 + e2^2] Sqrt[-e1 + Sqrt[e1^2 + e2^2]])/(2 e2),
   k -> -Sqrt[-(e1/2) + 1/2 Sqrt[e1^2 + e2^2]]}}

We check that the solutions returned by Mathematica are correct.

In[3]:= eqns /. sols // Simplify

Out[3]= {{True, True}, {True, True}, {True, True}, {True, True}}

However, it seems that the solutions obtained by hand (at least as 
posted in the newsgroup) are incorrect (even after having added some 
required parentheses and written the square roots in Mathematica syntax).

In[4]:= eqns /. {n -> (e1 + (e1^2 + e2^2)^(1/2))^(1/2)*Sqrt[1/2],
    k -> (-e1 + (e1^2 + e2^2)^(1/2))^(1/2)*Sqrt[1/2]} // Simplify

Out[4]= {True,
  Sqrt[-e1 + Sqrt[e1^2 + e2^2]] Sqrt[e1 + Sqrt[e1^2 + e2^2]] == e2}

Note that Mathematica does not necessarily return the set of solutions 
in the form you would find by hand (the internal algorithms have usually 
nothing to do with the ones used by human beings). You can check that 
they are equivalent by using function such as *Simplify*.

-- 
Jean-Marc



  • Prev by Date: Re: Re: Intensive numerical calculations
  • Next by Date: Re: How does Solve works ??
  • Previous by thread: How does Solve works ??
  • Next by thread: Re: How does Solve works ??