Algoritmo de De Casteljau
# Algoritmo de De Casteljau

O Algoritmo de De Casteljau na matemática, no campo da análise numérica, é um método recursivo para calcular polinômios na forma de Bernstein ou da Curva de Bézier. Chamado assim por causa do seu criador Paul de Casteljau. Esse algoritmo pode ser usado também para dividir uma única curva de Bézier em duas, recebendo um valor arbitrário como parâmetro.
Embora seja um pouco mais lento, para a maior parte das arquiteturas, quando comparado com abordagens diretas, esse algoritmo se mostra numericamente estável. É amplamente usado, com algumas modificações, como o mais robusto e numericamente estável método para calculo de polinomiais.

## Definição

Uma curva de Bézier B (de grau n) pode ser escrita na forma de Bernstein como se segue
    $B(t)=\sum _{i=0}^{n}\beta _{i}b_{i,n}(t)$,
onde b é um Polinômio de Bernstein
    $b_{i,n}(t)={n \choose i}(1-t)^{n-i}t^{i}$.
A curva no ponto t$_0$ pode ser calculada com a relação de recorrência
    $\beta _{i}^{(0)}:=\beta _{i}{\mbox{ , }}i=0,\ldots ,n$
    $\beta _{i}^{(j)}:=\beta _{i}^{(j-1)}(1-t_{0})+\beta _{i+1}^{(j-1)}t_{0}{\mbox{ , }}i=0,\ldots ,n-j{\mbox{ , }}j=1,\ldots ,n$
Então, a estimativa de $B$ no ponto $t_{0}$ pode ser calculada em $n$ passos do algoritmo. O resultado $B(t_{0})$ é dado por:
    $B(t_{0})=\beta _{0}^{(n)}.$
Além disso, a curva de Bézier $B$ pode ser dividida no ponto $t_{0}$ em duas curvas com respectivos pontos de controle:
    $\beta _{0}^{(0)},\beta _{0}^{(1)},\ldots ,\beta _{0}^{(n)}$
    $\beta _{0}^{(n)},\beta _{1}^{(n-1)},\ldots ,\beta _{n}^{(0)}$