LoginSignup
28
17

More than 1 year has passed since last update.

Pythonの計算コードをLaTeXの数式にする

Last updated at Posted at 2023-01-09

何かの理論式をもとにJupyter notebook上で計算をしていて、例えば

S = (2 * A * L**2 / a) * (2 * np.exp(-2*a*L) * np.sin(2*a*L) - 1 + np.exp(-4*a*L)) / (2 * np.exp(-2*a*L) * np.cos(2*a*L) - 1 - np.exp(-4*a*L))

のような複雑な計算があるときに、Pythonのコード上ではパッと見てコードがこれで合っているのか確認するのは大変です。

そこで、このような計算コードを
$$
S = \frac{2AL^2}{a}\frac{2e^{-2aL}\sin(2aL)-1+e^{-4aL}}{2e^{-2aL}\cos(2aL)-1-e^{-4aL}}
$$
のようなLaTeXの数式に変換して表示してくれるライブラリを探していたら、見つかったので紹介します。

latexify

リンク

インストール方法

Python3.7以上でサポートされています。

pip install latexify-py

使い方

Jupyter notebookのセルに@latexify.functionと書いた後に、数式として表示したい計算コードを関数として定義します。

例:

@latexify.function
def S(A, L, a):
  return (2 * A * L**2 / a) * (2 * np.exp(-2*a*L) * np.sin(2*a*L) - 1 + np.exp(-4*a*L)) / (2 * np.exp(-2*a*L) * np.cos(2*a*L) - 1 - np.exp(-4*a*L))

S

とすると
Screenshot 2023-01-08 23.05.36.png
のように綺麗に数式が表示されます。
また

print(S)

とするとLaTeXコードが出力されます。
Screenshot 2023-01-08 23.05.50.png

おまけ

@latexify.function(use_math_symbols=True)

とすると、コード内のalphaやbetaなどのギリシャ文字も$\alpha$や$\beta$に変換されます。
Screenshot 2023-01-08 23.19.44.png

28
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
17