繁体   English   中英

如何获得(正负)平方根

[英]How to get both (plus and minus) square roots

我想使用 python 找到一个数字的两个平方根。 我的简单代码是:

#!/usr/bin/env python
import numpy as np
x = 4.0
print 'Square roots of',x,'are:',np.sqrt(x)

这给了我以下输出:

Square roots of 4.0 are: 2.0

但我也想在答案中看到-2.0 ,即 4 的平方根将是 +/- 2,而不仅仅是 +2。

在更广泛的问题中,我想绘制一个函数f(x)=sqrt(x) 我想一次捕捉抛物线的两个分支。 现在的代码是:

#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0.0, 16.0, 0.2)
f = np.sqrt(x)
plt.plot(x, f)
plt.show()

它不绘制负 y 轴中的值。 是否可以在不玩任何技巧的情况下这样做(例如,第二次绘制并为其分配减号)? 我没有必要使用numpy

我认为 OP 对此有点困惑:4 的平方根是 +/-2,为什么numpy.sqrt只给出正数?

但这在函数描述中明确定义:

Returns
-------
y : ndarray
    An array of the same shape as `x`, containing the positive
    square-root of each element in `x`.  ...

您可以通过在 python shell 中使用numpy.info(numpy.sqrt)来查看此消息。

由于每个正数都有一对平方根,如果你想把它们全部打印出来,只需将你的print语句更改为:

print 'Square roots of',x,'are: +/-',np.sqrt(x)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM