solving symbolic equations and getting parametric answers
Afficher commentaires plus anciens
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?
Réponses (2)
John D'Errico
le 19 Déc 2016
0 votes
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 commentaire
Boy
le 19 Déc 2016
Walter Roberson
le 19 Déc 2016
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 commentaires
Walter Roberson
le 19 Déc 2016
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.
Walter Roberson
le 19 Déc 2016
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.
Karan Gill
le 23 Déc 2016
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))
Walter Roberson
le 23 Déc 2016
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.
Catégories
En savoir plus sur Common Operations dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!