如何防止sympy引入虚数?

问题描述

我正在使用sympy进行符号集成:

var("x",real = True)
var("a",real = True,negative = True)
integrate(exp(a * x**2),(x,-oo,+oo))

> I*sqrt(pi)/sqrt(a)

我本来希望得到sqrt(pi)/sqrt(-a)。为什么要引入虚数,我该如何防止呢?鉴于a为负数,我发现sqrt(-a)I/sqrt(a)更好。

我进一步挖掘发现以下内容:

var("x",negative = True)
sqrt(pi / a)

> sqrt(pi)*(I/sqrt(-a))

由于没有简化或其他复杂的操作发生,我期望表达式sqrt(pi / a)保持不变,这使我感到更加困惑。为什么会这样?

为什么要引入虚数?有没有一种方法可以在整个计算过程中强制使用实数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...