Построить график функции
Нужно построить график функции
при
,
. Пытаюсь вот так построить.
import matplotlib.pyplot as plt
import numpy as np
from math import log
from mpl_toolkits import mplot3d
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
# x = np.arange(1.1, 2.1, 0.1)
# y = np.arange(-1, 1, 0.1)
x = np.linspace(1.1, 2.1, 100)
y = np.linspace(-1, 1, 100)
# z = np.array([(i-1) * j * log(i**2 + j**2 - 2*i + 1) for i in x for j in y])
z = (x-1) * y * log(x**2 + y**2 - 2*x + 1)
ax.plot3D(x, y, z, 'red')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show())
Но выдает ошибку TypeError: only size-1 arrays can be converted to Python scalars. Не могу понять, что делать
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Используйте np.log()
import matplotlib.pyplot as plt
import numpy as np
from math import log
from mpl_toolkits import mplot3d
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
x = np.linspace(1.1, 2.1, 100)
y = np.linspace(-1, 1, 100)
z = (x - 1) * y * np.log(x ** 2 + y ** 2 - 2 * x + 1)
ax.plot3D(x, y, z, 'red')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
