1. 程式人生 > >導數和梯度,切線和法向量

導數和梯度,切線和法向量

作者講得很清楚

記得在高中做數學題時,經常要求曲線的切線。見到形如clip_image002之類的函式,不管三七二十一直接求導得到clip_image004,這就是切線的斜率,然後clip_image006就得到了clip_image008處的切線。

上大學又學習了曲面切線和法向量的求法,求偏導是法向量,然後套公式求出切線。

一個經典例子如下:

clip_image001

(來自web上某個《幾何應用》ppt)

其中的向量n是F(x,y,z)的偏導數。

然而,這兩者求法看似無關啊,clip_image003中求得的clip_image005是切線,然而下面的求偏導後卻是法向量,為啥都是求導,差別這麼大呢?切平面的方程為啥又是與法向量有關呢?

當然這些問題的問答都可以通過嚴格的數學推導完成。這裡想從更加直白的角度來說明道理。

首先,法向量(梯度)是F(X)(其中X={x0,x1,x2,…xn}是n維向量)對各個分量求偏導後的結果,代表了F(X)在各個方向的變化率,整個法向量就是F(X)在各個方向上變化率疊加出來的向量。如對於一維的F(x)=

clip_image007,在x上導數是2x,意味著在x方向上是以2x的速度變化,比如當x=2時,F(x)變化率為4大於當x=1時(變化率為2)的變化率,法向量的方向只能是x方向,因為F(X)是一維。這裡的F(X)稱為隱函式,如我們平時使用的clip_image003[1]使用隱函式就可以表示成F(x,y)=f(x)-y,這樣其實F(x,y)是二維的。至於為什麼導數就是變化率,可以通過導數的定義就可以知道了(微小的dx變化引起多大的dy變化)。

那麼我們明白了,隱函式F(X)的法向量就是F(X)對各個分量的偏導數的向量。那麼為何clip_image003[2]中求得的clip_image005[1]是切線,而不是法向量?其實我們不能搞混了隱函式F(X)和clip_image003[3]。隱函式是一個函式,它的值根據X的取值不同而不同。而clip_image003[4]只是x和y之間滿足的約束關係,如建立x-y座標,兩者的約束關係可以通過圖形(直線、曲線等)來表示。比如我們可以用

clip_image009來表示一條拋物線,而且能夠在x-y座標系下畫出來。而換用隱函式表示就是F(x,y)=clip_image011,只有當F(x,y)等於一個給定值(比如0時),它才是一條拋物線,否則它只是一個函式,如果用z來代替F(x,y),那麼F(x,y)其實是一個曲面,維度上升了1。我們對F(x,y)求偏導後的結果其實就是F(x,y)的值z的變化率。

clip_image002[4]

說明F(x,y)的值究竟將在(x,y)的小範圍能變化多少,這個變化率決定於x方向上的微小變換dx和y方向上微小變換dy的線性組合,而他們的係數就是偏導數。將dx和dy換成單位向量i和j就是法向量了。那麼梯度也就反映了F(X)在某一點的變化率和變換方向。

說的有點繞口,簡而言之,對於一個隱函式F(X),我們想知道在給定X附近F(X)的變化方向和大小。怎麼去刻畫?由於X的各個方向(x0,x1,x2…xn)上變化速率和方向都不同(比如在x0上以平方級別變化,在x1上以線性方式變化,這個要根據具體的表示式了),而我們想知道他們疊加在一塊是怎麼變化的。我們使用全微分公式(比如上面的

clip_image002[6],可以知道他們之間的疊加係數就是偏導數,疊加結果就是變化率,而方向就是x0,x1,x2…相應的變化方向i,j,k…等線性組合得到的方向。

回到為什麼“clip_image003[5]中求得的clip_image005[2]是切線”的問題,其實這是最終結論了,是推匯出來的。第一步我們將clip_image003[6]寫成隱函式(這裡的x,y都是實數了,上面的X是向量),clip_image017

然後求F對x的偏導得clip_image019=clip_image005[3]

求F對y的偏導得-1。

即梯度是clip_image021

由於切線和法向量是垂直的,因此切線和法向量內積為0。

設切線方向向量為(m,n),那麼clip_image023,即clip_image002[8]

可見,切線斜率是clip_image027

回到上面藍色圖片中的曲面求切平面問題,求出某點的法向量後,在該點的切平面要滿足兩個條件,一是要過切點,而是要反映出該點的變化方向(這裡不是該點F(X)值的變化方向,而是該點自己的變化方向)。然而該點的變化最終要反映出該點F(X)值的變化,也就是切平面的變化要反映出法向量的變化,而偏導數正是反映出了F(X)值的變化。因此切平面的偏導數與F(X)的偏導數是一樣的。我們從藍色圖片中看到,切平面正是利用了F(X)的偏導數。

有上面的全微分公式,我們可以更好地理解極值,為什麼常說函式取得極值的時候導數為0呢。假設一維情況,clip_image029吧,要求極小值,兩邊微分後得clip_image031,當x=0時,導數2x為0,取得極值。否則,如果x為正數,那麼dx只需向左調整(dx<0),就能使F(x)值變小,如果x為負數,那麼dx只需向右調整(dx>0),就能使F(x)變小。因此最後調整結果是x=0。對於二維情況,clip_image002[4]

clip_image033的值在計算後會有正負值,但我們應該注意到dx可正可負,dy也可正可負,只要clip_image033[1]有一個不為0,那麼通過調整dx,dy的正負號(也就是確定怎麼移動x和y)就可以使clip_image015[1]的值變大變小。只有在偏導數都是0的情況下,無論如何調整dx和dy,clip_image002[6]都是0,取得極值。

以上只是一些個人淺顯理解,目的是建立感性認識,會存在一些紕漏。

*下面是個人更為通俗的理解:

如果函式是一維的變數,則梯度就是切線的方向

如果是大於一維的,梯度就是在這個點的法向量,並指向數值更高的等值線,這就是為什麼求最小值的時候要用負梯度