from sympy.abc import * する際の順番と追記事項

sympy.abc のコードには,

Caveats
=======

1. As of the time of writing this, the names ``O``, ``S``, ``I``, ``N``,
``E``, and ``Q`` are colliding with names defined in SymPy. If you import them
from both ``sympy.abc`` and ``sympy``, the second import will "win".
This is an issue only for * imports, which should only be used for short-lived
code such as interactive sessions and throwaway scripts that do not survive
until the next SymPy upgrade, where ``sympy`` may contain a different set of
names.

とある。また,sympy.abc にはギリシャ文字の大文字が定義されていない。したがって,今後は以下のようにしたらどうか,というメモ。

先に sympy.abc を import

In [1]:
# 先に sympy.abc を import
from sympy.abc import *
from sympy import *

# 小文字 λ は lamda (lambda との重複を避けるため)
# ギリシャ文字の大文字は定義されていないので,いくつか追加
Gamma, Delta, Theta, Lambda, Pi = symbols('Gamma, Delta, Theta, Lambda, Pi')
Sigma, Phi, Psi, Omega = symbols('Sigma, Phi, Psi, Omega')

init_printing()

N() も使えるし,pi, E も使える。

In [2]:
N(pi)
Out[2]:
$\displaystyle 3.14159265358979$
In [3]:
N(E)
Out[3]:
$\displaystyle 2.71828182845905$

ギリシア文字の大文字も定義される

In [4]:
lamda, Lambda, Sigma, Omega
Out[4]:
$\displaystyle \left( \lambda, \ \Lambda, \ \Sigma, \ \Omega\right)$