我們在前面講到,線性代數和微積分是高等數學中最重要的兩門課,前者有很強的實用價值,后者能提高思維水平,雖然大家平時在工作中未必有機會直接使用它。就拿我來說,工作后用線性代數的機會可能是微積分的100倍。 但是,學沒學過微積分,思維方式會不同,眼中的世界也會有差別。因此,作為數學通識課,我們還是有必要解釋微積分的思想,但是我們也就是停留在它的思想方法上,而非細節上。 微積分有兩位主要的發明人,牛頓和萊布尼茨。牛頓發明微積分的一個重要原因是,他需要一個數學工具解決力學問題,比如如何計算速度。可能有人會說,這還不容易,在小學我們就教了,就是距離除以時間。 沒有錯,我們從小學到中學都是這么教的,但這只是一段時間??????t的平均速度。如果我要問你,在某一時刻的瞬間速度是多少?你就不知道了,或者只能拿平均速度來近似瞬間速度。或者說,拿宏觀的規律近似微觀的。 但是在很多場合,我們要了解的是瞬間速度,而不是平均速度。比如一個警察抓超速,依據的就是駕駛者的瞬間速度,而不是他一路開過來的平均速度。對于瞬間速度,牛頓之前的科學家并沒有太多的了解,當然也不會計算了。 那么牛頓是怎么解決這個問題的呢?他采用了無限逼近的方法。具體的想法是這樣的: 首先我們回到速度的定義,就是一段時間里的位移量??????S除以相應的時間??????t,我們可以寫成速度v=??????S/??????t。我把這種關系用一個示意圖表示出來: 在左邊的圖中,橫軸是時間軸,縱軸是位移,那條曲線是位移隨著時間變化的函數S(t)。我在圖中標記了從t0開始的一段時間??????t,以及相應的位移量??????S,它們構成一個直角三角形的兩條直角邊。位移量除以時間,就是斜邊的斜率。 當時間間隔??????t逐漸變小時,這個比值會變化,會越來越反映出在t0點附近的速度。我們在前面介紹了極限的概念,當??????t趨近于0時,那條反映速度的斜線,就是曲線在t0點的切線,牛頓就把那個切線的斜率,定義為在t0點的瞬間速度。我們不妨這么寫,v(t0)=??????S/??????t,當??????t→0(趨近于0)時。 通過上述方式,牛頓就從平均速度出發,定義了瞬間速度,也就是說,某個時刻的瞬間速度,是這個時刻附近一個無窮小的時間內的平均速度。 如果我們用曲線來考察這種瞬間變化,那么瞬間速度就是距離函數曲線在某個點切線的斜率。由于在每一個時間點,切線的斜率是變化的,因此如果把各個點的切線斜率畫出來,它也是一條函數曲線。 牛頓把這個由每個點切線斜率構成的函數,稱為原來函數的流數,我們今天稱之為導數。通常我們用y=f(x)表示原函數,用y=f’(x)表示它的導數。在上面的例子中,位移的變化函數S(t)是原函數,速度變化的函數v(t)則是原函數的導數,我們可以寫成v(t)=S’(t)。 正如同速度反映的是距離的變化速率,一個函數的導數所反映的也是原函數變化的速率,比如在上面的圖中,我們可以看出原函數增長越來越慢,因此它的導數,也就是增速,是逐漸下降的。 現在我們回顧一下函數這個概念,它反映的是一個變量隨著另一個變量的變化,而導數這個概念,則反映函數變化的快慢。比如拋物線函數y=x^2,它在x=1這個點,導數是2,也就是說x增加一小份(無窮小),y要增加兩小份。 相比之下,直線y=x在同一個點的增速就要慢一點,它的導數是1,也就是說x增加一小份,y也增加一小份,因此我們說拋物線在x=1這個點的變化比直線更快。 對于同一根曲線,我們前后也能對比,比如拋物線在x=2這個點的導數是4,因此我們說,它在x=2時,比x=1時,變化更快。 我們過去也會說,某個函數變化快,某個函數變化慢,但是這些都是宏觀的描述,沒有量化度量。導數解決了這個問題。我們還說,某個函數,越變越快,這也只是宏觀的、定性的分析。 有了導數的概念之后,我們就可以準確地度量任意一個函數在某一個點的變化。因此導數的本質是對變化快慢的準確量化度量。 導數是微積分中最重要的概念之一,從導數出發我們稍微往前走一小步,就進入到微積分的微分了。 什么是微分呢?它其實就是在前面有關速度的例子中,??????t趨近于零時,??????S的值。對此一般性的函數,我們用dx表示自變量趨于零的情況,用dy表示函數的微分。 如果我們對比一下導數的定義f’(x) = ??????y/??????x,其中??????x趨近于零,以及微分的定義dy =f’(x)dx,就可以看出它們講的其實是一回事,因為??????x和??????y趨近于零之后,就是dx和dy。有時人們直接將導數寫成f’(x) =dy/dx。 如果我們孤立地看微分dy,它是個無窮小,搞出這樣一個新概念有什么必要呢?我們用一個具體的例子,也就是有關圓柱體積變化趨勢的例子來說明。 我們知道,圓柱體的體積:V=??????R^2 h,如果我要問,這個體積隨半徑變化快,還是隨高度變化快?在沒有微分這個概念時,一般人根據直覺,會覺得隨半徑變化快,因為是平方關系,而它隨高度變化只是線性關系。 但真實情況是什么樣呢?我們可以把體積函數分別對半徑和高度各做一次微分,得到下面兩個結果: 體積對半徑R微分:dV/dR=2??????Rh 體積對高度h微分:dV/dh=??????R^2 大家不必關心細節,了解一下這樣兩個結論:
這時,你如果對比一下兩個微分函數就會發現,哪個變化的速率快,還真不好說。假如R等于10,h也等于10,體積就隨半徑變化快。如果R=10,h只有1,那就是隨著高度變化快。 假如你是一個工程師,要建造一個巨大的儲油罐,無論你增大半徑,還是增加高度,都有相當的工程難度。現在你的研發經費有限,只能在一個維度,增大儲油罐的體積,你應該怎么做呢? 如果你沒有學過微積分,你可能會覺得該增加半徑。但是聽了今天的課程之后你就知道,在這個儲油罐比較“扁平”時,應該增加高度。總的來講,當高度沒有達到半徑的1/2時,都應該增加高度。 我們在工作和生活中,其實經常遇到這樣的問題,一個函數取決于很多變量,這時我們不知道該在哪個方向改變,怎樣才能以最快的速度進步。微分這個工具,其實給解決這一類的問題提供了很好的方法。它引出了一個梯度的概念,利用梯度,我們就能解決這個問題了。 梯度是微分的一個擴展。在上面的圓柱體問題中,對圓柱體函數,我們可以針對半徑求微分dV/dR,也可以針對高度求微分dV/dh。如果我們把這兩個微分的結果放到一起,就是梯度,也就是說圓柱體積函數的梯度是(2??????Rh,??????R^2)。 梯度的物理含義可以這樣理解,如果你去登山,怎樣沿著最陡的方向,最快地爬到山頂呢?梯度函數告訴你在任意一點,往不同方向走的上升速度是不一樣的,因此你很容易找到前進的目標。在圓柱體函數中的梯度是上面那個式子,我們在前面得到的結論是,只要高度小于1/2的半徑,就應該優先增加高度。 如果是一個長方體,情況又如何呢?我們先把體積函數寫出來,體積等于長乘以寬乘以高度,即 V=L*W*H。接下來,我們可以用微分計算出它的梯度函數。 這里面過程我就省略了,我直接給出答案。這時體積的梯度為 (寬度乘以高度,長度乘以高度,長度乘以寬度),一共三個分量。這時你會發現,長寬高,哪個最小,就應該優先增加哪一個。 比如說,長為10,寬和高分別是4和6,這時梯度函數為(24,60,40),你應該增加寬度。這其實和我們的直覺是一致的,如果我們這樣不斷優化,最后的結果是長方體變成立方體時,體積達到最大。 不只是數學問題,其實很多時候,我們都面臨在限制要素中作選擇的問題。很多時候,我們總想全方位改進自己,但是人的精力和資源有限,因此在某一時刻,可能只能向一個方向努力。 希望梯度這個概念在你選擇方向時能夠給你啟發。很多人從直覺出發,覺得該補短板,另一些人則覺得,該把長板變得更長。第一類人會和你講木桶理論,第二類人會和你講長板理論,每一類都有很多成功的例子,也有很多失敗的教訓。 于是很多人就不知道該用哪一個理論了。事實上你今天學了梯度理論后,就很容易作決斷了,那就是在任何時刻算出梯度,然后沿著最陡,但是收益最大的路徑前進就好。 在增加長方體體積時,顯然是在采用補短板的策略,但是在增加圓柱體體積時,就看情況而定了,如果高度太低,它是嚴重的短板,需要彌補,但是只要它超過圓柱體半徑的一半時,就要增加長板(半徑)的優勢了。 如果說你有一個目標函數,它可能受到多個變量的影響,那是你長期進步的趨勢,但是在每一個時刻,你需要計算一下那個函數針對各個變量的微分,也就是梯度函數,找到進步最顯著的方向去努力。這就是通過宏觀趨勢把握微觀變化。 要點總結:我們從導數出發,介紹了微分的概念,它是我們從函數的宏觀趨勢,把握每一個點細節變化的工具。然后我們介紹了多變量函數的微分,也就是梯度的概念,并且說明了如何在有大量不確定性,或者說大量的變量中找到前進方向的方法,具體講就是往坡度最高的方向努力。 因此,微積分給我們的第一個思維提升就是練習從宏觀趨勢中把握微觀變化的趨勢,讓我們認清每一步的方向。 下一講,我們還講微積分,透過微積分討論企業增長里的奇點和連續性。我們下一講再見。——吳軍《數學通識五十講》 |
|
來自: taotao_2016 > 《數學》