學(xué)過微積分的人都知道泰勒展開公式,它是將一個在x=x0處具有n階導(dǎo)數(shù)的函數(shù)f(x)利用關(guān)于(x-x0)的n次多項(xiàng)式來逼近函數(shù)的方法,用標(biāo)準(zhǔn)的數(shù)學(xué)術(shù)語來描述是這樣的:
泰勒公式形式 其中,表示f(x)的n階導(dǎo)數(shù),等號后的多項(xiàng)式稱為函數(shù)f(x)在x0處的泰勒展開式,剩余的Rn(x)是泰勒公式的余項(xiàng),是(x-x0)n的高階無窮小。 1、泰勒公式產(chǎn)生的背景泰勒當(dāng)年為什么要發(fā)明這條公式?因?yàn)楫?dāng)時數(shù)學(xué)界對簡單函數(shù)的研究和應(yīng)用已經(jīng)趨于成熟,而對于一些復(fù)雜函數(shù)如 sinx,cosx,e^x等,在計算任意一點(diǎn)如當(dāng)x=2.3相應(yīng)的函數(shù)值等于多少,這些數(shù)據(jù)通常需要借助計算器才可以計算出來,而且只是得到一個近似值。因此數(shù)學(xué)家們就開始了漫長的思考之路,有沒有辦法跟這些表達(dá)式的圖像長得差不多的一個多項(xiàng)式函數(shù)呢?說白了就是sinx,conx這類函數(shù)能不能用多項(xiàng)式去表達(dá)呢?這就是泰勒展開式的出發(fā)點(diǎn)!換句話說,泰勒展開公式,是對展開點(diǎn)附近的函數(shù),進(jìn)行的一個“誤差可控多項(xiàng)式仿真”。比如按照上述公式,sin(x)的多項(xiàng)式仿真如下,有了下面的多項(xiàng)式仿真表達(dá)式,求任意點(diǎn)的函數(shù)值就變得非常容易了。 sin(x)的多項(xiàng)式展開 下圖為在x=Pi處對cos(x)進(jìn)行多項(xiàng)式二次仿真的動態(tài)圖。 對cos(x)在x=pi處的多項(xiàng)式仿真 2、泰勒公式的幾何意義根據(jù)導(dǎo)數(shù)的定義,f(x)在x=x0處的導(dǎo)數(shù)f‘(x0)約等于 f(x)-f(x0) / x-x0, 泰勒公式的幾何意義 如果只考慮二項(xiàng),也即有如下公式: 3、泰勒公式的哲學(xué)意義
大家都知道《自然哲學(xué)的數(shù)學(xué)原理》是牛頓的一本劃時代名著,數(shù)學(xué)即哲學(xué),按照這種思想我們先理解一下導(dǎo)數(shù)的哲學(xué)含義。”導(dǎo)“在中文中的基本意思是”方向“的意思,所以導(dǎo)數(shù)也可以叫做”方向數(shù)“,它是表征函數(shù)每一時刻所正在運(yùn)行的方向,它決定了函數(shù)的運(yùn)行,所以說“導(dǎo)數(shù)”是函數(shù)的原因,函數(shù)是“導(dǎo)數(shù)”的結(jié)果。舉例來說:
舉個例子,假設(shè)位移 s=x^2 x,則速度v=2x 1,兩者在坐標(biāo)系中的分布如下圖所示。 位移與速度的幾何關(guān)系 在上圖中,速度函數(shù)v(t)與在X軸上的投影圍成的圖形面積為位移s,該面積與s(t)在t=2時的取值剛好相等。此外,我們還發(fā)現(xiàn):v比s的階低,v是1次多項(xiàng)式,s是2次多項(xiàng)式,也就是高維下的表達(dá),往往就比低維下簡單! 二維到三維,是工程制圖的升維飛躍,學(xué)過工程制圖的同學(xué)深有體會,一個復(fù)雜結(jié)構(gòu),如果畫在平面圖中,需要有:正視圖/左視圖/上視圖/甚至斜視圖/剖面圖等等,特別復(fù)雜,但如果在三維作圖軟件中作三維模型,一個模型就足夠了,就是這個道理。 物理學(xué)發(fā)展史中,這樣的故事層出不窮。最開始探索的物理學(xué)家的理解比較淺也比較局限,提出的理念往往很復(fù)雜,后來的物理學(xué)家在他們基礎(chǔ)上,統(tǒng)一整合了一類理論,提出新的理論反而是形式簡潔美妙,這就是升維思維的奇功。簡潔的物理公式,其實(shí)是最高級的。
按照以上理解,泰勒公式就可以理解成: 泰勒二項(xiàng)式的哲學(xué)意義 如果進(jìn)一步展開,則有如下意義: 泰勒多項(xiàng)式的哲學(xué)意義 4、敏捷研發(fā)的數(shù)學(xué)基礎(chǔ)敏捷開發(fā)(Agile)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個子項(xiàng)目,各個子項(xiàng)目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。 敏捷開發(fā)并不追求前期完美的設(shè)計、完美編碼,而是力求在很短的周期內(nèi)開發(fā)出產(chǎn)品的核心功能,盡早發(fā)布出可用的版本,然后在后續(xù)的生產(chǎn)周期內(nèi),按照新需求不斷迭代升級,完善產(chǎn)品。 用泰勒公式來解釋,這里在很短時間內(nèi)開發(fā)出的產(chǎn)品核心功能即f(x0),只是這里的f(x0)并不完全等于客戶的需求,兩者存在一個“差值”。在后續(xù)每個迭代中通過各種不同形式的測試以及不同的會議對產(chǎn)品進(jìn)行不斷的完善,即對原始產(chǎn)品f(x0)進(jìn)行不斷修訂,直至達(dá)到符合客戶的要求,實(shí)現(xiàn)對客戶需求進(jìn)行“仿真”的目的。 敏捷研發(fā)流程示意圖 |
|