CSE 477 G. Farin
Monomials

The definition using binomial coefficients:

bernex[n_,i_,t_]:=Binomial[n,i]*(1-t)^(n-i)*t^i;
bcurv[t_]:=Sum[b[[i+1]]*bernex[n,i,t],{i,0,n}];

b=Table[{i, 10*(-1)^i},{i,1,15}];
n=Length[b]-1;
center=Sum[b[[i]],{i,1,n+1}]/(n+1);
dists=Table[Norm[b[[i]]-center],{i,1,n+1}];
radius=Max[dists];
 
Do[b[[i]]=b[[i]]-center,{i,1,n+1}];
(* This moves all points such that their centroid is at the origin. *)

monoms=Table[t^i,{i,0,n}];
delta[b_,r_,i_]:=If [r==0,b[[i+1]],
delta[b,r-1,i+1]-delta[b,r-1,i]]; (* iterated differences *)
moncoeffs = Table[Binomial[n,r]*delta[b,r,0]+RandomReal[{-1,1}]*0.1,{r,0,n}]; (* coefficients for the monomial form, slightly perturbed *)

moncurv[t_]:=Transpose[moncoeffs].monoms; (* curve in monomial form *)

plotmoncurv=ParametricPlot[moncurv[t],{t,0,1},PlotStyle->{Thick, Red}];
plotbezcurv=ParametricPlot[bcurv[t],{t,0,1},PlotStyle->{Thick}];
polygon=Graphics[{Line[b]}];
points=Graphics[{PointSize[Large],Point[b]}];

Show[{ plotbezcurv,plotmoncurv,polygon,points},PlotRange-> 1.0*radius]
(* Note monomial curve (red) tends to miss right endpoint. *)