Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

System of equation with Mathematica: HELP

  1. Apr 15, 2010 #1
    System of equations with Mathematica: HELP

    Hi there. I am trying to solve a system of equations. I have written a mathematica code to solve this systems
    Code (Text):
     
    << VectorAnalysis`
    Kc > Ku > 0;
    Kuz > 0;
    SS = 2.5;
    Hfz > 0;
    Kc = 0.0144;
    Ku = Kc/3;
    Kuz = 5 Kc;
    B = 0.1;
    Hfz = 0.1157676*B;
    S = {Sx, Sy, Sz};
    Eh = Kc (Sx^2  Sy^2 + Sx^2  Sz^2 + Sy^2   Sz^2) + Kuz   Sz^2 - Ku  Sx  Sy + SS  Hfz Sz;
    Heffx = D[Eh, Sx];
    Heffy = D[Eh, Sy];
    Heffz = D[Eh, Sz];
    Heff = -{Heffx, Heffy, Heffz};
    Cross[S, Heff];
    Sx = Sin[\[Phi]] Sin[\[Theta]];
    Sy = Cos[\[Phi]] Sin[\[Theta]];
    Sz = Cos[\[Theta]];
    eq = Cross[S, Heff] == 0;
    Reduce[{eq && 0 <= \[Phi] <= 2 \[Pi] && 0 <= \[Theta] <= \[Pi]}, {\[Phi], \[Theta]}, Reals]
     
    where B is the magnetic field in Tesla. When i have B=0 it finds solution (which is simple without mathematica). But when you put a magnetic field e.g. B=0.1 does not give a solution and the program is running anyway...

    Is there any way to find solutions with a numerical method or something?
    (The system of equations contains 3 equations and these are the 3 components of the vector S x Heff )
     
    Last edited: Apr 15, 2010
  2. jcsd
  3. Apr 15, 2010 #2

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    I managed to make a slight improvement.
    I'll just give you the code

    Code (Text):
    eq = Cross[S, Heff] == {0, 0, 0} // Thread // FullSimplify
    criteria[\[Phi]_, \[Theta]_] := \[Phi] \[Element]
       Reals && \[Theta] \[Element] Reals && 0 <= \[Phi] <= 2 \[Pi] &&
      0 <= \[Theta] < \[Pi]
    Select[NSolve[eq, {\[Theta], \[Phi]}],
     criteria[\[Phi] /. #, \[Theta] /. #] &]
    If you get confused, just shout, ok?
     
  4. Apr 15, 2010 #3
    Thank you very much my friend! Thank you for you help!
     
  5. Apr 19, 2010 #4
    How this code could be written in MATLAB?
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook