B-laŭparta interpola funkcio

El Vikipedio, la libera enciklopedio
Saltu al: navigado, serĉo
  • En la matematika subkorpo de cifereca analitiko B-laŭparta interpola funkcio estas laŭparta interpola funkcia funkcio kiu havas minimuman subtenon kun respekto al donita grado, glatecon, kaj dispartigitan domajnon. Fundamentaj teoremaj diras, ke ĉiu laŭparta interpola funkcia funkcio de donita grado, glateco kaj dispartigo de domajno, povas esti prezentita kiel lineara kombinaĵo de B-laŭpartaj interpolaj funkcioj de tiu la sama grado kaj glateco, kaj super tiu la sama dispartigo. La termino B-laŭparta interpola funkcio estis elpensita far Isaac Jakobo Schoenberg kaj estas mallongigo por baza laŭparta interpola funkcio. B-laŭpartaj interpolaj funkcioj povas esti komputitaj en ciferece stabila maniero per la algoritmo de de Boor.
  • En komputila projektado kaj komputila grafiko la termino B-laŭparta interpola funkcio ofte uziĝas por nomi laŭpartan interpolan funkcian kurbon parametrigitan per laŭpartaj interpolaj funkciaj funkcioj kiu estas esprimita kiel linearaj kombinaĵoj de B-laŭpartaj interpolaj funkcioj (en la matematika senco pli supre).

Difino[redakti | redakti fonton]

Estu donitaj m+1 nodoj ti en [0,1] kun

t_0 < t_1 < \ldots < t_m

B-laŭparta interpola funkcio de grado n estas parametra kurbo

\mathbf{S}:[0,1] \to \mathbb{R}^2

konsistanta el bazaj B-laŭpartaj interpolaj funkcioj de grado n

\mathbf{S}(t)= \sum_{i=0}^{m+1} \mathbf{P}_{i} b_{i,n}(t) \mbox{ , } t \in [0,1].

La Pi estas nomata kiel apogaj punktojpunktoj de de Boor. Plurlatero povas esti konstruita per trakonekto de la apogaj punktoj per linioj, komencante de P0 kaj finante ĉe Pn. Ĉi tiu polurlatero estas nomata kiel la plurlatero de de Boor.

La m-n bazaj B-laŭpartaj interpolaj funkcioj de grado n povas esti difinitaj per la rikura formulo de Cox-de Boor

b_{j,0}(t) := \begin{cases}
1 & t_j \leq t < t_{j+1} \\
0 & \mathrm{alie}
\end{cases}
b_{j,n}(t) := \frac{t - t_j}{t_{j+n} - t_j} b_{j,n-1}(t) + \frac{t_{j+n+1} - t}{t_{j+n+1} - t_{j+1}} b_{j+1,n-1}(t).

Kiam la nodoj estas samdistancaj oni diras ke la B-laŭparta interpola funkcio estas uniforma alie oni nomas ĝin kiel ne-uniforma.

Uniforma B-laŭparta interpola funkcio[redakti | redakti fonton]

Kiam la B-laŭparta interpola funkcio estas uniforma, la bazaj B-laŭpartaj interpolaj funkcioj por donita grado n estas simple ŝovintaj kopiojn unu de la alia. Alternativa ne-rekursia difino por la m-n bazaj B-laŭpartaj interpolaj funkcioj estas

b_{j,n}(t) = b_n(t - t_j), \qquad\; j = 0, \ldots, m-n-1

kun

b_{n}(t) := (n+1) \sum_{i=0}^{n+1} \omega_{i,n}(t - t_i)_+^{n} \,\;

kaj

\omega_{i,n} := \prod_{j=0, j \neq i}^{n+1} \frac{1}{t_j - t_i} \,\;

kie

(t - t_i)_+^n \,\;

estas la senpintigita pova funkcio.

Notoj[redakti | redakti fonton]

Kiam la nombro de nodoj estas la sama kiel la grado, la B-Laŭparta interpola funkcio degeneras en Bezier-an kurbon. La formo de la bazaj funkcioj estas difinita per la pozicio de la nodoj. Skaligomovo de la noda vektoro ne aliigas la bazajn funkciojn.

La laŭparta interpola funkcio estas enhavata en la konveksa koverto de siaj apogaj punktoj.

Baza B-laŭparta interpola funkcio de grado n

b_{i,n}(t)\,\;

estas ne-nulo nur en la intervalo [tmi, tmi+n+1] tio estas

b_{i,n}(t) = \begin{cases}
>0 & t_{i} \le t < t_{i+n+1} \\
0 & \mathrm{alie}
\end{cases}

En aliaj vortoj se ni manipulas unu apogan punkton ni nur ŝanĝas la lokan konduton de la kurbo kaj ne la mallokan konduton kiel ĉe Bézier-aj kurboj.

Ekzemploj[redakti | redakti fonton]

Konstanta B-laŭparta interpola funkcio[redakti | redakti fonton]

La konstanta B-laŭparta interpola funkcio estas la plej simpla laŭparta interpola funkcio. Ĝi estas difinita sur nur unu interaĵo de nodoj kaj eĉ ne estas kontinua sur la nodoj. Ĝi estas nure nadla funkcio por la malsama nodaj interaĵoj.

b_{j,0}(t) = 1_{[t_j,t_{j+1})} =
\begin{cases}
1 & t_j \le t < t_{j+1} \\
0 & \mathrm{alie}
\end{cases}

Lineara B-laŭparta interpola funkcio[redakti | redakti fonton]

La lineara B-laŭparta interpola funkcio estas difinita sur du najbaraj nodoj generas kaj estas kontinua sur la nodoj, sed ne diferencialebla.

b_{j,1}(t) =
\begin{cases}
\frac{t - t_j}{t_{j+1} - t_j} & t_j \le t < t_{j+1} \\
\frac{t_{j+2} - t}{t_{j+2} - t_{j+1}} & t_{j+1} \le t < t_{j+2} \\
0 & \mathrm{alie}
\end{cases}

Uniforma kvadrata B-laŭparta interpola funkcio[redakti | redakti fonton]

Kvadrataj B-laŭpartaj interpolaj funkcioj kun uniforma nodo-vektoro estas kutime uzata speco de B-laŭparta interpola funkcio. La miksanta funkcio povas esti facile esti antaŭkalkulita, kaj estas egala por ĉiu segmento en ĉi tiu okazo.

b_{j,2}(t) = \begin{cases} \frac{1}{2}t^2 \\ -t^2 + t + \frac{1}{2} \\ \frac{1}{2}(1-t)^2 \end{cases}

Enmeti matrico-(formo, formi), ĝi estas:

 \mathbf{S}_i(t) = \begin{bmatrix} t^2 & t & 1 \end{bmatrix} \frac{1}{2} \begin{bmatrix}
1 & -2 & 1 \\
-2 & 2 & 0 \\
1 & 1 & 0 \end{bmatrix}
\begin{bmatrix} \mathbf{p}_{i-1} \\ \mathbf{p}_{i} \\ \mathbf{p}_{i+1} \end{bmatrix}
por t \in [0,1]

Kuba B-Laŭparta interpola funkcio[redakti | redakti fonton]

B-laŭparta interpola funkcia formulaĵo por sola segmento povas esti skribita kiel:

\mathbf{S}_{i} (t) = \sum_{k=0}^3 \mathbf{P}_{i-3+k} b_{i-3+k,3} (t) \qquad \mbox{ , } t \in [0,1]

kie Si estas la i-a B-laŭparta interpola funkcia segmento kaj P estas la aro de apogaj punktoj, segmento i kaj k estas la lokaj apogaj punktaj indeksoj. Aro de apogaj punktoj devus esti P_i^w = ( w_i x_i, w_i y_i, w_i z_i, w_i) kie la w_i estas pezo, tiranta la kurbon al apoga punkto P_i kiel ĝi (multigas, pligrandiĝas) aŭ movanta la kurbo for kiel ĝi malgrandiĝas.

Tuta aro da segmentoj, m-2 kurboj (S_3,S_4,...,S_m) difinita per m+1 apogaj punktoj (P_0,P_1,...,P_m, m \ge 3), kiel unu B-laŭparta interpola funkcio en t devus esti difinita kiel:

\mathbf{S}(t) = \sum_{i=0}^m \mathbf{P}_{i} b_{i,3} (t)

kie i estas la apoga punkta nombro kaj t estas malloka parametra donanta nodo-valorojn. Ĉi tiu formulo esprimas B-laŭpartan interpolan funkcian kurbon kiel linearan kombinaĵon de B-laŭpartaj interpolaj bazaj funkcioj, de ĉi tie estas la nomo.

Estas du tipoj de B-laŭparta interpola funkcio - uniforma kaj ne-uniforma. Ne-uniforma B-laŭparta interpola funkcio estas kurbo kie la intervaloj inter sukcesaj apogaj punktoj estas ne, ĉu ne bezone, egala (la noda vektoro de ena nodo generas estas ne egala). Komuna formo estas kie intervaloj estas sukcese reduktitaj al nulo, interpolantaj apogaj punktoj.

Uniformaj kubaj B-laŭpartaj interpolaj funkcioj[redakti | redakti fonton]

Kubaj B-laŭpartaj interpolaj funkcioj kun uniformo nodo-vektoro estas la plej kutime uzita formo de B-laŭparta interpola funkcio. La miksanta funkcio povas facile esti antaŭkalkulata, kaj estas egala por ĉiu segmento en ĉi tiu kazo. Enmeti matrico-formojn, ĝi estas:

 \mathbf{S}_i(t) = \begin{bmatrix} t^3 & t^2 & t & 1 \end{bmatrix} \frac{1}{6} \begin{bmatrix}
-1 & 3 & -3 & 1 \\
 3 & -6 & 3 & 0 \\
-3 & 0 & 3 & 0 \\
 1 & 4 & 1 & 0 \end{bmatrix}
\begin{bmatrix} \mathbf{p}_{i-1} \\ \mathbf{p}_{i} \\ \mathbf{p}_{i+1} \\ \mathbf{p}_{i+2} \end{bmatrix}
por t \in [0,1]

Vidu ankaŭ[redakti | redakti fonton]

Eksteraj ligiloj[redakti | redakti fonton]