フィルターのクリア

Calculating the gradient of a function

6 ビュー (過去 30 日間)
amine&&
amine&& 2017 年 1 月 5 日
編集済み: Marco Morganti 2017 年 1 月 6 日
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
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 件のコメント
amine&&
amine&& 2017 年 1 月 5 日
Hi Walter, even typing :
f = @(x)mseFunction(x(1),x(2),y,yS)
g = gradient(f)
I get :
Undefined operator '.'' for input arguments of type 'function_handle'.
Error in gradient>parse_inputs (line 146)
f = f.';
Error in gradient (line 48)
[f,ndim,loc,rflag] = parse_inputs(f,varargin);
Walter Roberson
Walter Roberson 2017 年 1 月 5 日
syms parameters;
f = mseFunction(parameters);
g = gradient(f);
gfun = matlabFunction(g); %rather than eval()
g_xc = gfun(xc);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeConversion Between Symbolic and Numeric についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by