Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Brillouin function for a Ferromagnet

  • To: mathgroup at
  • Subject: [mg111141] Re: Brillouin function for a Ferromagnet
  • From: Alexei Boulbitch <alexei.boulbitch at>
  • Date: Thu, 22 Jul 2010 05:39:45 -0400 (EDT)

First I have to apologize if this is too basic for this forum... I have some temperature dependent magnetization data from a FeNi-alloy. The measurement was done from RT up to the Curie temperature T_c of the alloy. I want to compare my data to a Brillouin function with different angular momenta J. Basically I have to solve

M_0 is the saturation magnetization

How do I basically solve this and in parallel fit it to my data? In principle I want to obtain M_0 and T_c. My data consists of M(T).

Thank you for your interest and answers,

I think, Frank, that I will not make a mistake, if I write that at this site you should better write your functions in 
the Mathematica notations, so that we copy-paste them into our notebooks. This belongs to a basic politeness. However, 
let us try it like it is.  

First of all, your equation looks somewhat strange (compare
Your notations are not quite clear.  If I get it right in your case 

x=(T_c/T)(M/M_0), is it?

In this case something is wrong with your notations, since your equation MUST have a bifurcation at T=Tc, i.e. Tc/T=1.
I made a simple check with J=1 and have got Tc/T=3/2 (note that I used the traditional Brillouin function, different 
from the one you write). Here Tc/T is the parameter you used in the above equation and thus,
Tc is not the Curie temperature, but your notation. The relation Tc/T=3/2 must be the one for determination the Curie 
temperature T=2Tc/3. If you were right however, it would give T=Tc. So, there is a mistake in your formulation and 
you should first fix it.
Second, equation you are looking at is very well known, and it is well-known that it has no analytic solution, like M=M(J,T,M0). 
In contrast, the problem of finding the bifurcation point, Tc, HAS the analytic solution.
It enables one to establish the Curie point, Tc=Tc(J). You may find details in a number of popular textbooks on magnetism, 
and it is your task to read them, not of this community.
As soon as you have this solution, you get the experimental Tc value, Tc(exp) from your experimental data, and write down
the equation Tc(J)=Tc(exp). This gives you J value. You cannot get more from the combination of this equation and the
experimental data, since like this you already fix all available parameters, and the theory you are using offers you 
no degree of freedom more to play with.

I do not understand, why do you need to go beyond this simple procedure and take troubles to make fitting etc. However,
if you have a strong reason, this problem may be approached from several directions. 

First, one can try to solve equation numerically. It is only possible, if parameters
(such as Tc/T and J) have some fixed numerical values. Then FindRoot is the operator
that will make the job for you. In principle, you may try to think about a routine that will scan 
the parameter space, numerically retrieve the theoretical dependence and compare it with your experimental data.
In this case it is up to you, what routine to write. It depends upon details of your problem,
and after all, it is your problem.  

Second, one may think of what I call a "semi-analytic" solution. In this case you start with separating out 
a region in the space of parameters (i.e., J, Tc/T), where you can expect them to take values. Then you take 
a set of points (e.g. a lattice) within this region and solve your equation numerically in each point of this lattice.
You further, look for an analytic function, M/M0=f[J, Tc/T,a,b,...], (where a, b,... are some fitting parameters) which 
would approximate your numeric solution. This function is a product of your guess, and should be as simple as compatible 
with the precision level you require. For example, it could be a polynomial. The function f[J,Tc/T,a,b...] 
should be fitted to your numeric solutions. On this step the fitting parameters are a, b,..., rather than J, and thus, 
a, b,... will be fixed. For the purposes of fitting you may use Fit and/or FindFit operations. There is also a couple of 
other fitting operators that you could use in complex cases.
After the first fitting procedure is finished you have an analytical function, f[J,Tc/T], approximating your theoretical
results. Now you may fit this analytical function to your experimental data using J as the fitting parameter. 
You may again use Fit and/or FindFit for this purpose. It is this approach that I would chose myself, if I need to 
attack this problem.

Third, one can try some analytic approximation to the solution, say asymptotic expansion. This is again up to you,
which approximation to choose. As soon as you have such an approximation, you may again use Fit and/or FindFit to 
make fitting of the analytic function in hand to your experimental data. 

In any case you should familiarize yourself with Mathematica first. This pays off.

Finally, let me make a guess: since the theory you used is much too rough, the solution far from the Curie point will
badly (if at all) fit to experiment, independently of the approach you choose, or the Curie point got from the fitting 
function will be away from the experimental one.


Alexei Boulbitch, Dr. habil.
Senior Scientist
Material Development

ZAE Weiergewan
11, rue Edmond Reuter

Tel: +352 2454 2566
Fax: +352 2454 3566
Mobile: +49 (0) 151 52 40 66 44

e-mail: alexei.boulbitch at


This e-mail may contain trade secrets or privileged, undisclosed or
otherwise confidential information. If you are not the intended
recipient and have received this e-mail in error, you are hereby
notified that any review, copying or distribution of it is strictly
prohibited. Please inform us immediately and destroy the original
transmittal from your system. Thank you for your co-operation.

  • Prev by Date: Re: Easy simplification with Mathematica?
  • Next by Date: Re: Kolmogorov-Smirnov 2-sample test
  • Previous by thread: Re: Brillouin function for a Ferromagnet
  • Next by thread: Re: Brillouin function for a Ferromagnet