У меня есть трехмерная функция, случайно определенная пользователем. Z = f (x, y)
def f(x,y):
return ((7*x*y)/(np.exp(x**2+y**2)))
Я преобразовал эту функцию в полярные координаты, подставив:
x_c = r*np.cos(theta)+x1; y_c = r*np.sin(theta)+y1;
где
theta = np.linspace(0, 2*np.pi, 30);
r, x1 и y1 постоянны
Теперь мне нужно найти корни для функции Z (тета) вполярная форма с использованием метода NR:
from scipy.optimize import newton
Z_func = f(x_c,y_c);
root = newton(Z_func,theta.any());
сообщение об ошибке показывает:
q0 = func (* ((p0,) + args)) TypeError: 'numpy.ndarray'объект не может быть вызван
метод Ньютона принимает только вызываемую функцию. Как я могу сделать функцию вызываемой функции f (x_c, y_c)?
я делаю не хочузаменить, как показано ниже, и вызвать его в методе Ньютона
7*(r*np.cos(theta)+x1)*(r*np.sin(theta)+y1))/(np.exp((r*np.cos(theta)+x1)**2+(r*np.sin(theta)+y1)**2)
, потому что я не знаю функцию f (x, y), которая будет предоставлена.
Любая идея будет оценена по достоинству