Skip to main content

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^-11/AA^-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

homlab_polynomial-0.1.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

homlab_polynomial-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

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

Hashes for homlab_polynomial-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cbe4cda4bc029fadd0657b2a7fba0ae25eb9b1b49eeb457f33f01eaf1bb8dbfc
MD5 f4e48c1bb19657dd30869b9149a2bb3c
BLAKE2b-256 158b03d53e5c8bbf6e32ed550a1ac8ce8322736eea948aa56fa47d142c26a4db

See more details on using hashes here.

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

Hashes for homlab_polynomial-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 526818376c3400a655f946ec2608ab42e60938b1d1bd9539c4ee1b277c6bb38d
MD5 e4108a1638a8e631e3158885c7ffca36
BLAKE2b-256 8a3e8d464e524fd20627e61953e2a2559db8e0e8d2c582233563b13df84db5c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page