Angewandte Mathematik

Algorithmus von de Casteljau

de Casteljau - wird auf Bernsteinpolynome angewendet (Q (n²))

Hahnrechnung von de Casteljau

 

Beispiel de Casteljau - Algorithmus

 

Beispiel de Casteljau-Schema

de Casteljau

 

ein kleines Programm zur Simulation.
#include <stdio.h>
#include <math.h>

typedef double feld[11];
typedef double feldfeld[11][11];
void bezcoef(void);
double castel(double,int,feld);
feld b;
int n;

void bezcoef(void)
{
/* Verzicht auf Einleseroutine und direkter Zugriff auf Aufgabendaten des Skripts */
n=3;
b[0]=1.0;
b[1]=0.0;
b[2]=-1.0;
b[3]=2.0;
}

double castel(double x0, int n, feld b)
{
int k,l;
feldfeld bb;
for(k=0;k<=n;k++) bb[k][0]=b[k];
for(l=1;l<=n;l++)
{
for(k=0;k<=n-l;k++) bb[k][l]=(1.0-x0)*bb[k][l-1]+x0*bb[k+1][l-1];
}
return(bb[0][n]);
}

/* Hauptprogramm */
int main(void)
{
int k;
double x0=-1.0,px0;
bezcoef();
px0=castel(x0,n,b);
printf("\n");
printf("\n");
printf("Auszuwerten ist ein Polynom p vom Grad %i.\n",n);
printf("\n");
printf("\n");
for(k=0;k<=n;k++)
printf("Der %i-te Bezier-Koeffizient des Polynoms p lautet % .12E.\n",k,b[k]);
printf("\n");
printf("\n");
printf("Der Auswertungspunkt ist gegeben als x0 = % .12E.\n",x0);
printf("\n");
printf("Der de Casteljau-Algorithmus liefert p(x0) = % .12E.\n",px0);
return(0);
}