Мой вопрос в том, как я могу построить трехмерный график этой функции.
def funkcja22(x, y, a =20,b= 0.2,c = 2*math.pi,d = 5.7,f = 0.8,n = 2):
fu = -a * math.exp(-b * math.sqrt( (1/n) * (x**2 + y**2) )) - math.exp((1/n) * (math.cos(c*x) + math.cos(c*y)) ) +a +math.exp(1)+d
return 1/(f*fu)
Я нашел решения, которые используют что-то подобное
x = arange(-3.0,3.0,0.1)
y = arange(-3.0,3.0,0.1)
X,Y = meshgrid(x, y) # grid of point
Z = funkcja22(X, Y) # evaluation of the function on the grid
Но с этой функцией не работает
TypeError: only size-1 arrays can be converted to Python scalars
Буду очень признателен за любую помощь в том, как переписать эту функцию или как ее построить.
@ K.Cl в первой функциональной строке X, Y оба ndarrays Я думаю, что это так
замените каждый math. на np. в своей функции, и все будет в порядке.
Да, это сработало, но поскольку @PiotrNowakowski, вероятно, использовал from numpy import *, ему просто нужно полностью удалить math., у numpy уже есть эти функции с такими именами.
Хорошо, я этого не сделал, хотя это была такая ошибка. Большое спасибо за изменение функций на numpy, решившее это
Во избежание недоразумений вам действительно стоит import numpy as np.






В какой строке появляется эта ошибка?