Collect indexed C terms in polynomials with SymPy.
Project description
homlab_polynomial
homlab_polynomial 提供一个 Python 编程入口,用 SymPy 将包含普通变量 A 和三下标变量
C[x, y, z] 的字符串表达式整理成按不同 C[x, y, z] 分组的形式。
安装
pip install .
使用
from homlab_polynomial import organize_polynomial
expr = "A*C[1, 2, 3] + 2*C[1,2,3] + A^2*C[0,0,0]"
print(organize_polynomial(expr))
输出:
C[0, 0, 0]*(A^2) + C[1, 2, 3]*(A + 2)
负指数也支持:
organize_polynomial("A^-10*C[0,0,0] + 2*C[0,0,0]/A")
输出:
C[0, 0, 0]*(2*A^(-1) + A^(-10))
说明:
C[x, y, z]的三个下标必须是整数,可以为负数。- 输入支持用
^表示指数运算,也支持 Python/SymPy 风格的**。 - 默认输出也使用
^。如果需要**,可以传入output_power_operator="**"。 - 系数支持有限 Laurent 多项式,因此
A^-1、1/A、A^-10都可以使用。 C[x, y, z]项不会带外部负号;负号会保留在括号中的系数多项式里。- 不含
C的纯A项会作为最后的余项保留。
如果需要继续做 SymPy 计算,可以使用:
from homlab_polynomial import organize_polynomial_expr
sympy_expr = organize_polynomial_expr("A*C[1,2,3] + C[1,2,3]")
验算
organize_polynomial() 默认会在每次整理后进行随机代入验算。它会给 A 和所有出现过的
C[x, y, z] 赋非零有理数,检查整理前后的表达式是否一致。
也可以直接调用验算函数:
from homlab_polynomial import verify_simplification
verify_simplification(
"A*C[1,2,3] + C[1,2,3]",
"C[1, 2, 3]*(A + 1)",
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file homlab_polynomial-0.1.0.tar.gz.
File metadata
- Download URL: homlab_polynomial-0.1.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbe4cda4bc029fadd0657b2a7fba0ae25eb9b1b49eeb457f33f01eaf1bb8dbfc
|
|
| MD5 |
f4e48c1bb19657dd30869b9149a2bb3c
|
|
| BLAKE2b-256 |
158b03d53e5c8bbf6e32ed550a1ac8ce8322736eea948aa56fa47d142c26a4db
|
File details
Details for the file homlab_polynomial-0.1.0-py3-none-any.whl.
File metadata
- Download URL: homlab_polynomial-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
526818376c3400a655f946ec2608ab42e60938b1d1bd9539c4ee1b277c6bb38d
|
|
| MD5 |
e4108a1638a8e631e3158885c7ffca36
|
|
| BLAKE2b-256 |
8a3e8d464e524fd20627e61953e2a2559db8e0e8d2c582233563b13df84db5c2
|