python - Sympy:包含平方根的多项式的因式分解
问题描述
我试图简化(或在这种情况下分解)包含平方根的多项式。考虑以下简单示例:
import sympy as sp
x, y = sp.symbols('x,y', real=True, positive=True)
sp.factor( sp.expand( (x**(1/2) + y**(1/2))**2 ) )
我预计这factor()
将基本上取消expand()
. 然而,情况并非如此,因为factor()
根本无法将扩展表达式分解回其原始形式。
有没有办法分解或简化这些表达式?
解决方案
如果你sqrt(x)
用a
和sqrt(y)
替换b
它,然后恢复原来的表达式,你会得到这个结果。SymPy 没有这样做(我想),因为有很多方法x
可以重写符号。
>>> from sympy import Dummy, sqrt, expand, factor
>>> from sympy.abc import x, y
>>> z = factor( expand( (sqrt(x) + sqrt(y))**2 ) )
>>> a,b=Dummy(),Dummy()
>>> factor(z.subs(sqrt(x),a).subs(sqrt(y),b)).xreplace({a:sqrt(x),b:sqrt(y)})
(sqrt(x) + sqrt(y))**2
推荐阅读
- flutter - 在 BoxDecoration 上为容器添加 labelText(作为 TextField)
- bash - Bash:根据文件名中的日期范围查找所有文件
- python - PySpark toPandas 函数正在改变列类型
- javascript - 如何从 Nodejs 的父目录中正确导出和要求?
- python - 一键多值
- python-3.x - DataFrame - 删除“word”列中包含停用词或数字的行
- caching - 我们可以在堆内存上使用非临时 mov 指令吗?
- user-interface - 带有电子表格范围内的值的 Google 表格侧边栏用户输入下拉菜单
- sabre - Sabre QueueAccessLLSRQ 9999 页限制
- css - 使清晰设计按钮组响应