区分标量与矩阵的关系

时间:2017-05-06 11:09:28

标签: math matrix octave calculus

我有一个通过迭代计算得到的标量函数。我希望区分(找到方向导数)值相对于矩阵元素。在这种情况下,我应该如何使用有限差分近似。在这种情况下,diffgradient会有所帮助吗?请注意,我只想要数字导数。 我将处理的典型代码是:

n=4;
for i=1:n
  for x(i)=-2:0.04:4;
    for y(i)=-2:0.04:4;
      A(:,:,i)=[sin(x(i)), cos(y(i));2sin(x(i)),sin(x(i)+y(i)).^2];
      B(:,:,i)=[sin(x(i)), cos(x(i));3sin(y(i)),cos(x(i))];
      R(:,:,i)=horzcat(A(:,:,i),B(:,:,i));
      L(i)=det(B(:,:,i)'*A(:,:,i)B)(:,:,i));

      %how to find gradient of L with respect to x(i), y(i)
      grad_L=tr((diff(L)/diff(R)')*(gradient(R))
    endfor;
  endfor;
endfor;

我知道grad_L的最后一部分会出现语法错误,说明维度不匹配。我该如何解决这个问题。请注意,矩阵变量f的标量函数X的梯度或方向导数由nabla(f)=trace((partial f/patial(x_{ij})*X_dot给出,其中x_{ij}表示矩阵的元素,X_dot表示渐变矩阵X

0 个答案:

没有答案