在 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()

我正在理解这个情节

用你的代码我得到了