Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I need your help in order to solve the following problem:

I have a sixth order equation:


and I solved it using Solve[] command, so I obtained 6 root objects. Now I would like to evaluate these solutions for different ranges of the equation coefficients (a between a1 and a2, b between b1 and b2, etc), selecting the only one real positive solution (that always exists for each coefficient combination) within the six, and then use the Manipulate command in order to plot the surface corresponding to these real positive solutions as function ofthe other parameters. Any help would be greatly appreciated.

Some notes:

I solved my Equation with this command line:

soldi = Solve[modqTomb - modqTomx == 0, di]

then I obtained my roots objects that are too long to post here. I then tried to plot the solution selecting only the real positive one with this line

    Plot3D[Select[Evaluate[di /. soldi] /. {csik -> 0.001},FreeQ[di /. #, Real] && (di /. #) > 0 &],{omegao, 50*2*Pi, 5000*2*Pi}, {psiqgamma, 1*10^-6, 3.38*10^8}]

But obviously it did not work. I also tryed too split the different command and a lot of other combination but no one seems to work. I'm sorry but I am a new userof Mathematica.


I defined

 omegab = \[Sqrt]((2*(omegao^2 + psiqgamma) +Sqrt[(2*psiqgamma*(psiqgamma+omegaao^2))])/2);
 omegap = \[Sqrt](omegao^2 + psiqgamma);   
 a = -omegab^2 + omegap^2;
 b = 2*di*omegap*omegab;
 c = omegab^4 - omegao^2*omegab^2 - 4*di*csik*omegao*omegap*omegab^2 -omegap^2*omegab^2 + omegao^2*omegap^2 - psiqgamma*omegab^2;
 d = 2*omegab*(-csik*omegao*omegab^2 - di*omegap*omegab^2 +di*omegap*omegao^2 + csik*omegao*omegap^2 + psiqgamma*di*omegap);
 modqTomb = ((a*c + b*d)^2 + (c*b - a*d)^2)/(c^2 + d^2)^2;
 modqTomx = (4*di^2)/(-4*di*csik*omegao*omegap - psiqgamma)^2;
 soldi = Solve[modqTomb - modqTomx == 0, di]

I would like to plot the surface of the real solution as function of the parameters: omegao, csik and psiqgamma (for each triplet I obtain 6 roots of which 1 is positive)

share|improve this question
Related (in principle a duplicate): find where 3 inequalities are simultaneously greater than zero –  Artes Jul 11 '13 at 17:34
Ok, thank you for your suggestion! –  Marta Jul 11 '13 at 17:54
And format them .. –  Öskå Jul 11 '13 at 18:11
Hello Artes, thank you for your link. I also tried to list in a Table all my solution with the command line: grafico = Table[Evaluate[di /. soldi], {omegao, 50*2*Pi, 5000*2*Pi, 990*2*Pi}, {psiqgamma, 1*10^-1, 3.38*10^8, 6.7600*10^7}, {csik, 0.000001, 0.03, 0.0060}] and then extract with "case" and "select" commands the real and positive ones and I succeeded. But then I have a list ov values and I dont' know how to match them with the coordinates and use the manipulate –  Marta Jul 11 '13 at 18:13
@Marta To get help you expect you should edit your question including definitions of di, soldi, modqTomx, modqTomb etc. then it might be possible that one will be able to provide a full answer to your problem. –  Artes Jul 11 '13 at 18:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.