Calculating the gradient of a function
Show older comments
Hello. I want to calculate the gradient of this function at the point xc:
function MSE=mseFunction(alpha,beta,y,yS)
MSE = [alpha beta; y yS];
end
xc = [100; 102];
y = 20;
yS = 50;
how I should proceed. Thanks!
Answers (1)
Marco Morganti
on 5 Jan 2017
Edited: Marco Morganti
on 6 Jan 2017
Hi Amine,
you could use gradient() along with symbolic variables to find the gradient of your function MSE().
syms parameters;
f = mseFunction(parameters);
g = gradient(f);
at this point you can evaluate g() at the desired point:
g_xc = eval(subs(g,xc));
I hope this helps
4 Comments
Walter Roberson
on 5 Jan 2017
You should never eval() a symbolic expression. Symbolic expressions are in a language that is slightly different than MATLAB. You can matlabFunction the result of gradient() and pass c to that.
amine&&
on 5 Jan 2017
Walter Roberson
on 5 Jan 2017
syms parameters;
f = mseFunction(parameters);
g = gradient(f);
gfun = matlabFunction(g); %rather than eval()
g_xc = gfun(xc);
Categories
Find more on General PDEs in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!