用程序來(lái)求積分的方法有很多,這篇文章主要是有關(guān)牛頓-科特斯公式。
學(xué)過(guò)插值算法的同學(xué)最容易想到的就是用插值函數(shù)代替被積分函數(shù)來(lái)求積分,但實(shí)際上在大部分場(chǎng)景下這是行不通的。
插值函數(shù)一般是一個(gè)不超過(guò)n次的多項(xiàng)式,如果用插值函數(shù)來(lái)求積分的話,就會(huì)引進(jìn)高次多項(xiàng)式求積分的問(wèn)題。這樣會(huì)將原來(lái)的求積分問(wèn)題帶到另一個(gè)求積分問(wèn)題:如何求n次多項(xiàng)式的積分,而且當(dāng)次數(shù)變高時(shí),會(huì)出現(xiàn)龍悲歌現(xiàn)象,誤差反而可能會(huì)增大,并且高次的插值求積公式有可能會(huì)變得不穩(wěn)定:詳細(xì)原因不贅述。
牛頓-科特斯公式解決這一問(wèn)題的辦法是將大的插值區(qū)間分為一堆小的插值區(qū)間,使得多項(xiàng)式的次數(shù)不會(huì)太高。然后通過(guò)引入?yún)?shù)函數(shù)
將帶有冪的項(xiàng)的取值范圍固定在一個(gè)固定范圍內(nèi),這樣一來(lái)就將多項(xiàng)式帶有冪的部分的求積變?yōu)橐粋€(gè)固定的常數(shù),只需手工算出來(lái)即可。這個(gè)常數(shù)可以直接帶入多項(xiàng)式求積函數(shù)。
上式中x的求積分區(qū)間為[a, b],h = (b - a)/n, 這樣一來(lái)積分區(qū)間變?yōu)閇0, n],需要注意的是從這個(gè)公式可以看出一個(gè)大的區(qū)間被分為n個(gè)等長(zhǎng)的小區(qū)間。 這一部分具體請(qǐng)參見(jiàn)任意一本有關(guān)數(shù)值計(jì)算的書(shū)!
n是一個(gè)事先確定好的值。
又因?yàn)橐粋€(gè)大的插值區(qū)間需要被分為等長(zhǎng)的多個(gè)小區(qū)間,并在這些小區(qū)間上分別進(jìn)行插值和積分,因此此時(shí)的牛頓-科特斯公式被稱為:復(fù)化牛頓-科特斯公式。