1-3 L

n 若要進行微分運算,可用 diff 指令,例如:
syms a x f = sin(a*x^2); df = diff(f)
此時 MATLAB 會自動決定 f 的獨立變數是 x,並對 x 進行微分,得到的結果是

2*cos(a*x^2)*a*x

若要針對其他變數進行微分,可明確指定此變數,例如,若要計算 f 對 a 的微分,可輸入如下:

dfa = diff(f, a)
得到的結果是

cos(a*x^2)*x^2

若要計算 f 對 x 的二次微分,可輸入如下:

diff(f, 2)
得到的結果是

-4*sin(a*x^2)*a^2*x^2+2*cos(a*x^2)*a

請注意,在上述例子中,「diff(f, 2)」和「diff(f, x, 2)」會得到相同的結果。MATLAB 決定獨立變數的機制,一般都能符合常理,若有任何疑義,可由 findsym 指令來明確得知何者為獨立變數。

diff 指令也可以用於矩陣,此時會對矩陣的每一個元素進行微分,例如:

syms a x A = [cos(a*x), sin(a*x); exp(-a*x), exp(x^a)]; diff(A)
印出的結果是

[ -sin(a*x)*a, cos(a*x)*a] [ -a*exp(-a*x), x^a*a/x*exp(x^a)]

若要求得一個向量函數的 Jacobian,可用 jacobian 指令,讀者可由「help jacobian」取得線上支援,在此不贅述。


Symbolic Math Toolbox