Calculating the gradient of a function
古いコメントを表示
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!
回答 (1 件)
Marco Morganti
2017 年 1 月 5 日
編集済み: Marco Morganti
2017 年 1 月 6 日
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 件のコメント
Walter Roberson
2017 年 1 月 5 日
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&&
2017 年 1 月 5 日
Walter Roberson
2017 年 1 月 5 日
syms parameters;
f = mseFunction(parameters);
g = gradient(f);
gfun = matlabFunction(g); %rather than eval()
g_xc = gfun(xc);
カテゴリ
ヘルプ センター および File Exchange で Calculus についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!