We shall establish the correctness of the degree elevation algorithm.
Again, it requires simple, but tedious, calculations. Suppose the
given Bézier curve **C**(*u*) of degree *n* is defined by
control points **P**_{0}, **P**_{1} , ...,
**P**_{n}, and the degree elevated Bézier curve
**D**(*u*) of
degree *n*+1 is defined by control points **Q**_{0} =
**P**_{0}, **Q**_{1}, **Q**_{2}, ...,
**Q**_{n}, **Q**_{n+1} =
**P**_{n}. We shall find the *n* unknown control
points **Q**_{i}'s.

Our strategy is very simple. Since **C**(*u*) and **D**(*u*)
are the same curve, their derivatives at any *u* should be equal. Hence,
by comparing the first, second, third, ..., and *n*-th derivatives
at 0, we should be able to determine what **Q**_{i}'s are.
To simplify our calculation, we shall use mathematical indiction.
More precisely, we find **Q**_{1} by comparing the first
derivatives at 0. Then, we assume that **Q**_{1},
**Q**_{2}, ..., **Q**_{k-1} are computed and
use these known results to compute **Q**_{k}.
Iterating this process *n* times, we will compute all new control points.

The first derivative of **C**(*u*) is

Thus, the derivative at *u* = 0 is
*n*(**P**_{1} - **P**_{0}). Similarly, the
derivative of **D**(*u*) at *u* = 0 is
(*n*+1)(**Q**_{1}-**Q**_{0})
= (*n*+1)(**Q**_{1}-**P**_{0}). Because
these two derivatives are equal, we have

Solving for **Q**_{1}, we have our first result:

For the induction step, we shall assume that the computation of
**Q**_{0} = **P**_{0}, **Q**_{1}, ...,
**Q**_{k-1} are correct and show that
**Q**_{k} is also correct. This is done by comparing the
*k*-th derivatives of the original curve **C**(*u*) and the
degree elevated curve **D**(*u*).

Just like in the base case, we actually do not need the complete curves.
Let the *k*-th derivative of **C**(*u*) and **D**(*u*)
be **C**^{[k]}(*u*) and
**D**^{[k]}(*u*), respectively. The *k*-th
derivative vectors at *u* = 0 are
**C**^{[k]}(0) and **D**^{[k]}(0).
Because **C**(*u*) and **D**(*u*) are the same curve,
their *k*-th derivatives at *u* = 0 should be identical.
More precisely, we should have
**C**^{[k]}(0) = **D**^{[k]}(0).
From this relation and the known **Q**_{0} = **P**_{0},
**Q**_{1}, ..., **Q**_{k-1}, we shall compute
**Q**_{k}.

In the discussion of higher derivatives, we know that the *k*-th
derivative function of curve **C**(*u*) is

where **D**^{k}_{i} is

and the combinatorial coefficient *C*(*k,j*) is

The computation of the **D**^{k}_{i}'s is
an exercise at the end of this unit.
Click **here** if you wish to see the
details. Therefore, **C**^{[k]}(0) is computed as follows:

Similarly, we can compute **D**^{[k]}(0). Note that curve
**D**(*u*) is of degree *n*+1. This is the reason that the
multiplier is (*n*+1)*n*(*n*-1)...(*n-k*+2).

Setting **C**^{[k]}(0) equal to
**D**^{[k]}(0) and canceling some common factors yields the
following:

In fact, we can do more. Since we know **(1)** **Q**_{k}
is unknown and **Q**_{0} = **P**_{0}, we can take
these two terms out of the summation of
**D**^{[k]}(0). Now, the summation runs from 1 to
*k*-1. To make the summation in **C**^{[k]}(0)
compatible, we also take the terms of **P**_{k} and
**P**_{0} out of the summation. This gives the following:

Rearranging the terms yields the following:

By the induction hypothesis, for *j* in the range of 0 and *k*-1,
**Q**_{j} is known and is computed as follows:

Plug **Q**_{j} into the term in the summation and we
have:

Plug this result back into the expression of
(*n*+1)**Q**_{k} and split the summation into two:

After taking **P**_{k-1} out of the first summation,
the first summation becomes:

Then, we take the **P**_{0} term out of the second summation:

However, in this expression, the index *j* runs from 2 to *k*-1.
To make it compatible with that of the first summation, we can use a new
index *h* = *j* - 1. After this
substitution, the second summation becomes the following:

Note that the corresponding terms in these two summations are equal with
different signs (*i.e.*,
(-1)^{k-j+1}=(-1)×(-1)^{k-j} in the first
summation and (-1)^{k-h} in the second). Hence, adding
these two summations together will cancel out all terms in the summation
and yield the following:

Putting this back into the expression of
(*n*+1)**Q**_{k} yields

Dividing the expression by *n*+1 gives us the desired result:

Therefore, the degree elevation computation for *k* also holds, and
the degree elevation algorithm is correct.