導數(shù)可以說是研究函數(shù)行為最有用的數(shù)學工具。
在這篇文章中,我們將介紹計算機計算導數(shù)的三種方法。
為了簡單起見,我們將只討論單變量函數(shù)。但是,同樣的概念也適用于處理多元函數(shù)。
導數(shù)是什么?
函數(shù)的導數(shù)表示函數(shù)值隨參數(shù)的微小變化而變化的速率。
我們定義一個函數(shù)f(x)在點x0處的導數(shù):

視覺上,f(x)的導數(shù)是:任意x0切線的斜率:


應用這個定義,我們可以找到簡單函數(shù)導數(shù)的一般表達式,如多項式、指數(shù)、三角函數(shù)等。
因此,我們推出了兩種計算導數(shù)的方法:
通過某一點x?,根據(jù)定義
利用已知函數(shù)的導數(shù)表達式和鏈式法則
下面,我們將從計算的角度探討每種方法
數(shù)值微分
如前面所述,第一種方法意味著使用有限差分法計算某個點x?處近似導數(shù)的值:
為了實現(xiàn)這個方法,我們選擇一個小的h(接近于零)計算分數(shù)

優(yōu)點
這種方法在函數(shù)未知且只能采樣時很有用。
缺點
根據(jù)步驟h的選擇,結果的精度會受到或多或少的影響。
當涉及到高階導數(shù)和多變量函數(shù)時,數(shù)值微分就成了問題。
符號微分
第二種計算導數(shù)的方法是通過反復應用鏈式法則和已知的簡單函數(shù)的導數(shù)公式來處理數(shù)學表達式。

通過這樣做,我們找到了導數(shù)(f’(x)=…)的一般表達式,在這個表達式中,我們可以插入x?來找到某個特定點的值。
例如,讓我們在x?=1時求下列函數(shù)的導數(shù):

利用定義,我們可以證明:

那么,通過鏈式法則,我們有

接下來,插入x?=1可以得到

優(yōu)點
由于計算是象征性的,精度問題減少了。
缺點
正如預期的那樣,如果我們正在研究的函數(shù)非常復雜,符號微分就會變得非常繁瑣,尤其是在處理多元函數(shù)和/或高階導數(shù)時。