本文整理汇总了Python中sympy.Poly.cancel方法的典型用法代码示例。如果您正苦于以下问题:Python Poly.cancel方法的具体用法?Python Poly.cancel怎么用?Python Poly.cancel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sympy.Poly
的用法示例。
在下文中一共展示了Poly.cancel方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _simplify
# 需要导入模块: from sympy import Poly [as 别名]
# 或者: from sympy.Poly import cancel [as 别名]
def _simplify(expr):
u"""Simplifie une expression.
Alias de simplify (sympy 0.6.4).
Mais simplify n'est pas garanti d'être stable dans le temps.
(Cf. simplify.__doc__)."""
return together(expand(Poly.cancel(powsimp(expr))))
示例2: ratint_ratpart
# 需要导入模块: from sympy import Poly [as 别名]
# 或者: from sympy.Poly import cancel [as 别名]
def ratint_ratpart(f, g, x):
"""Horowitz-Ostrogradsky algorithm.
Given a field K and polynomials f and g in K[x], such that f and g
are coprime and deg(f) < deg(g), returns fractions A and B in K(x),
such that f/g = A' + B and B has square-free denominator.
"""
f, g = Poly(f, x), Poly(g, x)
u = poly_gcd(g, g.diff())
v = poly_div(g, u)[0]
n = u.degree - 1
m = v.degree - 1
d = g.degree
A_coeff = [ Symbol('a' + str(n-i), dummy=True) for i in xrange(0, n+1) ]
B_coeff = [ Symbol('b' + str(m-i), dummy=True) for i in xrange(0, m+1) ]
symbols = A_coeff + B_coeff
A = Poly(zip(A_coeff, xrange(n, -1, -1)), x)
B = Poly(zip(B_coeff, xrange(m, -1, -1)), x)
H = f - A.diff()*v + A*poly_div(u.diff()*v, u)[0] - B*u
result = solve(H.coeffs, symbols)
A = A.subs(result)
B = B.subs(result)
rat_part = Poly.cancel((A, u), x)
log_part = Poly.cancel((B, v), x)
return rat_part, log_part
示例3: test_poly_cancel
# 需要导入模块: from sympy import Poly [as 别名]
# 或者: from sympy.Poly import cancel [as 别名]
def test_poly_cancel():
assert Poly.cancel(x) == x
assert Poly.cancel(x+1) == x+1
assert Poly.cancel((x+1)/(1-x)) == (x+1)/(1-x)
assert Poly.cancel((x**2-1)/(x-1)) == x+1
assert Poly.cancel((x**2-y**2)/(x-y)) == x+y
assert Poly.cancel((x**2-y)/(x-y)) == (x**2 - y)/(x - y)
assert Poly.cancel((x**2-2)/(x+sqrt(2))) == x - sqrt(2)
assert Poly.cancel((x**2-y**2)/(x-y), x) == x+y
assert Poly.cancel((x, S.One), x) == x
assert Poly.cancel((x+1, S.One), x) == x+1
assert Poly.cancel((x+1, x-1), x) == (x+1)/(x-1)
assert Poly.cancel((x**2-1, x-1), x) == x+1
assert Poly.cancel((x**2-y**2, x-y), x, y) == x+y
assert Poly.cancel((x**2-y, x-y), x, y) == (x**2 - y)/(x - y)
assert Poly.cancel((x**2-2, x+sqrt(2)), x) == x - sqrt(2)
assert Poly.cancel((x**2-y**2, x-y), x) == x+y
assert Poly.cancel(((x**2-y**2).as_poly(x), (x-y).as_poly(x))) == x+y
f = -1/(3 + 2*sqrt(2))*(1 + 1/(3 + 2*sqrt(2))*(7 + 5*sqrt(2)))
assert Poly.cancel(f) == -2 + sqrt(2)
raises(SymbolsError, "Poly.cancel((x**2-y**2, x-y))")