MathGroup Archive 2011

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

Search the Archive

Re: Cubic equations again...

  • To: mathgroup at smc.vnet.net
  • Subject: [mg115494] Re: Cubic equations again...
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Wed, 12 Jan 2011 04:09:33 -0500 (EST)

eqn = a - K - 2 (1 + b) q - (Sqrt[K] Sqrt[zhi])/Sqrt[q] == 0;

solq[a_, b_, K_, zhi_] = Solve[eqn, q] // Simplify;

params = {a -> 10, b -> 3, K -> 1/10, zhi -> 1};

sol1 = solq[a, b, K, zhi] /. params // Simplify;

FullSimplify[eqn /. params /. sol1]

{False, True, True}

For these values of the parameters, the first root (the one that you investigated) is invalid

sol1 // N // Chop

{{q -> 1.2725408113389873}, {q -> 0.001021991380051641}, {q -> 
   1.201437197280962}}

Solve[eqn /. params, q] // N // Chop

{{q -> 0.0010219913800514346}, {q -> 1.2014371972809619}}

Reduce[eqn /. params, q, Reals] // N

q == 0.0010219913800515628 || q == 1.2014371972809617


Bob Hanlon

---- pjl52 <LEDERER at SSB.ROCHESTER.EDU> wrote: 

=============
Related questions have been asked here before but I do not see how
they apply to the following problem.

I have solved a cubic equation using Solve to get an analytic
solution.  In the case I am dealing with I am interested in a real
root.

I then plug in the actual values of coefficients into the real
solution generated and get an answer that is incorrect.

Here are the details:


In[14]:= Solve[
 a - K - 2 (1 + b) q - (Sqrt[K] Sqrt[zhi])/Sqrt[q] == 0, q]

Out[14]....presents three solutions, the first I simplify and then
assign to a function solq:

solq[a_, b_, K_, zhi_]=(a (1 + b) - (1 + b) K + (3 Sqrt[3]
      Sqrt[(1 + b)^7 K zhi (-2 (a - K)^3 + 27 (1 + b) K zhi)] + (1 +
       b)^3 (-(a - K)^3 + 27 (1 + b) K zhi))^(
  1/3))^2/(6 (1 +
   b)^2 (3 Sqrt[3]
     Sqrt[(1 + b)^7 K zhi (-2 (a - K)^3 + 27 (1 + b) K zhi)] + (1 +
      b)^3 (-(a - K)^3 + 27 (1 + b) K zhi))^(1/3))

Evaluating: solq[10, 3, .1, 1]
I get 1.2725408113389869 + 0. I  ( a real number).

Now evaluating

In[35]:= a - K - 2 (1 + b) q - (Sqrt[K] Sqrt[zhi])/Sqrt[
  q] /. {a -> 10, b -> 3, K -> .1, zhi -> 1, q ->
1.2725408113389869` }

Out[35]= -0.5606529814237877

So the solution is wrong.

The actual solution is q=1.2014371972809619

which can be confirmed by graphing or numerical solution using
FindRoot

In[12]:= Rt[a_, b_, K_, zhi_] :=
 FindRoot[a - K - 2 (1 + b) q - (Sqrt[K] Sqrt[zhi])/Sqrt[q], {q, 0.1}]

In[13]:= Rt[10, 3, .1, 1]

Out[13]= {q -> 1.2014371972809619}


Does Solve not find the root, or is the problem evaluation of the
analytical expression with the selected values?

Thank you in advance,

Phil
University of Rochester




  • Prev by Date: Parallelize & Functions That Remember Values They Have Found
  • Next by Date: Re: question on diophantine equations in Mathematica
  • Previous by thread: Cubic equations again...
  • Next by thread: Re: Cubic equations again...