Построить вещественную часть комплексной функции в Python - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь построить следующую функцию ...

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), но ничего для сложных результатов. Могу ли я сделать это другим способом?

1 Ответ

1 голос
/ 03 ноября 2019

вы должны сообщить np.sqrt, что вы используете комплексное число, простой способ - добавить 0j в конце параметра. После того, как вы называете реальную часть вашего результата. Вы также можете использовать этот 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()

Я получаю этот участок enter image description here

С вашим кодом я получаюenter image description here

...