在 Maxima,做隱函數微分是一件相當複雜的程序。 首先,隱函數微分的指令不在核心而在套件 impdiff 內; 其實這個套件之內只有這一個函式。 然後,要先製造一個陣列,將被微分的隱函數寫在首位:[0] 或者 [0,0] 或者 [0,0,0] 的位置。陣列的維度等於自變數的數目,而函數中僅有一個應變數。 以單位圓方程式
2 2 x + y = 1為例,令 x 為自變數而 y 為應變數,以下示範 y 對 x 的一階、二階和三階導函數。
先將 impdiff 套件載入工作區:
load("impdiff");然後將隱函數寫進陣列 T 的首位
T[0] : x^2 + y^2 = 1;以下指令的第二個參數說明 x 是自變數, 而陣列 T 將增加 3 個位置 T[1], T[2], T[3], y 是應變數。
implicit_derivative (T, [x], [3], y);執行結束之後,T[k] 將是 y 對 x 的 k 階導函數。 我們可以用指令
T[1]獲得一階導函數
x - - y也可以用指令
listarray(T);列出 T 裡的所有元素。
類似地,以下範例定義了一個三變數的隱函數
f[0,0] : x^2 + y^3 - z^4 = 0;而以下指令說明 x 和 y 是自變數,z 是應變數。 執行結束之後,f[j,k] 是 z 對 x 的 j 階與對 y 的 k 階偏導函數。
implicit_derivative(f,[x,y],[2,1],z);例如 f[1,1] 是 z 對 x 和 y 各做一次偏微分的二階偏導函數
2 9xy - ----- 7 8z
習題