Maxima 教材:隱函數微分

在 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

習題

  1. 試求雙曲線 2x2 - y2 = 1 通過點 (1,1) 的切線斜率。
  2. 令 x, y 滿足等式 x2y2 - 2x = 3,求 y 對 x 的導函數。
單維彰 (2012/09/06) --- [Prev] [Next] [Up]