MATLAB: Gradient of Substituted Symbolic Variables

gradientsubstitutionsymbolic variable

Hello, I'm having a problem with finding the gradient of a substituted symbolic variable:
My code is:
syms x y z
f = x^2 + x + y^2 - y;
subs(f, y, z)
g = gradient(f, [x, z])
When I run it, the gradient turns out to be [2*x+1, 0]. It doesn't seem to calculate the z variable derivative. Does anyone know why?
Tks

Best Answer

It is because your function f is not updated. Here is what you need to do.
syms x y z
f = x^2 + x + y^2 - y;
f = subs(f,y,z);
g = gradient(f, [x,z])
The result is
g =
2*x + 1
2*z - 1