title: Derivate using chain rule doesn't work in MATLAB
body: <p>I am trying to derive the gradient and hessian for a given function. When i directly do the gradient it works well but when I apply chain rule it doesn't works and throws me an error as below</p>
  <pre><code>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));
  </code></pre>
  <p>My MATLAB code</p>
  <pre><code>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;
  </code></pre>