R語(yǔ)言編程數(shù)學(xué)分析重讀微積分理解極限算法
1 狀態(tài)變化
若將數(shù)學(xué)整體劃分為三類,則可概括為代數(shù)、幾何與分析。對(duì)于前兩者,我們很早就建立了直觀的概念,對(duì)于空間結(jié)構(gòu)及其性質(zhì)的研究,即為幾何;以數(shù)為核心的研究領(lǐng)域,即為代數(shù)。
而分析則具備更多的非數(shù)學(xué)的內(nèi)涵,所以初學(xué)者往往難以看透數(shù)學(xué)分析所指向的數(shù)學(xué)本質(zhì),如果望文生義,會(huì)更傾向于將“分析”理解為一門(mén)數(shù)學(xué)技巧,而非數(shù)學(xué)領(lǐng)域。
我們最先接觸數(shù)學(xué)分析時(shí),是將其等同為微積分的??梢哉J(rèn)為微積分是數(shù)學(xué)分析最基本的知識(shí)對(duì)象,而微積分的理論基礎(chǔ)建立在極限之上。所以,我們可以將極限作為分析學(xué)的根基,為此,需要去理解極限的本質(zhì),而極限本身則是一個(gè)動(dòng)態(tài)的過(guò)程,例如下面這個(gè)重要極限
畫(huà)圖方法有很多,在此使用R語(yǔ)言,在RStudio中畫(huà)出,之所以用RStudio,是因?yàn)槠浣缑鎸?duì)初學(xué)者來(lái)說(shuō)更友好。輸入
> x = c(1:100) #定義x為1到100的數(shù)組 > y = x*sin(1/x) > plot(x,y,type='l',xlab='x',ylab='y=x·sin(1/x)') #畫(huà)圖
得到
可以非常清晰地看到,當(dāng)x逐漸變大的時(shí)候,y是趨于1的。這個(gè)趨勢(shì)可以讓我們更加容易理解:極限是一種動(dòng)態(tài)過(guò)程;同時(shí)有助于形成對(duì)分析學(xué)的更加直觀的印象——分析是建立在狀態(tài)變化上的一種動(dòng)態(tài)的數(shù)學(xué)。
一旦建立了這種動(dòng)態(tài)的思維,就會(huì)發(fā)現(xiàn)原本安定本分的數(shù)學(xué)世界也發(fā)生了微妙的變化,例如,我們又將如何理解1這個(gè)整數(shù)。
例如無(wú)限循環(huán)小數(shù)0.999...=1這個(gè)反直覺(jué)的等式是否嚴(yán)格。在初等的觀點(diǎn)看來(lái),可以很容易得到 10 × 0.999... = 9.999... → ( 10 − 1 ) ∗ 0.999... = 9 → 0.999... = 1 。
進(jìn)而敏銳地發(fā)現(xiàn),若用一種不厭其煩的方式去求解分式1 \1,會(huì)更加自然地得到0.999...
但無(wú)論如何,0.999...=1是反直覺(jué)的,反來(lái)自于初等數(shù)學(xué)的直覺(jué)。換句話說(shuō),初等數(shù)學(xué)的直覺(jué)存在矛盾,我們需要一個(gè)更加嚴(yán)格的有關(guān)極限的定義和表示,尤其需要建立一種可以稱之為相等的映射關(guān)系。
2 極限語(yǔ)言
初學(xué)數(shù)學(xué)分析的時(shí)候,很多人包括我在內(nèi),都對(duì) ε − N深惡痛絕,更妙的是,不理解這種表達(dá)方式,對(duì)做題似乎影響不大。大部分人通過(guò)加深對(duì)上面的那三個(gè)約定(以及更多約定)的記憶來(lái)完成解題,從而避免了加深對(duì)數(shù)學(xué)對(duì)象的理解。
其實(shí)這個(gè)語(yǔ)句并不難理解,當(dāng)我們最開(kāi)始接觸無(wú)窮大這個(gè)概念的時(shí)候,是在描述自然數(shù)的個(gè)數(shù)。那時(shí)我們常說(shuō)的可能是,無(wú)論你舉出一個(gè)多么大的自然數(shù),我都能舉出一個(gè)更大的數(shù),所以自然數(shù)是無(wú)窮的。
> x = c(10:100) > y = 1-x*sin(1/x) > > plot(x,y,type='l',xlab='x',ylab='y=1-x·sin(1/x)')
其圖像為
3 序列與函數(shù)
若從映射的角度去考察序列與函數(shù),則二者最大的區(qū)別是定義域。序列是定義域?yàn)檎麛?shù)的特殊函數(shù)。相比之下,微積分中大多名之為函數(shù)的映射,都定義在實(shí)數(shù)域上。從而在函數(shù)的定義域中,隨便抽選出一個(gè)區(qū)間,其元素個(gè)數(shù)都是無(wú)窮多的。即對(duì)于區(qū)間 [ a , b ]而言,只要 a ≠ b ,則區(qū)間中的元素個(gè)數(shù)就是無(wú)窮多個(gè)。
好在我們有了極限的概念,極限在 ε − N意義上重新定義了相等,從而意味著每一個(gè)實(shí)數(shù)都包含了無(wú)窮多種初等的表示,即 1 = 0.999...0 = 0.999...1 = 0.999... n , n 1=0.999...0=0.999...1=0.999...n,n為任意長(zhǎng)度的數(shù)串,中間的無(wú)窮多位,導(dǎo)致末位信息在變得毫無(wú)意義,乃至于根本不存在最后一位。
這時(shí)我們會(huì)異想天開(kāi)地希望建立整數(shù)與實(shí)數(shù)的對(duì)應(yīng)關(guān)系,例如將整數(shù)環(huán)映射到區(qū)間 [ − 1 , 1 ] 內(nèi),這個(gè)區(qū)間也會(huì)出現(xiàn)實(shí)數(shù)區(qū)間的性質(zhì),即任意一個(gè)長(zhǎng)度大于一的子區(qū)間,存在無(wú)窮多個(gè)元素。但眾所周知,實(shí)數(shù)的個(gè)數(shù)是比整數(shù)更高的無(wú)窮,也就是說(shuō)實(shí)數(shù)區(qū)間 [ − 1 , 1 ] 的元素個(gè)數(shù)是遠(yuǎn)多于整數(shù)的。
當(dāng)然,我們此后會(huì)接觸更多的讓人摸不著頭腦的函數(shù),這些函數(shù)過(guò)于奇葩,以至于上面的這些似乎完全不適用呢。。。
4 極限常數(shù)
圓周率 π
歷史上很早就產(chǎn)生了極限思想,而割圓術(shù)就是這種思想的絕佳體現(xiàn)。
N = c(3:100) Pi = N*sin(pi/N) plot(N,Pi,type='l',xlab='N',ylab='Pi')
由于到了后面,誤差變得越來(lái)越小,所以用對(duì)數(shù)來(lái)看一下誤差的變化
N = c(3:10000) err =log(pi-N*sin(pi/N),10) plot(N,err,type='l',xlab='N',ylab='err')
可見(jiàn)割到了正10000邊形,也只能得到 1 0 − 7 10^{-7} 10−7的精度,通過(guò)計(jì)算可以得到正10000邊形算出的圓周率約為3.14159260,所以我們至今也無(wú)法知道祖沖之他老人家到底是怎么得到的。
options(digits=15) 10000*sin(pi/10000) [1] 3.14159260191267
圓周率的這種定義其實(shí)也提供了一個(gè)重要極限,即
自然對(duì)數(shù)e
很多人喜歡把自然對(duì)數(shù)和復(fù)利計(jì)算聯(lián)系在一起。
問(wèn)題來(lái)了,是不是隨著 n n n逐漸增大,一年的收獲會(huì)越來(lái)越多呢?
為了計(jì)算方便,假設(shè) x = 1 ,即正常 W 存一年,一年之后本息翻倍為2W。
結(jié)果發(fā)現(xiàn)
最終這個(gè)值趨近于一個(gè)常數(shù),這個(gè)常數(shù)就定義為 e,看來(lái)一年最多翻e倍,這個(gè)方法沒(méi)辦法發(fā)財(cái)了。但至少明白了一個(gè)著名的極限
很合理。
歐拉常數(shù) γ
對(duì) e兩側(cè)以 e為底取對(duì)數(shù),可得
是一個(gè)常數(shù):
N = c(1:10000) for(i in c(1:0000)){ H[i]=sum(1/N[0:i]) } plot(N,gamma,type='l',xlab='N',ylab='gamma') gamma[10000] [1] 0.577265664068198
我們猜對(duì)了,這個(gè)常數(shù)即歐拉常數(shù)。
其證明過(guò)程也不復(fù)雜
5 洛必達(dá)法則
令 N 為常數(shù),則常規(guī)的極限運(yùn)算大致有以下幾種
所以,盡管二者都為0,但0和0也有不同。問(wèn)題是這種不同是否明顯?如果定義域在 [ − 1 , 1 ] 這個(gè)區(qū)間,的確看不出太多的區(qū)別
x = seq(-1,1,0.01) #生成等差數(shù)列 plot(x,x^2,type='l') lines(x,x^3) lines(x,x^4) lines(x,x^5) lines(x,x^6)
然而隨著坐標(biāo)尺度的縮小,區(qū)別變得明顯起來(lái)
> x = seq(-0.1,0.1,0.001) > plot(x,x^2,type='l') > lines(x,x^3)
這意味著越是逼近0,不同階數(shù)的冪函數(shù)將漸行漸遠(yuǎn),回顧極限的定義,對(duì)于
受到這種運(yùn)算形式的啟發(fā),對(duì)于一個(gè)相對(duì)復(fù)雜的表達(dá)式,或許可以對(duì)上式進(jìn)行一點(diǎn)更改
可以畫(huà)圖驗(yàn)證一下二者在趨近于0時(shí)的特性
x = seq(-0.01,0.01,0.001) plot(x,x,ylab="x/sin(x)") lines(x,sin(x),col='red')
由于實(shí)在靠的太近,所以用差的對(duì)數(shù)來(lái)表示一下
x = seq(-0.1,0.1,0.001) err = log(abs(x-sin(x)),10) plot(x,err,type='l')
可見(jiàn)這個(gè)收斂速度是很快的,當(dāng) x = 0.001時(shí),二者之間的差就已經(jīng)達(dá)到了 10^ -9
以上就是R語(yǔ)言編程重讀微積分?jǐn)?shù)學(xué)分析理解極限算法 的詳細(xì)內(nèi)容,更多關(guān)于R語(yǔ)言編微積分?jǐn)?shù)學(xué)分析極限算法 的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn)
這篇文章主要介紹了R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python調(diào)用R語(yǔ)言實(shí)例講解
這篇文章主要介紹了Python調(diào)用R語(yǔ)言實(shí)例講解,文中介紹的非常詳細(xì),有需要的同學(xué)可以研究下2021-03-03R語(yǔ)言通過(guò)parallel包實(shí)現(xiàn)多線程運(yùn)行方式
這篇文章主要介紹了R語(yǔ)言通過(guò)parallel包實(shí)現(xiàn)多線程運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04R語(yǔ)言 解決安裝ggplot2報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了R語(yǔ)言 解決安裝ggplot2報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Rcpp和RcppArmadillo創(chuàng)建R語(yǔ)言包的實(shí)現(xiàn)方式
這篇文章主要為大家介紹了Rcpp和RcppArmadillo創(chuàng)建R包實(shí)現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11R語(yǔ)言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣
這篇文章主要介紹了R語(yǔ)言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04