Re: Solve and Reduce
- To: mathgroup at smc.vnet.net
- Subject: [mg52143] Re: [mg52128] Solve and Reduce
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 12 Nov 2004 02:13:57 -0500 (EST)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
eqn = 2500*c^2-25*c^3+3500*c*q- 320*c^2*q-1104*c*q^2-1152*q^3\[Equal]0; Needs["Graphics`"]; ImplicitPlot[eqn, {c,0,100},{q,0,5}, AspectRatio->.6,ImageSize->{288,178}, Frame->True, Axes->False, FrameLabel->{"c","q\n"}]; With[{b=(5*(-109199+1497*Sqrt[5489]))/2744}, DisplayTogether[ Plot[Root[-2500*c^2+25*c^3-3500*c*#1+ 320*c^2*#1+1104*c*#1^2+1152*#1^3&,1], {c,b,100}, PlotStyle->Blue], Plot[Root[-2500*c^2+25*c^3-3500*c*#1+ 320*c^2*#1+1104*c*#1^2+1152*#1^3&,3], {c,0,b}, PlotStyle->Red], PlotRange->{0,5}, Frame->True, Axes->False, FrameLabel->{"c","q\n"}]]; If c is defined before the equation is solved, then the roots are sorted and the positive result is last Table[Chop[(q/. Solve[eqn /. c->{.1,1.,5.,10.}[[n]], q])], {n,4}] Clear[qr]; qr[c_/;0<c<100]:= q/.Solve[eqn,q][[3]]; Plot[qr[c],{c,0,100}, PlotRange->{0,5}, Frame->True, Axes->False, FrameLabel->{"c","q\n"}]; If the equation is solved for q before c is defined then your desired result is the second one Chop[(q/. Solve[eqn, q]) /. c->{.1,1.,5.,10.}] Clear[qr]; qr[c_/;0<c<100]= q/.Solve[eqn,q][[2]]; Plot[qr[c],{c,0,100}, PlotRange->{0,5}, Frame->True, Axes->False, FrameLabel->{"c","q\n"}]; Bob Hanlon > > From: "Carol Ting" <tingyife at msu.edu> To: mathgroup at smc.vnet.net > Date: 2004/11/11 Thu AM 04:53:03 EST > To: mathgroup at smc.vnet.net > Subject: [mg52143] [mg52128] Solve and Reduce > > > Hello list, > > I want to find q as a function of c, q(c), given the following > equation: > > 2500*c^2 - 25*c^3 + 3500*c*q - 320*c^2*q - 1104*c*q^2 - 1152*q^3 == 0 > > However, each of the following three methods gives different results. > I check the Mathematica Book but still cannot figure out why there are > such differences. Could someone please explain this to me? Thanks a > lot! > > (1) Use "Reduce" > > In[5]:= > q1[c_] = Reduce[{2500*c^2 - 25*c^3 +3500*c*q - 320*c^2*q -1104*c*q^2 > -1152*q^3 == 0, c > 0,q > 0}, q] > > Out[5]= > 0<c<=(5*(-109199 + 1497*Sqrt[5489]))/2744] &&q == Root[-2500*c^2 + > 25*c^3 - 3500*c*#1 + 320*c^2*#1 + 1104*c*#1^2 + 1152*#1^3 & ,3] || > (5*(-109199 + 1497*Sqrt[5489]))/2744 < c < 100 && q ==Root[ -2500*c^2 + > 25*c^3 -3500*c*#1 + 320*c^2*#1 + 1104*c*#1^2 + 1152*#1^3 & , 1] > > In[6]:= > Plot[Root[-2500*c^2 + 25*c^3 - 3500*c*#1 + 320*c^2*#1 + 1104*c*#1^2 + > 1152*#1^3 & ,1], {c, 0, 100}] > Plot[Root[-2500*c^2 + 25*c^3 - 3500*c*#1 + 320*c^2*#1 + 1104*c*#1^2 + > 1152*#1^3 & ,3], {c, 0, 100}] > > Out[6]= > Graphics[] > > Out[7]= > Graphics[] > > > (2) Use "Solve" and Immediate assignment > > In[32]:= > qdroot1[c_] = q /. Solve[2500*c^2 - 25*c^3 + 3500*c*q - 320*c^2*q - > 1104*c*q^2 - 1152*q^3 == 0,q][[1]] > qdroot3[c_] = q /. Solve[2500*c^2 - 25*c^3 + 3500*c*q - 320*c^2*q - > 1104*c*q^2 - 1152*q^3 == 0,q][[3]] > > In[34]:= > Plot[qiroot1[c], {c, 0, 100}] > > Out[34]= > Graphics[] > > In[35]:= > Plot[qiroot3[c], {c, 0, 100}] > > Out[35]= > Graphics[] > > (3) Use "Solve" and delayed assignment > > In[28]:= > qdroot1[c_] := q /. Solve[2500*c^2 - 25*c^3 + 3500*c*q - 320*c^2*q - > 1104*c*q^2 - 1152*q^3 == 0,q][[1]] > qdroot3[c_] := q /. Solve[2500*c^2 - 25*c^3 + 3500*c*q - 320*c^2*q - > 1104*c*q^2 - 1152*q^3 == 0,q][[3]] > > In[30]:= > Plot[qdroot1[c], {c, 0, 100}] > > Out[30]= > Graphics[] > > In[31]:= > Plot[qdroot3[c], {c, 0, 100}] > > Out[31]= > Graphics[] > > > Carol > >