Mathematica System of equation with Mathematica: HELP

AI Thread Summary
The discussion revolves around solving a system of equations in Mathematica, specifically involving vector analysis and the effects of a magnetic field on the equations. The user has provided a Mathematica code that successfully finds solutions when the magnetic field (B) is set to zero, but encounters issues when B is set to 0.1, causing the program to run indefinitely without yielding results. The user seeks advice on employing numerical methods to find solutions for the system, which consists of three equations derived from the components of the cross product of vector S and the effective field Heff. They also share an improved version of the code that uses NSolve to find solutions while ensuring the angles \[Phi] and \[Theta] remain within specified bounds. Additionally, the user inquires about how to translate this code into MATLAB.
ilvreth
Messages
33
Reaction score
0
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:
<< 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:
Physics news on Phys.org
I managed to make a slight improvement.
I'll just give you the code

Code:
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?
 
Thank you very much my friend! Thank you for you help!
 
How this code could be written in MATLAB?
 

Similar threads

Replies
2
Views
3K
Replies
4
Views
1K
Replies
2
Views
4K
Replies
6
Views
7K
Replies
2
Views
1K
Replies
1
Views
2K
Replies
2
Views
2K
Replies
3
Views
2K
Replies
1
Views
5K
Back
Top