使用链式规则导数在MATLAB中不起作用

问题描述

我正在尝试为给定函数导出梯度和粗麻布。当我直接进行渐变时,效果很好,但是当我应用链式规则时,效果不佳,并抛出如下错误

Error using sym/diff (line 70)
Second argument must be a variable or a nonnegative integer specifying the number of differentiations.

Error in EO_a1 (line 12)
dfr = diff(f(x),r(x));

我的MATLAB代码

syms x a b const r(x)

const = (a*x);
r(x) = (const - b);
f(x) = (1/2)*(r(x)^2);

gradient = diff(f(x));
gradient;
hessian = diff(gradient);
hessian;

%gradient applying the chain rule
dfr = diff(f(x),r(x));
dfr;
drx = diff(dfr,x);
drx;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)