抵消两个多项式的公因数,而不将它们合并成比率函数表达式

问题描述 投票:0回答:0

我想取消由两个多项式表达式

f1(z)=p1(z)/q1(z)
给出的有理函数
p1,q1

一个几乎完整的解决方案如下

import sympy as sp
z = sp.symbols('z')
p1 = z**2 - 1
q1 = z**2 - z
f1 = p1/q1
f2 = f1.cancel() # -> (z + 1)/z

缺少的步骤是从

q2,p2
中提取
f2
(我不知道如何完成)。

但是,这不是我的首选方法,因为我所有的代码都基于

p,q
,上面的方法看起来像是一个不必要的往返
p1,q1 -> f1 -> f2 -> p2,q1
函数表示
f
,我想避免由于性能风险和简单性。

相反,我想直接计算它们

q1, p1 -> q2,p2
,即,我寻求这种形式的解决方案

cancel_common(p1, q1) # -> z+1, z

我希望这个功能应该存在,或者应该通过提供的操作功能简单地实现,因为

q,p
为问题提供了比
p/q
更明确的输入。

我认为起点可能是

sympy.Rational
,因为它明确地基于分子-分母-表示,但不幸的是它无法处理符号
z
(即不适用于函数):

sp.Rational(p1, q1) # -> TypeError: invalid input: z**2 - 1

有谁知道如何做到这一点?

python sympy symbolic-math fractions
© www.soinside.com 2019 - 2024. All rights reserved.