Calculating the gradient of a function
Afficher commentaires plus anciens
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!
Réponses (1)
Marco Morganti
le 5 Jan 2017
Modifié(e) : Marco Morganti
le 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 commentaires
Walter Roberson
le 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&&
le 5 Jan 2017
Walter Roberson
le 5 Jan 2017
syms parameters;
f = mseFunction(parameters);
g = gradient(f);
gfun = matlabFunction(g); %rather than eval()
g_xc = gfun(xc);
Catégories
En savoir plus sur Calculus dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!