solving symbolic equations and getting parametric answers

There are two equation as below:
BJ = (2*J+1)/(2*J)*cot((2*J+1)/(2*J)*(y))-1/(2*J)*cot(y/(2*J))
M/Ms = BJ
and y = (g*mu*J*B)/(kB*T)+[3*J*Tc*M]/[(J+1)*Ms*T]
g, mu, B, kB are defined numbers.
The aim is to find solutions of equations around Ms and getting parametric answers as T,J,Tc.
Does anyone know how to find solutions?

Respuestas (2)

John D'Errico
John D'Errico el 19 de Dic. de 2016
Almost certainly impossible. A quite complicated nonlinear equation, with symbolic parameters. Without even trying to figure out if what you are doing makes mathematical sense, this will be impossible to find analytical results.
Some obvious questions - is BJ a variable? Or is it the product of B*J? Given that you used ^ for multiplication everywhere else, this is a valid question. Is M a variable? A known constant?
What do you mean by "find solutions of equations around Ms and getting parametric answers as T,J,Tc."? Sorry, but if you invent jargon, you need to explain it.
The point is, there are confusing issues. Regardless, you still cannot solve it.

1 comentario

Boy
Boy el 19 de Dic. de 2016
BJ is a function. M, T, and J are variables. g, mu, B, kB, Tc and Ms are constant. y is written to make equations simpler.
I need to find roots of M/Ms==BJ in terms of T and J regarding the fact that M is fixed at Ms. In Mathematica there is a command like:
MJ[T_, Tc_, j_] := FindRoot[{M/Ms == BJ[g*\[mu]*J*B/(kB*T) + 3 J*Tc*M/((J + 1)*Ms*T)]}, {M, Ms}][[1, 2]]
here one finds roots o M/Ms and BJ around Ms and it returns answers in terms of T, Tc and j.

Iniciar sesión para comentar.

I do not think you can get rid of M, not unless you preserve some other variable such as y
Ms = -3*Tc*M*kB/((J+1)*(B*g*mu-2*R*T*kB))
where
R = RootOf( (2*J*(J+1)*(B*g*mu-2*T*Z*kB)*tan(Z)-3*Tc*kB)*tan(Z*(2*J+1))+6*Tc*(J+1/2)*tan(Z)*kB, Z)
which is to say that R is the set of values, Z, such that the first expression inside the RootOf() becomes 0 -- the roots of the equation.
With that tan() you can expect that the answer will be periodic.
You can see that there is no nice closed-form solution for the root.

4 comentarios

With the updated information that Ms is a constant, rather than a variable to be solved for, then
M = -(1/3) * Ms * (J+1) * (B * g * mu - 2 * R * T * kB) / (Tc * kB)
where
R = RootOf((2 * J * (J+1) * (B * g * mu - 2 * T * Z * kB) * tan(Z) - 3 * Tc * kB) * tan(2 * J * Z + Z) + 6 * kB * (J + 1/2) * Tc * tan(Z), Z)
where again RootOf() denotes the values, Z, such that the expression becomes 0.
The general outline would be
syms BJ J y M Ms g mu B kB T Tc
eqn = [BJ == (2*J+1)*cot((2*J+1)*y/(2*J))/(2*J)-cot(y/(2*J))/(2*J), M/Ms == BJ, y == g*mu*J*B/(kB*T)+3*J*Tc*M/((J+1)*Ms*T)]
eqn1c = children(eqn(1));
eqn3c = children(eqn(3));
reduced_eqn = subs(subs(solve(eqn(2),M), eqn1c(1), eqn1c(2)),eqn3c(1), eqn3c(2))
Msol = solve(M == reduced_eqn,M)
Unfortunately, the Symbolic toolbox is not powerful enough to solve the last step into the generalized form I show above with a RootOf(). This is an unfortunate limitation on the Symbolic toolbox, that it is not always able to isolate the portions whose root needs to be found.
I found another possible representation, but unfortunately the Symbolic toolbox is not able to resolve it either.
Is there reason to believe that the equation has a solution? It does look quite complicated.
eqn =
M == -Ms*(cot(((B*J*g*mu)/(T*kB) + (3*J*M*Tc)/(Ms*T*(J + 1)))/(2*J))/(2*J) - (cot(((2*J + 1)*((B*J*g*mu)/(T*kB) + (3*J*M*Tc)/(Ms*T*(J + 1))))/(2*J))*(2*J + 1))/(2*J))
What I posted above in the comment is one expression for the solution. The RootOf() cannot be resolved any further, but at least the variable is succesfully isolated.

Iniciar sesión para comentar.

Preguntada:

Boy
el 19 de Dic. de 2016

Comentada:

el 23 de Dic. de 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by