chore: 添加虚拟环境到仓库
- 添加 backend_service/venv 虚拟环境 - 包含所有Python依赖包 - 注意:虚拟环境约393MB,包含12655个文件
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
"""Known matrices related to physics"""
|
||||
|
||||
from sympy.core.numbers import I
|
||||
from sympy.matrices.dense import MutableDenseMatrix as Matrix
|
||||
from sympy.utilities.decorator import deprecated
|
||||
|
||||
|
||||
def msigma(i):
|
||||
r"""Returns a Pauli matrix `\sigma_i` with `i=1,2,3`.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [1] https://en.wikipedia.org/wiki/Pauli_matrices
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
>>> from sympy.physics.matrices import msigma
|
||||
>>> msigma(1)
|
||||
Matrix([
|
||||
[0, 1],
|
||||
[1, 0]])
|
||||
"""
|
||||
if i == 1:
|
||||
mat = (
|
||||
(0, 1),
|
||||
(1, 0)
|
||||
)
|
||||
elif i == 2:
|
||||
mat = (
|
||||
(0, -I),
|
||||
(I, 0)
|
||||
)
|
||||
elif i == 3:
|
||||
mat = (
|
||||
(1, 0),
|
||||
(0, -1)
|
||||
)
|
||||
else:
|
||||
raise IndexError("Invalid Pauli index")
|
||||
return Matrix(mat)
|
||||
|
||||
|
||||
def pat_matrix(m, dx, dy, dz):
|
||||
"""Returns the Parallel Axis Theorem matrix to translate the inertia
|
||||
matrix a distance of `(dx, dy, dz)` for a body of mass m.
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
To translate a body having a mass of 2 units a distance of 1 unit along
|
||||
the `x`-axis we get:
|
||||
|
||||
>>> from sympy.physics.matrices import pat_matrix
|
||||
>>> pat_matrix(2, 1, 0, 0)
|
||||
Matrix([
|
||||
[0, 0, 0],
|
||||
[0, 2, 0],
|
||||
[0, 0, 2]])
|
||||
|
||||
"""
|
||||
dxdy = -dx*dy
|
||||
dydz = -dy*dz
|
||||
dzdx = -dz*dx
|
||||
dxdx = dx**2
|
||||
dydy = dy**2
|
||||
dzdz = dz**2
|
||||
mat = ((dydy + dzdz, dxdy, dzdx),
|
||||
(dxdy, dxdx + dzdz, dydz),
|
||||
(dzdx, dydz, dydy + dxdx))
|
||||
return m*Matrix(mat)
|
||||
|
||||
|
||||
def mgamma(mu, lower=False):
|
||||
r"""Returns a Dirac gamma matrix `\gamma^\mu` in the standard
|
||||
(Dirac) representation.
|
||||
|
||||
Explanation
|
||||
===========
|
||||
|
||||
If you want `\gamma_\mu`, use ``gamma(mu, True)``.
|
||||
|
||||
We use a convention:
|
||||
|
||||
`\gamma^5 = i \cdot \gamma^0 \cdot \gamma^1 \cdot \gamma^2 \cdot \gamma^3`
|
||||
|
||||
`\gamma_5 = i \cdot \gamma_0 \cdot \gamma_1 \cdot \gamma_2 \cdot \gamma_3 = - \gamma^5`
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [1] https://en.wikipedia.org/wiki/Gamma_matrices
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
>>> from sympy.physics.matrices import mgamma
|
||||
>>> mgamma(1)
|
||||
Matrix([
|
||||
[ 0, 0, 0, 1],
|
||||
[ 0, 0, 1, 0],
|
||||
[ 0, -1, 0, 0],
|
||||
[-1, 0, 0, 0]])
|
||||
"""
|
||||
if mu not in (0, 1, 2, 3, 5):
|
||||
raise IndexError("Invalid Dirac index")
|
||||
if mu == 0:
|
||||
mat = (
|
||||
(1, 0, 0, 0),
|
||||
(0, 1, 0, 0),
|
||||
(0, 0, -1, 0),
|
||||
(0, 0, 0, -1)
|
||||
)
|
||||
elif mu == 1:
|
||||
mat = (
|
||||
(0, 0, 0, 1),
|
||||
(0, 0, 1, 0),
|
||||
(0, -1, 0, 0),
|
||||
(-1, 0, 0, 0)
|
||||
)
|
||||
elif mu == 2:
|
||||
mat = (
|
||||
(0, 0, 0, -I),
|
||||
(0, 0, I, 0),
|
||||
(0, I, 0, 0),
|
||||
(-I, 0, 0, 0)
|
||||
)
|
||||
elif mu == 3:
|
||||
mat = (
|
||||
(0, 0, 1, 0),
|
||||
(0, 0, 0, -1),
|
||||
(-1, 0, 0, 0),
|
||||
(0, 1, 0, 0)
|
||||
)
|
||||
elif mu == 5:
|
||||
mat = (
|
||||
(0, 0, 1, 0),
|
||||
(0, 0, 0, 1),
|
||||
(1, 0, 0, 0),
|
||||
(0, 1, 0, 0)
|
||||
)
|
||||
m = Matrix(mat)
|
||||
if lower:
|
||||
if mu in (1, 2, 3, 5):
|
||||
m = -m
|
||||
return m
|
||||
|
||||
#Minkowski tensor using the convention (+,-,-,-) used in the Quantum Field
|
||||
#Theory
|
||||
minkowski_tensor = Matrix( (
|
||||
(1, 0, 0, 0),
|
||||
(0, -1, 0, 0),
|
||||
(0, 0, -1, 0),
|
||||
(0, 0, 0, -1)
|
||||
))
|
||||
|
||||
|
||||
@deprecated(
|
||||
"""
|
||||
The sympy.physics.matrices.mdft method is deprecated. Use
|
||||
sympy.DFT(n).as_explicit() instead.
|
||||
""",
|
||||
deprecated_since_version="1.9",
|
||||
active_deprecations_target="deprecated-physics-mdft",
|
||||
)
|
||||
def mdft(n):
|
||||
r"""
|
||||
.. deprecated:: 1.9
|
||||
|
||||
Use DFT from sympy.matrices.expressions.fourier instead.
|
||||
|
||||
To get identical behavior to ``mdft(n)``, use ``DFT(n).as_explicit()``.
|
||||
"""
|
||||
from sympy.matrices.expressions.fourier import DFT
|
||||
return DFT(n).as_mutable()
|
||||
Reference in New Issue
Block a user