Re: RE: [Q] Equation solving?
- To: mathgroup at smc.vnet.net
- Subject: [mg23335] Re: [mg23318] RE: [mg23282] [Q] Equation solving?
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Thu, 4 May 2000 02:59:05 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
David, In[1]:= eqns = {Q1 == (2*z + 1 - 1)^2 + 4*1*1, k1 == 1/Sqrt[Q1]*(v*z - 3/2*(2*z + 1 + 1 - Sqrt[Q1])), Q2 == (2*z + 1 - 1)^2 + 4*1*1, k2 == 1/Sqrt[Q2]*((6.1 - v)*z - 2/2*(2*z + 1 + 1 - Sqrt[Q2])), 3/2*(2*z + 1 + 1) + (k1 - 3/2)*Sqrt[Q1] == 6.1*z - (2/2*(2*z + 1 + 1) + (k2 - 2/2)*Sqrt[Q2])}; In[2]:= eqns2 = Eliminate[eqns, {Q1, Q2}]; In[3]:= ans = Solve[eqns2, {k1, k2, z}] Out[3]= {{z -> 0., k1 -> 0., k2 -> 0.}, {z -> 0., k1 -> 0., k2 -> 2.}, {z -> 0., k1 -> 3., k2 -> 0.}, {z -> 0., k1 -> 3., k2 -> 2.}} However, this is not the end of the story! Now let's try to verify the answer. In[4]:= eqns /. ans // FullSimplify Out[4]= 2. 2. {{Q1 == 4., 1. == --------, Q2 == 4., 1. == --------, Sqrt[Q1] Sqrt[Q2] 5. == 1.5 Sqrt[Q1] + 1. Sqrt[Q2]}, 2. 2. {Q1 == 4., 1. == --------, Q2 == 4., 1. + -------- == 0, Sqrt[Q1] Sqrt[Q2] 5. + 1. Sqrt[Q2] == 1.5 Sqrt[Q1]}, 2. 2. {Q1 == 4., 1. + -------- == 0, Q2 == 4., 1. == --------, Sqrt[Q1] Sqrt[Q2] 5. + 1.5 Sqrt[Q1] == 1. Sqrt[Q2]}, 2. {Q1 == 4., 1. + -------- == 0, Q2 == 4., Sqrt[Q1] 2. 1. + -------- == 0, 5. + 1.5 Sqrt[Q1] + 1. Sqrt[Q2] == 0}} Sqrt[Q2] Just look at the last equation: 5. + 1.5 Sqrt[Q1] + 1. Sqrt[Q2] == 0 . Clearly this is not possible. In general you can't rely on any solutions Mathematica gives you to equations of this sort. This is not a bug: spurious solutions naturally arise as part of the slving process and since (in general) it is impossible for Mathematica to verify their correctness (in equations with parameters) it does not even try to do so. Andrzej Kozlowski on 5/2/00 7:00 AM, David Park at djmp at earthlink.net wrote: > > >> From: James [mailto:research at proton.csl.uiuc.edu] To: mathgroup at smc.vnet.net > To: mathgroup at smc.vnet.net >> Hello! >> >> I'm a newbie to Mathematica >> and have a question about what's wrong in the following >> expression. >> (The parameters are generated by the program, >> so there're some terms that can be cancelled out.) >> >> Solve[{ Q1==(2*z+1-1)^2+4*1*1 , >> k1==(1/Sqrt[Q1])*(v*z-(3/2)*(2*z+1+1-Sqrt[Q1])) , >> Q2==(2*z+1-1)^2+4*1*1 , >> k2==(1/Sqrt[Q2])*((6.10-v)* z-(2/2)*(2*z+1+1-Sqrt[Q2])) , >> (3/2)*(2*z+1+1)+(k1-(3/2))*Sqrt[Q1] == >> 6.10*z-((2/2)*(2*z+1+1)+(k2-(2/2))*Sqrt[Q2])}, {z,v}] >> >> I want to solve the above equations according to 'z', >> and I tried several ways in expressing {z,v} or z, {v}, etc >> to get an answer(s), but all in vain. >> >> Is there anyone who can tell me how to express the equations? >> Sorry about the question, if this is trivial. >> Thank you. >> >> >> James. >> > > This seems to work: > > eqns = {Q1 == (2*z + 1 - 1)^2 + 4*1*1, > k1 == 1/Sqrt[Q1]*(v*z - 3/2*(2*z + 1 + 1 - > Sqrt[Q1])), Q2 == (2*z + 1 - 1)^2 + 4*1*1, > k2 == 1/Sqrt[Q2]*((6.1 - v)*z - > 2/2*(2*z + 1 + 1 - Sqrt[Q2])), > 3/2*(2*z + 1 + 1) + (k1 - 3/2)*Sqrt[Q1] == > 6.1*z - (2/2*(2*z + 1 + 1) + (k2 - 2/2)*Sqrt[Q2])}; > > Eliminate[eqns, {Q1, Q2}] > Solve[%, {k1, k2, z}] > > -3.*k1 + k1^2 == 0. && -2.*k2 + k2^2 == 0. && z == 0. > > {{z -> 0., k1 -> 0., k2 -> 0.}, {z -> 0., k1 -> 0., > k2 -> 2.}, {z -> 0., k1 -> 3., k2 -> 0.}, > {z -> 0., k1 -> 3., k2 -> 2.}} > > Or... > > Eliminate[eqns, {k1, k2}] > Solve[%, {Q1, Q2, z}] > > Q1 == 4. && Q2 == 4. && z == 0. && Q1 != 0. && Q2 != 0. > > {{Q1 -> 4., Q2 -> 4., z -> 0.}} > > It appears that v drops out of the equations. > > David Park > djmp at earthlink.net > http://home.earthlink.net/~djmp/ >