Unexpected results from Solve[ ]?

Posted 3 months ago
509 Views
|
4 Replies
|
1 Total Likes
|
 HiI 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
Sort By:
Posted 3 months ago
 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] 
Posted 3 months ago
 Hi 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
 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.