在sympy中,我想要得到表达式的真实部分,但无法分离出真实部分.

我所做的步骤:

from sympy import *
a, b = symbols('a b')
z1 = a + b*I
z2 = simplify(expand(z1**3))

z2的输出为:

a**3 + 3*I*a**2*b - 3*a*b**2 - I*b**3

当我试图得到真实的部分时,我得到了这个:

>>> re(z2) 
re(a)**3 - 3*re(a)*im(a)**2 + 3*re(b)**2*im(b) - 3*re(a*b**2) - im(b)**3 - 3*im(a**2*b)

我原以为是a**3 - 3*a*b**2个.

推荐答案

Sympy没有意识到您希望ab是实数变量,所以它的输出假定它们是复数.如果ab是实数,则包含im(a)和/或im(b)的项为0,因为ab没有虚部.要解决这个问题,你应该用你的假设来定义你的变量,也就是说,告诉希蒙尼ab是真实的.那么结果就会和预期的一样.

from sympy import *
a, b = symbols("a b", real=True)
z1 = a + b*I
z2 = simplify(expand(z1**3))
print(re(z2))

输出:

a**3 - 3*a*b**2

Python相关问答推荐

通过优化空间在Python中的饼图中添加标签

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

rame中不兼容的d类型

带条件计算最小值

如何根据参数推断对象的返回类型?

将输入管道传输到正在运行的Python脚本中

如何找到满足各组口罩条件的第一行?

按顺序合并2个词典列表

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

迭代嵌套字典的值

如何保持服务器发送的事件连接活动?

将scipy. sparse矩阵直接保存为常规txt文件

无法在Spyder上的Pandas中将本地CSV转换为数据帧

使用嵌套对象字段的Qdrant过滤

Scipy差分进化:如何传递矩阵作为参数进行优化?

一维不匹配两个数组上的广义ufunc

在Pandas 中以十六进制显示/打印列?

对于数组中的所有元素,Pandas SELECT行都具有值

使用元组扩展字典的产品挑战