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