R語言編程數(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ì)更傾向于將“分析”理解為一門數(shù)學(xué)技巧,而非數(shù)學(xué)領(lǐng)域。
我們最先接觸數(shù)學(xué)分析時(shí),是將其等同為微積分的??梢哉J(rèn)為微積分是數(shù)學(xué)分析最基本的知識(shí)對(duì)象,而微積分的理論基礎(chǔ)建立在極限之上。所以,我們可以將極限作為分析學(xué)的根基,為此,需要去理解極限的本質(zhì),而極限本身則是一個(gè)動(dòng)態(tài)的過程,例如下面這個(gè)重要極限

畫圖方法有很多,在此使用R語言,在RStudio中畫出,之所以用RStudio,是因?yàn)槠浣缑鎸?duì)初學(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)') #畫圖
得到

可以非常清晰地看到,當(dāng)x逐漸變大的時(shí)候,y是趨于1的。這個(gè)趨勢(shì)可以讓我們更加容易理解:極限是一種動(dòng)態(tài)過程;同時(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ù)。
例如無限循環(huán)小數(shù)0.999...=1這個(gè)反直覺的等式是否嚴(yán)格。在初等的觀點(diǎn)看來,可以很容易得到 10 × 0.999... = 9.999... → ( 10 − 1 ) ∗ 0.999... = 9 → 0.999... = 1 。
進(jìn)而敏銳地發(fā)現(xiàn),若用一種不厭其煩的方式去求解分式1 \1,會(huì)更加自然地得到0.999...
但無論如何,0.999...=1是反直覺的,反來自于初等數(shù)學(xué)的直覺。換句話說,初等數(shù)學(xué)的直覺存在矛盾,我們需要一個(gè)更加嚴(yán)格的有關(guān)極限的定義和表示,尤其需要建立一種可以稱之為相等的映射關(guān)系。
2 極限語言
初學(xué)數(shù)學(xué)分析的時(shí)候,很多人包括我在內(nèi),都對(duì) ε − N深惡痛絕,更妙的是,不理解這種表達(dá)方式,對(duì)做題似乎影響不大。大部分人通過加深對(duì)上面的那三個(gè)約定(以及更多約定)的記憶來完成解題,從而避免了加深對(duì)數(shù)學(xué)對(duì)象的理解。
其實(shí)這個(gè)語句并不難理解,當(dāng)我們最開始接觸無窮大這個(gè)概念的時(shí)候,是在描述自然數(shù)的個(gè)數(shù)。那時(shí)我們常說的可能是,無論你舉出一個(gè)多么大的自然數(shù),我都能舉出一個(gè)更大的數(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ū)別是定義域。序列是定義域?yàn)檎麛?shù)的特殊函數(shù)。相比之下,微積分中大多名之為函數(shù)的映射,都定義在實(shí)數(shù)域上。從而在函數(shù)的定義域中,隨便抽選出一個(gè)區(qū)間,其元素個(gè)數(shù)都是無窮多的。即對(duì)于區(qū)間 [ a , b ]而言,只要 a ≠ b ,則區(qū)間中的元素個(gè)數(shù)就是無窮多個(gè)。
好在我們有了極限的概念,極限在 ε − N意義上重新定義了相等,從而意味著每一個(gè)實(shí)數(shù)都包含了無窮多種初等的表示,即 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ù)串,中間的無窮多位,導(dǎo)致末位信息在變得毫無意義,乃至于根本不存在最后一位。
這時(shí)我們會(huì)異想天開地希望建立整數(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ū)間,存在無窮多個(gè)元素。但眾所周知,實(shí)數(shù)的個(gè)數(shù)是比整數(shù)更高的無窮,也就是說實(shí)數(shù)區(qū)間 [ − 1 , 1 ] 的元素個(gè)數(shù)是遠(yuǎn)多于整數(shù)的。

當(dāng)然,我們此后會(huì)接觸更多的讓人摸不著頭腦的函數(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')

由于到了后面,誤差變得越來越小,所以用對(duì)數(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的精度,通過計(jì)算可以得到正10000邊形算出的圓周率約為3.14159260,所以我們至今也無法知道祖沖之他老人家到底是怎么得到的。
options(digits=15) 10000*sin(pi/10000) [1] 3.14159260191267
圓周率的這種定義其實(shí)也提供了一個(gè)重要極限,即

自然對(duì)數(shù)e
很多人喜歡把自然對(duì)數(shù)和復(fù)利計(jì)算聯(lián)系在一起。

問題來了,是不是隨著 n n n逐漸增大,一年的收獲會(huì)越來越多呢?
為了計(jì)算方便,假設(shè) x = 1 ,即正常 W 存一年,一年之后本息翻倍為2W。
結(jié)果發(fā)現(xiàn)

最終這個(gè)值趨近于一個(gè)常數(shù),這個(gè)常數(shù)就定義為 e,看來一年最多翻e倍,這個(gè)方法沒辦法發(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ù)。
其證明過程也不復(fù)雜

5 洛必達(dá)法則
令 N 為常數(shù),則常規(guī)的極限運(yùn)算大致有以下幾種

所以,盡管二者都為0,但0和0也有不同。問題是這種不同是否明顯?如果定義域在 [ − 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ū)別變得明顯起來
> 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)更改

可以畫圖驗(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ù)來表示一下
x = seq(-0.1,0.1,0.001) err = log(abs(x-sin(x)),10) plot(x,err,type='l')

可見這個(gè)收斂速度是很快的,當(dāng) x = 0.001時(shí),二者之間的差就已經(jīng)達(dá)到了 10^ -9
以上就是R語言編程重讀微積分?jǐn)?shù)學(xué)分析理解極限算法 的詳細(xì)內(nèi)容,更多關(guān)于R語言編微積分?jǐn)?shù)學(xué)分析極限算法 的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
R語言開發(fā)之CSV文件的讀寫操作實(shí)現(xiàn)
這篇文章主要介紹了R語言開發(fā)之CSV文件的讀寫操作實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
R語言通過parallel包實(shí)現(xiàn)多線程運(yùn)行方式
這篇文章主要介紹了R語言通過parallel包實(shí)現(xiàn)多線程運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言 解決安裝ggplot2報(bào)錯(cuò)的問題
這篇文章主要介紹了R語言 解決安裝ggplot2報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Rcpp和RcppArmadillo創(chuàng)建R語言包的實(shí)現(xiàn)方式
這篇文章主要為大家介紹了Rcpp和RcppArmadillo創(chuàng)建R包實(shí)現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
R語言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣
這篇文章主要介紹了R語言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04

