在 Python 中绘制复值函数的实部
Plot real part of complex-valued function in Python
我正在尝试绘制以下函数...
f(k) = Re[k - 0.5*(sqrt(1 - 4*k) + 1)]
对于k = [-2, 2]
,但我能做的最好的是...
import matplotlib.pyplot as plt
import numpy as np
k = np.linspace(-2, 2, 100)
f = np.real(k - 0.5*(np.sqrt(1 - 4*k) + 1))
plt.plot(k, f)
plt.axis([-2,2,-10,10])
k = [-2, 1/4)
的绘图很好,但对于复杂的结果则没有。我可以用其他方式做到这一点吗?
您必须告诉 np.sqrt
您正在使用复数,一种简单的方法是在参数末尾添加 0j
。在调用结果的实部之后。您也可以使用 this numpy.lib.scimath.sqrt
import matplotlib.pyplot as plt
import numpy as np
k = np.linspace(-2, 2, 100)
f = np.array(k - 0.5*(np.sqrt(1 - 4*k+0j) + 1))
plt.plot(k, f.real)
plt.axis([-2,2,-10,10])
plt.show()
我正在理解这个情节
用你的代码我得到了
我正在尝试绘制以下函数...
f(k) = Re[k - 0.5*(sqrt(1 - 4*k) + 1)]
对于k = [-2, 2]
,但我能做的最好的是...
import matplotlib.pyplot as plt
import numpy as np
k = np.linspace(-2, 2, 100)
f = np.real(k - 0.5*(np.sqrt(1 - 4*k) + 1))
plt.plot(k, f)
plt.axis([-2,2,-10,10])
k = [-2, 1/4)
的绘图很好,但对于复杂的结果则没有。我可以用其他方式做到这一点吗?
您必须告诉 np.sqrt
您正在使用复数,一种简单的方法是在参数末尾添加 0j
。在调用结果的实部之后。您也可以使用 this numpy.lib.scimath.sqrt
import matplotlib.pyplot as plt
import numpy as np
k = np.linspace(-2, 2, 100)
f = np.array(k - 0.5*(np.sqrt(1 - 4*k+0j) + 1))
plt.plot(k, f.real)
plt.axis([-2,2,-10,10])
plt.show()
我正在理解这个情节
用你的代码我得到了