最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

自適應(yīng)辛普森法積分算法

2023-07-07 00:35 作者:風(fēng)的彷徨  | 我要投稿

引子

有時候我們需要計算一個函數(shù)的定積分,粗略上可以使用估算的方法。如圖所示,將原本的曲線粗略地看成一個梯形。這個方法叫梯形法則(Trapezoidal Rule)。也叫做一階牛頓-柯特斯閉型積分公式。

其中

所謂一階,指的就是n=1的情況。

最理想的情況就是把這個圖像分割成 無數(shù) 個梯形,便可求出對應(yīng)的定積分。

但是在實際操作的情況下,梯形法則為了保證速度無法取極多的點,這樣照成梯形法則誤差較大。

????分割成無限個梯形其實就等效于

因此我們將考慮更高階的公式,本文將要介紹的便是二階牛頓-柯特斯閉型積分公式(辛普森法)。?即將函數(shù)近似看成一條拋物線。顯然一階牛頓-柯特斯閉型積分公式需要在首尾取兩個點方可得到f(x)的解析式。而二階要得到一個拋物線方程則需要取三個點,才能得到解析式。而牛頓-柯特斯閉型積分公式都采用等距取點的方法,所以辛普森法需要取首尾點以及中間點。

推導(dǎo)方法

通過辛普森法,只需要計算出邊界和中點的函數(shù)值就可以得到估算的函數(shù)的積分

綠色是被積函數(shù),紅線是使用梯形法則得到的,藍線是辛普森法得到的??梢园l(fā)現(xiàn)相對梯形法則,辛普森法相對而言更符合被積函數(shù)。繼續(xù)提

高n的值可以提高估算的準確度,但顯然也會提高計算的復(fù)雜性,而二階的對于圖中的函數(shù)基本上可以達到要求。

  對于一段基本符合二次函數(shù)的函數(shù),辛普森法可以得到較為準確的結(jié)果,然而當函數(shù)變得復(fù)雜時。辛普森將出現(xiàn)明顯的誤差。這時候該怎么計算積分。

????????擺在面前的有兩條路,一個是不斷細分區(qū)間,再將區(qū)間求和,另一條是增加n的值,使得函數(shù)更加符合被積函數(shù)。本文主要討論第一種方法。

?

正文

????走第一條路,如果采用將區(qū)間平均細分為若干份,求得各個區(qū)間的積分后再統(tǒng)一求和,這樣在計算量上和梯形法則上相等,但是精度提升不了多少。

  然而,不得不承認,對于一個函數(shù)而言,存在二次擬合比較好的地方,也存在比較差的地方。如果在擬合比較好的地方細分就會浪費計算資源,而統(tǒng)一的平均細分,也導(dǎo)致在擬合比較差的地方達不到想要的精度。

因此,如何在擬合好的地方降低細分程度,擬合差的地方提高細分進度成了重中之重。

????而本文想介紹的關(guān)鍵自適應(yīng)辛普森積分法,就是解決這個問題的。

????上式是自適應(yīng)辛普森積分法是否對一個區(qū)間進行細分的判定條件。

其實是根據(jù)這個結(jié)論:

來源

原理其實很簡單,首先將這個區(qū)間進行二分為兩個區(qū)間肯定能得到更為精準的結(jié)果,如果這個結(jié)果和直接計算該區(qū)間的辛普森積分得到的結(jié)果差距大于某一個值,則認為對這個區(qū)間繼續(xù)細分是有意義的,反之差距小于該值則說明繼續(xù)細分對提高精度沒有什么幫助,就不進行下一步的細分,以降低計算的復(fù)雜度。這個值一般是esp的15倍(至于為什么是15倍可以看看這篇文章Notes on the Adaptive Simpson Quadrature Routine),調(diào)節(jié)esp可以控制估計值和精確值在多少位前是一樣的。

????擴展:為什么二分一個區(qū)間能夠得到一個更精確的結(jié)果,從圖像上很好理解,兩個函數(shù)要比一個函數(shù)擬合得更緊密。從數(shù)值上說明是因為辛普森算法的誤差公式為

????p是f(x)在[l,r]區(qū)間內(nèi)使得f(x)四階導(dǎo)數(shù)取得最大值的值。具體證明可以參考A short proof of the error term in Simpson's rule(看不懂?本筆者也看不懂)。根據(jù)琴生不等式可以推導(dǎo)出區(qū)間一分為二后的誤差和小于不一分為二的誤差(大概可以證明吧,以后有時間證明一下QAQ)。

????據(jù)說(美)薩奧爾(Sauer, T.)著;裴玉茹,馬賡宇譯.數(shù)值分析(原書第2版),機械工業(yè)出版社,第240頁。?有相對完善的介紹,以后買一本看看。

代碼

運行結(jié)果:

擴展

????為什么我非要用辛普森,這個算法為什么不能用梯形法則代替辛普森的作用?其實是可以用梯形法則代替辛普森的。

????但是無論是計算量還是精度來說效果都不是很好(QAQ)。不用更高階的原因也很簡單,提高階增加編碼難度同時提高的精度難以彌補耗時。

后記

????高考和強基計劃審核結(jié)束,筆者如愿以償?shù)乇焕硐氲拇髮W(xué)錄取,由于錄取專業(yè)與數(shù)學(xué)強相關(guān),日后更新的文件也將高度圍繞數(shù)學(xué)方面展開。這個排版調(diào)了我半天,emm,以后還是老老實實用markdown吧(B站上傳的這個版本排版有嚴重問題QAQ)。為了更好的閱讀體驗可以去:https://www.cnblogs.com/Icys/p/simpson.html

自適應(yīng)辛普森法積分算法的評論 (共 條)

分享到微博請遵守國家法律
澄江县| 宣恩县| 扎兰屯市| 蕲春县| 高州市| 红安县| 夏邑县| 诸城市| 岳西县| 通辽市| 阿坝县| 中阳县| 广汉市| 揭东县| 台中市| 津南区| 洞头县| 鹤山市| 赞皇县| 信阳市| 黄龙县| 巍山| 池州市| 民丰县| 句容市| 天峨县| 疏附县| 涞源县| 九台市| 阿拉善右旗| 徐水县| 清流县| 镇平县| 安吉县| 光山县| 洛浦县| 讷河市| 安新县| 长泰县| 新民市| 垫江县|