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="**"
  • 如果希望每个整理后的项单独占一行,可以传入 line_break_terms=True
  • 系数支持有限 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.1.tar.gz (9.3 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.1-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file homlab_polynomial-0.1.1.tar.gz.

File metadata

  • Download URL: homlab_polynomial-0.1.1.tar.gz
  • Upload date:
  • Size: 9.3 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.1.tar.gz
Algorithm Hash digest
SHA256 1dd93dababeca1636173c14500d3784058afdb36fca7baa3adfe3a5d1eac38a6
MD5 0f64f914c6cd64c5e801b98f0b3e22d8
BLAKE2b-256 08eb202be414da4b38e83f08c4a1ea5f5a7da76e8a588d764dec467a4293e62f

See more details on using hashes here.

File details

Details for the file homlab_polynomial-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: homlab_polynomial-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 69ed29860fccf6c975c60817e0e612e0d5d01baba7bb2afc22a64030acb50038
MD5 eb0e9707c5450f84382d2cfd96d3795e
BLAKE2b-256 71370fa3a63874f85d791818e535bf84ea988a050fb069ddc3a6340d67e466ac

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