python - 使用 SymPy / Python 进行部分分数分解
问题描述
我如何找到常数 A,B,C,D,K,S 这样
1/(x**6+1) = (A*x+B)/(x**2+1) + (C*x+D)/(x**2-sqrt(3)*x+1) + (K*x+S)/(x**2+sqrt(3)*x+1)
对每个实数 x 都成立。
我可能需要一些 sympy 代码,不确定。或任何其他可以在这里提供帮助的 Python 库。
我用手试了一下,但一点也不容易:经过1小时的计算,我发现我可能犯了一些错误。
我在 SymPy 中尝试了部分分数分解,但并没有走那么远。
我也尝试过 Wolfram Alpha,但它似乎也没有分解到那种详细程度。
请参阅下面 WA 提供的替代形式。
编辑
我完全用手做了第二次尝试,我得到了这些:
A = 0
B = 1/3
C = -1/(2*sqrt(3))
D = 1/3
K = 1/(2*sqrt(3))
S = 1/3
我如何验证这些是否正确?
编辑 2
我的问题的要点是:如何使用一些不错的/可重用的 Python 代码来做到这一点?
解决方案
您可以使用apart
in sympy 执行此操作,但apart
默认情况下会寻找合理的因式分解,因此您必须告诉它在以下情况下工作Q(sqrt(3))
:
In [37]: apart(1/(x**6+1))
Out[37]:
2
x - 2 1
- ─────────────── + ──────────
⎛ 4 2 ⎞ ⎛ 2 ⎞
3⋅⎝x - x + 1⎠ 3⋅⎝x + 1⎠
In [36]: apart(1/(x**6+1), extension=sqrt(3))
Out[36]:
√3⋅x - 2 √3⋅x + 2 1
- ───────────────── + ───────────────── + ──────────
⎛ 2 ⎞ ⎛ 2 ⎞ ⎛ 2 ⎞
6⋅⎝x - √3⋅x + 1⎠ 6⋅⎝x + √3⋅x + 1⎠ 3⋅⎝x + 1⎠
推荐阅读
- excel - 在另一个单元格中累积一个单元格的值的总和
- python - python opencv检测图像中的曲线点
- google-maps - 我们可以为 xamarin 形式的 android 和 xamarin 形式的 ios 使用单个 google map api 密钥吗?
- javascript - 用 d3 模拟音频波形
- google-api - 以编程方式批准驱动器文件访问请求
- reactjs - 仅当用户看到完整的视频组件时,如何以 react-native 播放视频?
- rest - sharepoint Addin 中的身份验证
- linux - 代理后面的 Docker 需要在启动时重新启动
- spring - 添加 javax.servlet-api 依赖项会引发 org.slf4j.impl.StaticLoggerBinder 无法加载但我不使用 sl4j 的异常,我使用的是 thymeleaf
- facebook-graph-api - Facebook API 查询子对象