用R语言理解圆周率、自然对数和欧拉常数
文章目錄
- 4 極限常數(shù)
- 圓周率π\(zhòng)piπ
- 自然對(duì)數(shù)e
- 歐拉常數(shù)γ\gammaγ
重讀微積分(一):極限
4 極限常數(shù)
圓周率π\(zhòng)piπ
歷史上很早就產(chǎn)生了極限思想,而割圓術(shù)就是這種思想的絕佳體現(xiàn)。
設(shè)正N邊形邊長為aaa,則周長為L=NaL=NaL=Na,而其邊長與邊數(shù)的關(guān)系可以表示為
a=2Rsin?πN→L=2NRsin?πNa=2R\sin\frac{\pi}{N}\to L=2NR\sin\frac{\pi}{N} a=2RsinNπ?→L=2NRsinNπ?
圓可以理解為邊數(shù)為無窮多的正多邊形,即
L=lim?n→∞2nRsin?πn=2πRL=\lim_{n\to\infty}2nR\sin\frac{\pi}{n}=2\pi R L=n→∞lim?2nRsinnπ?=2πR
由于古人不知道圓周率,所以需要通過不斷地測(cè)量多邊形的邊長和周長來逼近,則對(duì)于正多邊形而言
Π=L2R=Nsin?πN\Pi=\frac{L}{2R}=N\sin\frac{\pi}{N}Π=2RL?=NsinNπ?
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邊形,也只能得到10?710^{-7}10?7的精度,通過計(jì)算可以得到正10000邊形算出的圓周率約為3.14159260,所以我們至今也無法知道祖沖之他老人家到底是怎么得到的。
options(digits=15) 10000*sin(pi/10000) [1] 3.14159260191267圓周率的這種定義其實(shí)也提供了一個(gè)重要極限,即
π=lim?n→∞Nsin?πN→lim?x→0sin?xx=1\pi=\lim_{n\to\infty}N\sin\frac{\pi}{N}\to\lim_{x\to0}\frac{\sin x}{x}=1 π=n→∞lim?NsinNπ?→x→0lim?xsinx?=1
自然對(duì)數(shù)e
很多人喜歡把自然對(duì)數(shù)和復(fù)利計(jì)算聯(lián)系在一起。
假設(shè)某銀行的年利率為xxx,即存入W元,一年之后本息合計(jì)W(1+x)W(1+x)W(1+x);如果一年之后將本息重新存入銀行,則再過一年,本息合計(jì)為W(1+x)2W(1+x)^2W(1+x)2,重復(fù)操作nnn年之后,則其本息之和為W(1+x)nW(1+x)^nW(1+x)n。
假設(shè)這家銀行可以按月算利率,則每月利率為x12\frac{x}{12}12x?,如果按月存取,則每年本息之和為W(1+x12)12W(1+\frac{x}{12})^{12}W(1+12x?)12。
假設(shè)這家很行可以按照任意時(shí)間算利率,若存錢時(shí)間為1n\frac{1}{n}n1?年,則利率為xn\frac{x}{n}nx?,相應(yīng)地一年的本息之和為W(1+xn)nW(1+\frac{x}{n})^nW(1+nx?)n。
那么問題來了,是不是隨著nnn逐漸增大,一年的收獲會(huì)越來越多呢?
為了計(jì)算方便,假設(shè)x=1x=1x=1,即正常WWW存一年,一年之后本息翻倍為2W。
結(jié)果發(fā)現(xiàn)
最終這個(gè)值趨近于一個(gè)常數(shù),這個(gè)常數(shù)就定義為eee,看來一年最多翻e倍,這個(gè)方法沒辦法發(fā)財(cái)了。但至少明白了一個(gè)著名的極限
e=lim?n→∞(1+1n)n=2.7182818...e=\lim_{n\to\infty}(1+\frac{1}{n})^n=2.7182818... e=n→∞lim?(1+n1?)n=2.7182818...
當(dāng)然,銀行不太可能有翻倍這么爽的年利率,設(shè)為xxx的話,則有
ex=(lim?n→∞(1+1n)n)x=lim?n→∞(1+1n)nx=lim?m→∞(1+xm)me^x=(\lim_{n\to\infty}(1+\frac{1}{n})^n)^x=\lim_{n\to\infty}(1+\frac{1}{n})^{nx}=\lim_{m\to\infty}(1+\frac{x}{m})^m ex=(n→∞lim?(1+n1?)n)x=n→∞lim?(1+n1?)nx=m→∞lim?(1+mx?)m
很合理。
歐拉常數(shù)γ\gammaγ
對(duì)eee兩側(cè)以eee為底取對(duì)數(shù),可得
1=lim?n→∞nln?(1+1n)=lim?n→∞nln?(n+1n)=lim?n→∞ln?(n+1)?ln?n1n1=\lim_{n\to\infty}n\ln(1+\frac{1}{n})=\lim_{n\to\infty}n\ln(\frac{n+1}{n})=\lim_{n\to\infty}\frac{\ln(n+1)-\ln n}{\frac{1}{n}} 1=n→∞lim?nln(1+n1?)=n→∞lim?nln(nn+1?)=n→∞lim?n1?ln(n+1)?lnn?
根據(jù)這個(gè)式子,我們可以猜測(cè)
γ=∑n=1∞1n?∑n=1∞[ln?(n+1)?ln?n]=lim?N→∞∑n=1N1n?ln?N\gamma=\sum_{n=1}^\infty\frac{1}{n}-\sum_{n=1}^\infty[\ln(n+1)-\ln n]=\lim_{N\to\infty}\sum_{n=1}^N\frac{1}{n}-\ln N γ=n=1∑∞?n1??n=1∑∞?[ln(n+1)?lnn]=N→∞lim?n=1∑N?n1??lnN
是一個(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ù)雜
ln?N=∫1N1xdx=∫1N1x+1?x??1?x?dx=∑n=1N1n+∫1N1x?1?x?dx\begin{aligned} \ln N&=\int^N_1\frac{1}{x}\text dx=\int^N_1\frac{1}{x}+\frac{1}{\lfloor x\rfloor}-\frac{1}{\lfloor x\rfloor}\text dx\\ &=\sum_{n=1}^N\frac{1}{n}+\int^N_1\frac{1}{x}-\frac{1}{\lfloor x\rfloor}\text dx \end{aligned} lnN?=∫1N?x1?dx=∫1N?x1?+?x?1???x?1?dx=n=1∑N?n1?+∫1N?x1???x?1?dx?
令?γ=∫1N1x?1?x?dx-\gamma=\int^N_1\frac{1}{x}-\frac{1}{\lfloor x\rfloor}\text dx?γ=∫1N?x1???x?1?dx,則
γ=∫1Nx??x?x?x?dx<∫1N1?x?2dx\gamma=\int^N_1\frac{x-\lfloor x\rfloor}{x\lfloor x\rfloor}\text dx<\int^N_1\frac{1}{\lfloor x\rfloor^2}\text dx γ=∫1N?x?x?x??x??dx<∫1N??x?21?dx
則γ\gammaγ收斂。
總結(jié)
以上是生活随笔為你收集整理的用R语言理解圆周率、自然对数和欧拉常数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何找到最新的RFC文档
- 下一篇: Vue多个元素的过渡