Algoritmo de De Casteljau

De testwiki
Ir a la navegación Ir a la búsqueda

El algoritmo de De Casteljau es, en el campo del análisis numérico de la matemática, un método recursivo para calcular polinomios en la forma de Bernstein o base de Bernstein, o en las curvas de Bézier. Toma su nombre del ingeniero Paul De Casteljau. Este algoritmo es un método numéricamente estable para evaluar las curvas de Bézier.

Aunque el algoritmo de De Casteljau es relativamente lento en las configuraciones, si se compara con otros es numéricamente más estable.

Idea base

La idea principal de este algoritmo surge de requisitos gráficos en informática y se basa en el hecho que una restricción de una curva de Bézier es también una curva de Bézier. Entonces, a partir de la curva inicial se encuentran los puntos de control de dos curvas definidas por t[0,1/2] y t[1/2,1] y se fijan los pixeles que corresponden al punto por t=12. Donde se iteran los procesos sobre cada una de las dos curvas hasta que la precisión sea inferior al pixel.

Definición

Dado un polinomio B en forma de Bernstein de grado n

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

donde b es un polinomio base de Bernstein, el polinomio en el punto t0 puede ser calculado con la relación de recurrencia

β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).

Anotaciones

En el cálculo manual es útil escribir los coeficientes en un esquema triangular del tipo:


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

En la elección de un punto t0 por el cual calcular el polinomio de Bernstein se pueden usar las diagonales del esquema triangular para construir una división del polinomio.



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

hasta

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

y

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


Ejemplo

Si se desea calcular el valor del polinomio de Bernstein de grado 2 con los coeficientes:

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

en el punto t0.

Se efectúa la recursión con:

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

y a la segunda iteración la recursión concluye en:

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

que es el polinomio de Bernstein buscado de grado 2.

Referencias

  • Farin, Gerald & Hansford, Dianne (2000). The Essentials of CAGD. Natic, MA: A K Peters, Ltd. ISBN 1-56881-123-3

Plantilla:Control de autoridades