日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三次样条插值 cubic spline interpolation

發(fā)布時(shí)間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三次样条插值 cubic spline interpolation 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

什么是三次樣條插值

  插值(interpolation)是在已知部分?jǐn)?shù)據(jù)節(jié)點(diǎn)(knots)的情況下,求解經(jīng)過這些已知點(diǎn)的曲線,

然后根據(jù)得到的曲線進(jìn)行未知位置點(diǎn)函數(shù)值預(yù)測的方法(未知點(diǎn)在上述已知點(diǎn)自變量范圍內(nèi))。

  樣條(spline)是軟尺(elastic ruler)的術(shù)語說法,在技術(shù)制圖中,使用軟尺連接兩個(gè)相鄰數(shù)據(jù)點(diǎn),

以達(dá)到連接曲線光滑的效果。

  樣條插值是一種分段多項(xiàng)式(piecewise polynomial)插值法。數(shù)學(xué)上,曲線光滑需要在曲線上處處一階導(dǎo)連續(xù),

因此,在節(jié)點(diǎn)處需要滿足一階導(dǎo)數(shù)相等。另外,為了使得曲線的曲率最小,要求曲線二階導(dǎo)連續(xù)【1】

在節(jié)點(diǎn)處需要二階導(dǎo)相等。

  三次及以上多項(xiàng)式可以滿足節(jié)點(diǎn)處光滑和曲率最小要求,但是次數(shù)高的曲線容易震蕩,因此,就選用三次多項(xiàng)式即可。

?

數(shù)學(xué)表述

  假設(shè)有n個(gè)已知節(jié)點(diǎn):

      

  函數(shù)關(guān)系記為:?。

  在區(qū)間??中插值多項(xiàng)式曲線:?

     ?  

注意,這里頭曲線為,尾曲線為。

  插值在節(jié)點(diǎn)處滿足條件:

  (1)曲線經(jīng)過節(jié)點(diǎn):

    

  (2)曲線一階導(dǎo)連續(xù)(光滑):

    

  (3)曲線二階導(dǎo)連續(xù)(曲率最小):

    

  邊界條件:對兩端節(jié)點(diǎn)的約束。

  (B1)自然(natural (or free))邊界條件

    

  (B2)固定(clamped)邊界條件

    固定一階導(dǎo)數(shù):

    ?,

    固定二階導(dǎo)數(shù):

    ,?

  (B3)非節(jié)點(diǎn)邊界(not-a-knot )

    要求在第二個(gè)節(jié)點(diǎn)??和倒數(shù)第二個(gè)節(jié)點(diǎn)?,曲線的三階導(dǎo)也連續(xù):

    

    

?

三次多樣式函數(shù)的計(jì)算

  樣條函數(shù)采用n-1個(gè)三次多項(xiàng)式,每個(gè)三次多項(xiàng)式有4個(gè)參數(shù),一共是4n-4個(gè)參數(shù),

因此需要4n-4個(gè)方程。

    條件(1)n-1個(gè)曲線每個(gè)兩端經(jīng)過節(jié)點(diǎn),提供2(n-1)=2n-2個(gè)方程;

    條件(2)n-1個(gè)曲線相鄰一階導(dǎo)連續(xù),提供n-2個(gè)方程;

    條件(3)n-1個(gè)曲線相鄰二階導(dǎo)連續(xù),提供n-2個(gè)方程;

  以上一共是4n-6個(gè)方程,還需要2個(gè)方程,這兩個(gè)方程由邊界條件提供,條件(B1),?(B2),?(B3)

每個(gè)均提供2個(gè)方程,這樣就湊夠了4n-4個(gè)方程。

  

計(jì)算的例子

  n個(gè)節(jié)點(diǎn),n-1條曲線。在區(qū)間? 內(nèi),令第i條曲線為:

    

  一二三階導(dǎo)分別為:

    一階:??

    二階:??

    三階:??

  接下來,套用節(jié)點(diǎn)條件和邊界條件:

  先假設(shè)相鄰節(jié)點(diǎn)橫縱坐標(biāo)的差值分別為:?,。

    條件(1):曲線??已經(jīng)滿足第一個(gè)式子:;

    第二式 :?

      (I)    

    條件(2):

      (II)      

    條件(3):

      (III)        ? ?

    邊界條件以非節(jié)點(diǎn)(Not-A_Knot)條件為例, 得:

      (IV)  ,?

  聯(lián)立方程(I)和(II), 分別消去??和??得:

    ,?    

  帶入方程(III)得:

    (V)    

  這里i的最大值應(yīng)該取不到n-3,當(dāng)i=n-3時(shí),上式左邊將出現(xiàn) ,而參數(shù)a的范圍是從0到n-2,

所以不存在這項(xiàng),此式一共是n-2個(gè)方程。

    另外,方程(II)和(III)都不支持?,需要單獨(dú)計(jì)算?:

    由方程(I),(III)分別有:

      

      

    =>

      

      

  由邊界條件方程(IV)中的? 得:

    

  方程(V)取i=0有:

    

  與上式聯(lián)立消去,得:

    (VI)  

  另由? 得:

    (VII)  ?

?  方程(V), (VI), (VII)聯(lián)立,n-1個(gè)方程,n-1個(gè)未知數(shù)(),參數(shù)a得解,然后在算出參數(shù)b和c即可。

??

References:

[1] Wikipedia: spline interpolation

?

轉(zhuǎn)載于:https://www.cnblogs.com/tlz888/p/11454772.html

總結(jié)

以上是生活随笔為你收集整理的三次样条插值 cubic spline interpolation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。