Matlab矩陣求導和求梯度有什么不同


原始矩陣

\[\begin{bmatrix} 1 & 3 & 4 \\ 5 & 6 & 9 \\ 2 & 7 & 8 \\ \end{bmatrix} \]

求一階導數

\[\begin{bmatrix} 4 & 3 & 5 \\ -3 & 1 & -1 \\ \end{bmatrix} \]

默認的求導方式是相鄰元素(按行或按列)做差,上面是按行做差得到結果。
如果是求二階導數,就是做一次差后,再做一次差。

求梯度

\[\begin{bmatrix} 2 & 1.5 & 1 \\ 1 & 2 & 3 \\ 5 & 3 & 1 \\ \end{bmatrix} \]

求梯度的方式是 \(當前列的梯度 = (當前列的右列-當前列的左列) ÷ 2\)
對於左邊緣而言,\(當前列的梯度 = (當前列的右列-當前列)\)
對於右邊緣而言,\(當前列的梯度 = (當前列-當前列的左列)\)

不同之處

返回的矩陣的維度不同

補充:對於符號求導,可以用下面的方法

syms x1 x2 x3;
A = [x1, x2^2, x3^3];
for i = 1:length(A)
    B(1,i) = diff(A(i));
end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM