Message Boards Message Boards


Unexpected results from Solve[ ]?

Posted 5 months ago
4 Replies
1 Total Likes


I am having some troubles using Solve. Specifically, I want to determine the intercept curve of two surfaces. I have two functions wh[n, B] and wh1[n, B], these functions are equal for n=10^5 and B=0.32. Nevertheless, when I set B=0.32 and I use Solve to calcule the intercept point, Solve doesn’t work properly, It shows an imaginary result when It should give n=10^5. Finally, in others examples the result of Solve is { }. Would you help me with these two problems?
Thank you in advance.

4 Replies

Thank you so much for your response!

Here is an attempt. I have called (wce/wh1)==Sqrt[a] and wpe^2/wh1^2==Sqrt[b] and manipulated the equations to express a as a function of b:

DivideSides[wce[B]/wh1[n, B] == Sqrt[a], 
  wpe[n]^2/wh1[n, B]^2 == Sqrt[b], GenerateConditions -> False];
ApplySides[#^2 &, %];
MultiplySides[%, 2 e^2 n^2/(B^2 e0^2), GenerateConditions -> False];
AddSides[%, -((B^2 e^2)/m^2 + (B^2 e^2)/M^2 + (e^2 n)/(e0 m) + (
     e^2 n)/(e0 M))];
ApplySides[#^2 &, %] // FullSimplify;
MultiplySides[%, 1/(1/(B m M) e), GenerateConditions -> False]
Solve[%, a] // FullSimplify

You can check the single steps by removing the semicolons. I don't know if this is what you need.


Thank you for your quick response but I have other. Regarding wh1, I could express this function as wh1[wce, wci, wpe, wpi] and I would like obtaining an expression as (wce/wh1) = F(wpe^2/wh1^2). I need to make a plot wce/wh1 vs wpe^2/wh1^2. If I have an expression, how can I do to obtain this expression as a function of other variable as I put before? I don’t know how to do it, actually, I am doing it manually but it is very complicated. Would you help me with this? Thank you in advance.

Best, Benny

Solve the equation without giving numerical values to the variables:

Reduce[(wh[n, B] == wh1[n, B]) && e0 > 0 && 0 < m && 0 < M && B > 0 &&
   e > 0, Reals]

You will see that the only solution in the reals can be n == 0. Still, the two functions wh and wh1 are very close in numerical value:

values = {B -> 0.32, e -> 1.6*10^(-19),
   e0 -> 8.8*10^(-12),
   m -> 0.91*10^(-30),
   M -> 1.67*10^(-27)};
Plot[(wh[n, B] - wh1[n, B]) /. values,
 {n, 0, 1000000}, PlotRange -> .0001]
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract