第一條不用說,手動(dòng)嘛,先手動(dòng)算出求導(dǎo)公式,然后再把公式轉(zhuǎn)化為代碼,用來完成計(jì)算。
這個(gè)直觀且簡單,但每次都要手動(dòng)刪除求導(dǎo)公式然后再編寫代碼,無法復(fù)用,使用價(jià)值不大。
而且碰上復(fù)雜的函數(shù),不是專業(yè)人士上哪求導(dǎo)去。
所以這個(gè)辦法,可以pass掉了。
數(shù)值微分法直接根據(jù)微分的極限定義形式,將函數(shù)代入到公式中求解。它通殺,不管f(x)是多復(fù)雜的函數(shù)都能求積分。
但這種搞法計(jì)算量巨大,且存在roundoff
error和truncation
error的問題,一般只用于驗(yàn)證自動(dòng)求微分程序的準(zhǔn)確性上。
符號(hào)微分法可以看做手動(dòng)求解法的變形和升級(jí),將常見求導(dǎo)公式寫成固有函數(shù),而后在此基礎(chǔ)上,再基于鏈?zhǔn)角髮?dǎo)法則,對(duì)復(fù)雜公式進(jìn)行求導(dǎo)。
但它跟數(shù)值微分法一樣,都存在計(jì)算量巨大的問題,實(shí)際操作性小。
自動(dòng)微分法,使用的是數(shù)值微分法和符號(hào)微分法的集合。
葉菁菁當(dāng)慣了老師,分析的時(shí)候就下意識(shí)地說出來了。
“分兩步走,對(duì)已知函數(shù)可以直接采用數(shù)值微分法來求微分,然后作為中間結(jié)果保存;組合函數(shù),就采用符號(hào)微分法把公式展開來,再把上一步數(shù)值微分的中間結(jié)果代入進(jìn)來,這樣來結(jié)合,降低求解和計(jì)算的繁瑣度?!?/p>
聽得旁邊計(jì)算機(jī)專業(yè)的大一新生目瞪口呆。
乖乖,都說大學(xué)臥虎藏龍,果不其然啊。
看看人家化學(xué)系的師姐,微積分學(xué)的比他們計(jì)算機(jī)專業(yè)的強(qiáng)!
要知道,他們計(jì)算機(jī)專業(yè)是剛從數(shù)學(xué)系劃撥出來的呢。
葉菁菁不僅微積分學(xué)的好,微機(jī)用的更好。
雖然現(xiàn)在電腦沒有dows系統(tǒng)也沒有dos系統(tǒng),只有unix系統(tǒng),但在短暫的別扭之后,她迅速進(jìn)入狀態(tài),又是公式又是代碼,手指在鍵盤上飛舞,敲得不亦樂乎。
她敲鍵盤也就算了,老師癖還犯了,下意識(shí)地就叨叨叨解釋,她敲下的一行行代碼,都是什么用意。
整個(gè)機(jī)房安靜的鴉雀不聞,只有手指敲擊鍵盤,和她嘴巴發(fā)出的說話聲。
學(xué)生們一個(gè)都不敢吱聲,整個(gè)微機(jī)室就她一臺(tái)正經(jīng)的計(jì)算機(jī),他們用的都是訓(xùn)練模型機(jī)呢。不看她,大家還能看誰?"