Algoritmo di de Casteljau

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:F In matematica e in particolare in analisi numerica, lTemplate:'algoritmo di de Casteljau, che prende il nome dal suo autore Paul de Casteljau, è un metodo ricorsivo per valutare polinomi nella forma di Bernstein o curve di Bézier.

Sebbene l'algoritmo sia più lento per la maggior parte delle architetture se comparato all'approccio diretto, è numericamente più stabile.

Definizione

Dato un polinomio B in forma di Bernstein di grado n

B(t)=i=0nβibi,n(t),

dove b è un polinomio base di Bernstein, il polinomio al punto t0 può essere valutato con la relazione di ricorrenza

βi(0):=βi , i=0,,n,
βi(j):=βi(j1)(1t0)+βi+1(j1)t0 , i=0,,nj , j=1,n,

con

B(t0)=β0(n).

Annotazioni

Nel calcolo manuale è utile scrivere i coefficienti in uno schema triangolare del tipo:

β0=β0(0)β0(1)β1=β1(0)β0(n)βn1=βn1(0)βn1(1)βn=βn(0)

Nella scelta di un punto t0 per cui calcolare il polinomio di Bernstein, si possono usare le diagonali dello schema triangolare per costruire una divisione del polinomio.

B(t)=i=0nβi(0)bi,n(t) , [0,1],

fino a

B1(t)=i=0nβ0(i)bi,n(tt0) , [0,t0]

e

B2(t)=i=0nβni(i)bi,n(tt01t0) , [t0,1].

Esempio

Si vuole calcolare il valore del polinomio di Bernstein di grado 2 con i coefficienti:

β0(0)=β0
β1(0)=β1
β2(0)=β2

nel punto t0.

Si avvia la ricorsione con:

β0(1)=β0(0)(1t0)+β1(0)t0=β0(1t0)+β1t0
β1(1)=β1(0)(1t0)+β2(0)t0=β1(1t0)+β2t0

e alla seconda iterazione la ricorsione termina con:

β0(2)=β0(1)(1t0)+β1(1)t0 =β0(1t0)(1t0)+β1t0(1t0)+β1(1t0)t0+β2t0t0 =β0(1t0)2+β12t0(1t0)+β2t02

che è il polinomio di Bernstein desiderato di grado 2.

Altri progetti

Template:Interprogetto

Template:Portale