B樣條基函數的定義及系數的意義


B樣條基函數的定義及系數的意義

 原文鏈接:http://blog.csdn.net/tuqu/article/details/5177405

    貝塞爾基函數用作權重。B-樣條基函數也一樣;但更復雜。但是它有兩條貝塞爾基函數所沒有的特性,即(1)定義域被節點細分(subdivided); (2) 基函數不是在整個區間非零。實際上,每個B樣條基函數在附近一個子區間非零,因此,B-樣條基函數相當“局部”。

    設U 是m + 1個非遞減數的集合,u0 <= u2 <= u3 <= ... <= umui稱為節點knots), 集合U 稱為節點向量knot vector), 半開區間[uiui+1) 是第i個節點區間(knot span)。注意某些ui可能相等,某些節點區間會不存在。如果一個節點 ui 出現 k 次 (即,ui = ui+1 = ... = ui+k-1), 其中 k > 1, ui是一個重復度(multiplicity)為的多重節點,寫為 ui(k)。 否則,如果ui只出現一次,它是一個簡單節點。如果節點等間距(即, ui+1 - ui 是一個常數,對 0 <= i <= m - 1),節點向量或節點序列稱為均勻的;否則它是非均勻的。

    節點可認為是分隔點,將區間[u0um]細分為節點區間。所有B-樣條基函數被假設定義域在[u0,um]上。在本文中,我們經常使用u0 = 0和um = 1,所以定義域是閉區間[0,1]。

    為了定義B-樣條基函數,我們還需要一個參數,基函數的次數(degree)p,第ip次B-樣條基函數,寫為Ni,p(u),遞歸定義如下:

 

 

 

 

       上述公式通常稱為Cox-de Boor遞歸公式。 這個定義看起來很復雜;但是不難理解。如果次數(degree)為零(即, p = 0),這些基函數都是階梯函數,這也是第一個表達式所表明的。即,如果u是在第i個節點區間[uiui+1)上基函數Ni,0(u)是1。 例如,如果我們有四個節點u0 = 0, u1 = 1, u2= 2和 u3 = 3, 節點區間 0, 1 和2是[0,1), [1,2), [2,3),0次基函數是N0,0(u) = 1 在 [0,1) ,在其它區間是0;N1,0(u) = 1 在 [1,2)上,在其它區間是0;N2,0(u) = 1在[2,3)上,其它區間是0。如下圖所示:

 

 

       為了理解p大於0時計算Ni,p(u)的方法,我們使用三角計算格式。所有節點區間列在左邊(第一)列,所有零次基函數在第二列。見下圖。

 

        為了計算Ni,1(u),需要Ni,0(u)和Ni+1,0(u)。因此,我們可以計算N0,1(u), N1,1(u),N2,1(u), N3,1(u) 等等。所有這些Ni,1(u)寫在第三列。一旦所有Ni,1(u)計算完畢,我們可以計算Ni,2(u)並將其放在第四列。繼續這個過程直到所有需要的Ni,p(u)的計算完畢。

        上面我們獲得了針對節點向量 U = { 0, 1, 2, 3 }的N0,0(u), N1,0(u)和N2,0(u) 。現在計算N0,1(u)和N1,1(u)。要計算N0,1(u),因為i = 0和p = 1,從定義出發有

 

因為u0 = 0, u1 = 1和u2 = 2,上式變為

 

因為N0,0(u)在[0,1)上非零且N1,0(u)在[1,2)上非零,如果u在[0,1)上 (resp., [1,2) ), 只有N0,0(u) (resp.N1,0(u) )對N0,1(u)有貢獻。因此,如果u 在[0,1)上, N0,1(u) 是uN0,0(u) =u而如果u 在[1,2)上, N0,1(u)是 (2 - u)N1,0(u) = (2 - u)。相似的計算得到N1,1(u) = u - 1如果u 在[1,2)上, 而N1,1(u) = 3 - u 如果 u 在[2,3)上。下圖中,黑色和紅色線分別是N0,1(u)和  N1,1(u)。注意N0,1(u) (resp.N1,1(u))在[0,1) 和[1,2) 上(resp., [1,2) 和 [2,3))是非零的。

 

一旦獲得N0,1(u)和N1,1(u),可以計算N0,2(u)。由定義得到下式:

 

代入節點值得到

 

注意 N0,1(u) 在 [0,1)和[1,2)上非零而N1,1(u) 在[1,2) 和 [2,3)上非零。因此,我們有三種情況要考慮:

 

1. u 在 [0,1)上:
    這種情況,只有N0,1(u)對N0,2(u)的值有貢獻。因此,N0,1(u)是u, 得到

 

2. u 在[1,2)上: 
    這種情況, N0,1(u)和N1,1(u)都對 N0,2(u)有貢獻。因此N0,1(u) = 2 - u 且N1,1(u) = u - 1在[1,2)上,得到 

 

   【譯注:上式中間的式子的第二項應為:0.5(3-u)(u-1)】

3. u 在 [2,3)上: 
    這種情況,只有N1,1(u)對 N0,2(u)有貢獻。因此N1,1(u) = 3 - u 在[2,3)上,得到,

 

 

 

    如果我們畫出上述三種情況的曲線段,我們會看到兩個相鄰曲線段連接起來形成了在節點上的曲線。更確切地,第一種和第二種情況的曲線段在u = 1處連接起來,而第二種和第三種情況的曲線段在u = 2處連接起來。注意合成曲線是光滑的,但是如果節點向量包含多重節點通常就不是這樣的。

 

 

 

兩個重要的觀察

       因為 Ni,1(u) 是從 Ni,0(u) 和 Ni+1,0(u)計算的而 因為Ni,0(u)和Ni+1,0(u) 在區間[uiui+1)和[ui+1ui+2)分別是非零的,Ni,1(u) 在這兩個區間都是非零的。換句話說,Ni,1(u)在[ui,ui+2)上是非零的。相似地,因為 Ni,2(u) 依賴於Ni,1(u) 和Ni+1,1(u)且因為這兩個基函數在[uiui+2)和[ui+1ui+3)分別是非零的,Ni,2(u)在[uiui+3)上非零。總之,為確定基函數Ni,p(u), 的非零定義域,可以追溯到三角計算格式直到回到第一列。例如,假設我們想找到 N1,3(u)的非零定義域。基於上述討論,我們可從西北和西南方向追溯直到第一列為止,如下圖中藍色虛線所示。因此 N1,3(u)在 [u1u2), [u2u3), [u3u4) 和[u4u5)上是非零的。或,相等地,它在[u1u5)上非零。.

 

總之,我們有下列觀察:

    基函數 Ni,p(u在[uiui+p+1)上非零。或,相等地,Ni,p(u在 p+1個節點區間[ui,ui+1), [ui+1ui+2), ..., [ui+pui+p+1)上非零。

      接着,我們看相反的方向。給定一個節點區間[uiui+1),我們想知道哪個基函數會在計算中使用這個區間。我們可以以這個節點區間開始並畫一個西北界限箭頭和一個西南界限的箭頭。所有封閉在楔形里的基函數使用 Ni,0(u)(為什么?)因此在該區間是非零的。因此,所有在[uiui+1)上非零的p 次基函數是這個楔形和包含所有Ni,p(u) 的列的交集。實際上,這一列和兩個箭頭形成一個等邊三角形,而這一列是垂直邊。 從 Ni,0(u)數到 Ni,p(u) 有p+1列。因此,等邊三角形的垂直邊至多有p+1 項,即 Ni,p(u), Ni-1,p(u),Ni-2,p(u), ..., Ni-p+2,p(u), Ni-p+1,p(u) 和Ni-p,p(u)。

 

      讓我們看上圖。為了找到所有3次在 [u4u5) 上非零的基函數,畫出兩個箭頭和所有在垂直邊的函數是我們想要的。這個例子,是N1,3(u), N2,3(u), N3,3(u), 和N4,3(u).用黃色三角表示。藍色 (resp., 紅色) 三角顯示的是在[u3u4) (resp., [u2u3) )上非零的3次基函數。注意在[u2u3)上只有3個3次基多項式。.

      總之,我們觀察到下列特性:

    在任何一個節點區間 [uiui+1), 最多有 p+1p 次基函數非零,即:Ni-p,p(u), Ni-p+1,p(u), Ni-p+2,p(u), ..., Ni-1,p(u和 Ni,p(u),

 

 

系數的意義是什么?

    最后,讓我們研究下Ni,p(u)定義中系數的意義。當計算 Ni,p(u) 時,它使用Ni,p-1(u)和Ni+1,p-1(u)。前者在 [uiui+p)上非零。如果u 是在這個半開區間,那么u - ui 是u 和這個區間左端之間的距離,區間長度是ui+p - ui, ,而(u - ui) / (ui+p - ui) 是上述距離的比且在0和1之間。見下圖。第二項,Ni+1,p-1(u),在[ui+1ui+p+1)上非零。如果u 在該區間,那么ui+p+1u 是 u 到該區間右端的距離,ui+p+1 - ui+1 是區間長度,而(ui+p+1 - u) / (ui+p+1 - ui+1) 是這兩個距離的比且值在0和1之間。因此, Ni,p(u) 是Ni,p-1(u) 和Ni+1,p-1(u)的線性組合,有兩個系數,都在 u上是線性的,在0和1之間。

 

 

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM