龍格函數(shù)插值Python 插值中的龍格現(xiàn)象

對龍格函數(shù)作三次樣條插值中n影響什么

對龍格函數(shù)作三次樣條插值中n影響:如果固定用三次樣條插值的話,直接影響精確度的就是間距。

成都創(chuàng)新互聯(lián)主營卡若網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,卡若h5重慶小程序開發(fā)搭建,卡若網(wǎng)站營銷推廣歡迎卡若等地區(qū)企業(yè)咨詢

如果表示對函數(shù)f進(jìn)行插值的樣條函數(shù),插值特性,S(xi)=f(xi)樣條相互連接,Si-1(xi)=Si(xi),i=1,n-1兩次連續(xù)可導(dǎo),S'i-1(xi)=S'i(xi)以及S''i-1(xi)=S''i(xi),i=1,n-1。

插值特性只給出了n+1個條件,內(nèi)部數(shù)據(jù)點給出n+12=n1個條件,總計是4n2個條件。我們還需要另外兩個條件,根據(jù)不同的因素我們可以使用不同的條件。

實際計算時

還需要引入邊界條件才能完成計算。邊界通常有自然邊界(邊界點的二階導(dǎo)為0),夾持邊界(邊界點導(dǎo)數(shù)給定),非扭結(jié)邊界(使兩端點的三階導(dǎo)與這兩端點的鄰近點的三階導(dǎo)相等)。一般的計算方法書上都沒有說明非扭結(jié)邊界的定義,但數(shù)值計算軟件如Matlab都把非扭結(jié)邊界條件作為默認(rèn)的邊界條件。

多項式插值為什么會存在龍格現(xiàn)象,如果存在龍格現(xiàn)象如何解決?

一般來說,節(jié)點個數(shù)越多,插值函數(shù)和被插值函數(shù)就有越多的地方相等。但是隨著插值節(jié)點個數(shù)的增加,兩個插值節(jié)點之間插值函數(shù)并不一定能夠很好地逼近被插值函數(shù)。再次,從舍入誤差看,高次插值由于計算量大,可能會產(chǎn)生更嚴(yán)重的誤差積累,所以,穩(wěn)定性得不到保證。這就是Runge現(xiàn)象。解決Runge現(xiàn)象的方法是采用分段低次多項式插值:有分段線性插值和分段三次Hermite插值。在每個小區(qū)間采用低次插值,則可避免Runge現(xiàn)象。

python可否用自定義函數(shù)對數(shù)據(jù)進(jìn)行插值

直接定義a=True/False就行,示例代碼:

#定義布爾值類型參數(shù)a,b,值分別為True,False

a=True

b=False

print a,b

print type(a),type(b)

True False

type 'bool' type 'bool'

Python中的布爾類型:

Python的布爾類型有兩個值:True和False(注意大小寫要區(qū)分)

取插值區(qū)間[-5,5]和N+1個等距節(jié)點(-5和5).編程實現(xiàn)龍格函數(shù)的拉格朗日插值,并

這個問題,可以參考《用matlab畫出y=1/(1+25x.^2)拉格朗日插值的圖像》。鏈接地址網(wǎng)頁鏈接

「Scipy」樣條插值在數(shù)據(jù)可視化中的運用

好久沒有更新文章了,學(xué)校的教材發(fā)下來了,作業(yè)一下就變多了。

首先,把最終效果放出來:

運用樣條插值,即 B-Spline ,可以使你在圖表中使用曲線連接離散數(shù)據(jù)(在插值法中,這些離散數(shù)據(jù)稱為 節(jié)點 )

正如你在上面所看到的那樣,在Python中插值非常簡單, Scipy 中的 interpolate 為你提供了樣條插值所需要的一系列函數(shù)。

import部分就不多說了,

這里首先定義了一系列節(jié)點,這里數(shù)據(jù)是隨機的,

接下來,首先使用 linspace 為插值提供所需的x值, splrep 根據(jù)節(jié)點計算了樣條曲線的參數(shù),最后將其傳遞給 splev 計算插值后的結(jié)果。

你可能是抱著想要用曲線連接節(jié)點的目的來看這篇文章,但看到這里還沒搞懂插值法是個什么玩意,那么接下來的內(nèi)容就是在講數(shù)學(xué)中的插值法,與Python和Scipy已無關(guān)聯(lián)。

插值法,就是在給定的節(jié)點中作出合適的函數(shù),使得這條曲線 經(jīng)過每一個節(jié)點 ,這也就是為什么在數(shù)據(jù)可視化中使用插值而不是其他方法的原因,因為插值后仍然能夠準(zhǔn)確知道每一節(jié)點所對應(yīng)的值。

那么,是不是節(jié)點越多,插值的準(zhǔn)確性就越高呢?

貌似是這樣,畢竟節(jié)點越多,對曲線的限制條件就越多,那準(zhǔn)確性不久越高了。

但是呢,如果你使用多節(jié)點直接插值(不是在程序中插值,因為程序會使用分段樣條插值),你就會發(fā)現(xiàn),曲線在兩段有明顯的震蕩,并且節(jié)點越多,震蕩越明顯、越大:

這種現(xiàn)象被稱為 Tolmé Runge 現(xiàn)象( 龍格現(xiàn)象 ),描述的就是這一問題。對此的數(shù)學(xué)證明在知乎上有, 傳送門 。

通過龍格現(xiàn)象,我們會發(fā)現(xiàn),當(dāng)節(jié)點數(shù)量趨向于無窮時,插值的誤差會趨向于無窮大:

那么,如何避免這一情況呢,可以把我們原先的等距節(jié)點替換成Chebyshev節(jié)點,但是如果我們的離散數(shù)據(jù)確實等距,這一方法不好用,那么就可以才用分段插值,我們的程序?qū)埜瘳F(xiàn)象也是這樣處理的。

分段插值就是將高次多項式拆分成多個低次多項式,一般都拆分成三次多項式。

由于插值和擬合常常一起出現(xiàn),所以這里也簡單提一下擬合。

擬合是對你給出的離散數(shù)據(jù),作出于數(shù)據(jù) 差距最小 的函數(shù),另外,按照擬合的結(jié)果,擬合也分線性擬合和非線性擬合。

擬合與插值的差別就在于,插值必須過節(jié)點,但是擬合不需要,所以擬合曲線的整體效果會更好,也就是更平滑。

擬合一般都用在數(shù)據(jù)分析里,因為擬合曲線更能夠看出整體的變化趨勢嘛。

這篇文章寫起來難度還是想當(dāng)大,如果我的描述有問題的話,歡迎評論區(qū)留言。

前往我的博客查看本文

如何用python實現(xiàn)龍格

用Python的for循環(huán)實現(xiàn)等差序列相加,例如(1+2+3+4+5+...+20)這樣的算法,代碼如下: import mathtemp = 0for x in range(1,20): temp += x break else: print temp #輸入結(jié)果:210

本文題目:龍格函數(shù)插值Python 插值中的龍格現(xiàn)象
文章網(wǎng)址:http://muchs.cn/article36/hjcopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、建站公司、自適應(yīng)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)