У меня есть функция, которая обновляется - я оптимизирую, используя метод Ньютона и самый крутой. Я новичок в симпати и надеюсь получить быстрое разъяснение.
x1,x2 = sym.symbols('x1 x2')
y = 2*x1 + 3*x2**2 + sym.exp(2*x1**2 + x2**2)
gy1 = sym.diff(y,x1)
gy2 = sym.diff(y,x2)
grad1 = sym.lambdify([x1,x2],gy1)(x[0],x[1])
grad2 = sym.lambdify([x1,x2],gy2)(x[0],x[1])
d = np.array([-1*grad1,-1*grad2])
l = sym.symbols('l')
theta = 2*(x[0]+l*d[0]) + 3*(x[1]+l*d[1])**2 + sym.exp(2*(x[0]+l*d[0])**2 + (x[1]+l*d[1])**2)
theta_p = sym.diff(theta,l)
моя функция, y
обновлена следующим образом: f(x_n) --> f(x_n + lambda*d_n)
- вызовите это theta(lambda)
Я обновил, как указано выше ('theta' function)
, и при выводе на экран он выдает массив numpy:
array([-63.1124487914452*l + 2 + exp([1991.5905962264*(0.0316894691665188 - l)**2])],
dtype=object)
Это уравнение, которое мне нужно, но теперь я хочу дифференцировать его по отношению Я, моя лямбда. Но Симпи так не работает.
Когда я запускаю
sym.diff(theta,l)
, я получаю такой вывод:
AttributeError: 'ImmutableDenseNDimArray' object has no attribute 'as_coeff_Mul'
Есть идеи?