Fork me on GitHub

lua

\documentclass[border=5]{standalone} 
\usepackage{tikz}
\directlua{ function coth (i)%定义双曲正切
return math.cosh(i) / math.sinh(i) end function brillouin (J, x) if x == 0 then return 0 else return (2*J+1)/(2*J)*coth((2*J+1)/(2*J)*x) - 1/(2*J)*coth(1/(2*J)*x) end end } \pgfmathdeclarefunction{Brillouin}{2}{% \edef\pgfmathresult{% \directlua{tex.print("" .. brillouin(#1,#2))}% }% } \begin{document} \begin{tikzpicture}[x=2cm/10] \draw [help lines] (-5,0) -- (10,0); \draw [help lines, -stealth] (0,-1) -- (0,1.5); \draw [densely dotted] (0,{ Brillouin(1, 100)} ) -- ++(10,0); \draw [red] plot [domain=-5:10, samples=100] (\x, { Brillouin(1, \x)}); \draw [green] plot [domain=-5:10, samples=100] (\x, { Brillouin(5, \x)}); \draw [blue] plot [domain=-5:10, samples=100] (\x, { Brillouin(50, \x)}); \end{tikzpicture} \end{document}

 

posted @ 2014-11-30 23:59  小奔奔  阅读(138)  评论(0编辑  收藏  举报