Interpolation and polynomial approximation Interpolation - … · 2019-07-15 · 1 Computer Aided...
Transcript of Interpolation and polynomial approximation Interpolation - … · 2019-07-15 · 1 Computer Aided...
1
Computer Aided Design
Outline
Interpolation and polynomial approximation Interpolation
Lagrange Cubic Splines
Approximation Bézier curves B-Splines
2
Computer Aided Design
Some vocabulary (again ;) Control point : Geometric point that serves as
support to the curve Knot : a specific value of the parameter u
corresponding to a joint between pieces of a curve Knot sequence : the set of knots values (in an
increasing order).
Wolfram
research
3
Computer Aided Design
Interpolation The curve passes through the control points
Approximation The curve doesn't necessary passes through the
control points But these have an influence ...
Statistic approaches ? Least squares « Kriging » Not very adapted to geometric modelling
4
Computer Aided Design
Interpolation
5
Computer Aided Design
Interpolation
Interpolation We want draw a regular and smooth parametric
curve through a certain number n of points Pi
Several families of base functions are available Most obvious are polynomials There are others -
Trigonometric functions (by mean of a Fourier decomposition for instance)
Power functions etc...
6
Computer Aided Design
Interpolation
We must choose the parametrization (nodal sequence)
Uniform
u0=0
u1=1
u2=2
un-1
=n-1
7
Computer Aided Design
Interpolation
Or non-uniform
u0=0
u1=2.5
u2=7
un-1
=15
8
Computer Aided Design
Interpolation
Can we choose u as a curvilinear abscissa ? In principle no since we don't know the final shape
of the curve beforehand (with the exception of interpolation points)
We will see later that it is often impossible that u corresponds with s exactly along the whole curve using analytical functions.
But nothing forbids to get close to that – numerically...
9
Computer Aided Design
Interpolation
Parametrization as an approximate arc length
u0=0
u1=d
1
u2=d
1+d
2
d1
dn-1
d2
un-1
=d1+...+d
n-1
10
Computer Aided Design
Interpolation
In all cases, we want to have :
We are going to interpolate the functions x(u) and y(u) with ONE polynomial with n parameters
This one must be of order p=n-1 :
We set the linear system and solve...
P ui=P i ≡ {xui=xi
y ui= y i
x u=a0a1 ua2 u2⋯an−1 un−1
=∑j=0
n−1
a j uj
{x u1=x1
⋮
x un−1=xn−1
11
Computer Aided Design
Interpolation
Vandermonde matrix
Can be solved by classical numerical methods, but ... The condition number of this matrix is VERY bad
It must be solved for each RHS member ( ( xi ) or ( y
i ) )
, or have to take the inverse of this matrix, or perform an LU decomposition.
{x u1=x1
⋮
x un−1=xn−1 (1 u0 u0
2⋯ u0
n−1
1 u1 u12
⋯ u1n−1
⋮ ⋮ ⋮ ⋮ ⋮
1 un−1 un−12
⋯ un−1n−1)(
a0
a1
⋮an−1
)=(x0
x1
⋮xn−1
)
12
Computer Aided Design
Interpolation
Instead of setting the polynomial in x and in y and solving, we can put it under the following form :
, where the lip(u) are a polynomial basis of order p=n-1.
These polynomials verify, for an interpolation :
We have only one computation to do for any position of the interpolation points, knowing the u
i
(the parametrization)
{x u=∑
0
n−1
x i l ipu
y u=∑0
n−1
yi l ipu
⇔ P u=∑0
n−1
Pi l ipu
l ipu j= ij
13
Computer Aided Design
Interpolation
Lets determine the li(u) : they are of order n-1
and such that :l i
pu j= ij⇔{l i
pu j=1 ; i= j
l ipu j=0 ; i≠ j
lip may be factored by (u-u
j) for j≠i
l ipu =k u−u0u−u1⋯u−ui−1u−ui1⋯u−un−1
k is such that l ipui=1
k=ui−u0ui−u1⋯ui−ui−1ui−ui1⋯ui−un−1−1
l ip(u)= ∏
j=0, j≠i
n−1 (u−u j)
(ui−u j)
The lip are the Lagrange polynomials of order p
14
Computer Aided Design
Interpolation
Lagrange polynomials
Properties
Interpolation Partition of unity
l ipu=
l pu
l p 'uiu−ui
= ∏j=0, i≠ j
n−1 u−u j
ui−u j
l pu=∏
j=0
n−1
u−u j
l ipu j=ij
l p '(ui)= ∏
j=0 , j≠i
n−1
(ui−u j) (first derivative w/r to u at u=ui)
∑0
n−1
l ip(u)=1
x(u)=∑0
n−1
x i l ip(u) with x i=1∀i
15
Computer Aided Design
Lagrange polynomials
Order 4 The u
i are evenly
distributed between u=0 and u=1
The sum is equal to 1 (partition of unity)
Presence of negative values
16
Computer Aided Design
Lagrange polynomials
Order 10 Presence of huge
overshoots near the boundaries
17
Computer Aided Design
Lagrange polynomials
The interpolation is represented by the following form :
Two things worth noting: The curve depends linearly on the position of the
points It is formed by a weighted sum of basis functions
that express the influence of each point on the curve
P (u)=∑i=0
n−1
P i l ip(u) with l i
p(u)= ∏
j=0, i≠ j
n−1 (u−ui)
(u j−ui)
18
Computer Aided Design
Lagrange polynomials
An experiment We approximate a circle by an increasing number
of points Simultaneously , approximation order increases
In every case, the curve is C
19
Computer Aided Design
3 points, order 2 (a parabola !)
Lagrange polynomials
20
Computer Aided Design
5 points, order 4
Lagrange polynomials
21
Computer Aided Design
11 points, order 10
Lagrange polynomials
22
Computer Aided Design
21 points, order 20
Lagrange polynomials
23
Computer Aided Design
Lagrange polynomials
Does it work ? The points were set exactly on the circle
What occurs if their position is inaccurate ? Or if the approximated shape is not so simple ? We are going to see two cases
The coordinates of the points are perturbed randomly A deterministic increase and decrease of the radius
24
Computer Aided Design
Lagrange perturbation
Random perturbation Each point is moved radially by a value between
-0.5 and +0.5 % of the circle's radius
25
Computer Aided Design
3 points, random perturbation 1%
Lagrange polynomials
26
Computer Aided Design
5 points, random perturbation 1%
Lagrange polynomials
27
Computer Aided Design
11 points, random perturbation 1%
Lagrange polynomials
28
Computer Aided Design
21 points, random perturbation 1%
Lagrange polynomials
29
Computer Aided Design
Lagrange polynomials
Runge phenomenon Similar to Gibbs phenomenon of the
decompositions in harmonic functions
30
Computer Aided Design
Lagrange polynomials
Deterministic perturbation Each point is moved radially by a value of -5 or +5
% of the circle's radius
31
Computer Aided Design
3 points, deterministic perturbation 10%
Lagrange polynomials
32
Computer Aided Design
5 points, deterministic perturbation 10%
Lagrange polynomials
33
Computer Aided Design
11 points, deterministic perturbation 10%
Lagrange polynomials
34
Computer Aided Design
21 points, deterministic perturbation 10%
Lagrange polynomials
35
Computer Aided Design
Lagrange polynomials
How to minimize Runge's phenomenon ? The problem here is the use of a unique polynomial
and regular intervals between knots. Instead, if we concentrate knots at the extremities,
the interpolation is less prone to Runge's phenomenon.
Make use of Chebyshev knots:
in the interval [-1,1]
or in the interval [0,1]
uin=cos ( 2 i−1
2 nπ)
uin=
12
+12
cos( 2 i−12 n
π)
36
Computer Aided Design
21 points, random perturbation 1%
Uniform nodal intervals – lagrange interpolation
Lagrange polynomials
37
Computer Aided Design
21 points, random perturbation 1%
Using Chebychev knots
Lagrange polynomials
38
Computer Aided Design
Lagrange polynomials
Perturbation of a point We shift one point by a big displacement
39
Computer Aided Design
11 points, using Chebychev knots
Lagrange polynomials
40
Computer Aided Design
11 points, using Chebychev knots
Lagrange polynomials
41
Computer Aided Design
99 points, using Chebychev knots
Lagrange polynomials
42
Computer Aided Design
499 points, using Chebychev knots
Lagrange polynomials
43
Computer Aided Design
Lagrange polynomials
Even without perturbations, we still do numerical approximations
Up to how many points can we pass through ?
44
Computer Aided Design
51 points (lagrange polynomial of order 50)
Lagrange polynomials
45
Computer Aided Design
61 points (lagrange polynomial of order 60)
Lagrange polynomials
46
Computer Aided Design
Lagrange polynomials
Here it has nothing to do with Runge's phenomenon It's rather an accumulation of errors due to
arithmetic calculations done in finite precision In our case, near the boundaries, we do an inexact sum
of very big numbers in absolute value, but whose sum (the exact sum) is close to the unit (partition of unity).
Big numbers in absolute value, computed with a good relative accuracy
Sum increasing the relative error
P (u)=∑i=0
n−1
P i l ip(u) with l i
p(u)= ∏
j=0, i≠ j
n−1 (u−ui)
(u j−ui)
47
Computer Aided Design
Lagrange polynomials
How to evaluate a polynomial ? Under its Lagrange form (here) : robust except at the
boundaries Alternative : newton's formula and divided differences
Horner's scheme
Optimal method with respect to the number of arithmetic operations for a polynomial expressed as a sum of monomials – may be numerically unstable
Others techniques adapted to particular forms of polynomials later in the course e.g.
Algorithm of De Casteljau for Bernstein polynomials Algorithm of De Boor for the evaluation of Bsplines
In any case, one should be cautious with numerical errors !
P u=∑i=0
n−1
i ui⇔ P u =a0u a1ua2u an−1
48
Computer Aided Design
Numerical errors
Numerical errors Floating point calculations are (most of the time)
inaccurate Analysis of the rounding done during operations in
floating point :
Mathematically equivalent calculations but expressed differently give distinct results
An example with
x⊖ y=x− y 11 , ∣1∣≤2
x⊕ y= x y 12 , ∣2∣≤2
x2− y2
=x yx− y
x⊗ y= xy13 , ∣3∣≤
49
Computer Aided Design
Numerical errors
Error made with the expression
No catastrophic increase of the relative error Error made with the expression
When x is close to y, the error can be of the order of magnitude of the theoretical result...
x2− y2
(x⊗ x)⊖( y⊗ y) = [ x2(1+ δ1)− y2
(1+ δ2)](1+ δ3)
= ((x2− y2
)(1+ δ1)+ (δ1−δ2) y2)(1+ δ3)
x yx− y
x⊕ y⊗x⊖ y = x− y 11x y1213
= x y x− y 1123122 31312 3
≈ 5
= ((x2− y2
)(1+ δ1+ δ3+ (δ1−δ2) y2+ δ1 δ3+ (δ1−δ2) y2
δ3))
50
Computer Aided Design
Numerical errors
Some useful rules (not a comprehensive list !) Prefer to
Lagrange form more accurate than horner's scheme … E. g. sum of many terms
Naive algorithm :
involves an error Kahan's summation algorithm
involves an error
x2− y2x yx− y
S=0;for (j=1;j<=N;j++){ S=S+X[j] ; }return S ;≈ N
S=X[1];C=0for (j=2;j<=N;j++) { Y=X[j]-C; T=S+Y; C=(T-S)-Y; S=T }return S ;
≈2
S=∑j=1
N
X [ j ]
51
Computer Aided Design
Numerical errors
Example of catastrophic rounding Computation of an integral :
S=∫Ω
f (x , y)dxdy with f (x , y)=x2+ y2
x
y
S≈ ∑i=0
nx−1
∑j=0
ny−1
f x i , y j det J
dx=xmax−xmin/nxdy= ymax− ymin/ny
x i =xmini dxdx /2y j = ymin j dydy /2
det J =dx dy
nx*ny samples
xmin
xmax
ymin
ymax
52
Computer Aided Design
Numerical errors
Computations made with the following parameters:
xmin
= ymin
= 0.0 ; xmax
= ymax
= 1.0 ; nx = ny = 10, Sexact=2/3
1) Single precision floating point numbers2) Double precision floating point numbers3) Quad precision floating point numbers4) Single precision floating points numbers with Kahan's summation algorithm
bechet@yakusa:floating_error$ ./test 101) sum (float )=0.665000021457672119142) sum (double )=0.665000000000000257573) sum (ldouble)=0.664999999999999999974) sum (kahan )=0.66499999999999999997Note : Program should be compiled without optimization !
53
Computer Aided Design
Numerical errors
bechet@yakusa:floating_error$ ./test 1001) sum (float )=0.666649818420410156252) sum (double )=0.666650000000000519943) sum (ldouble)=0.666650000000000000934) sum (kahan )=0.66664993762969970703
bechet@yakusa:floating_error$ ./test 10001) sum (float )=0.666680753231048583982) sum (double )=0.666666499999998052323) sum (ldouble)=0.666666499999999999824) sum (kahan )=0.66666668653488159180
54
Computer Aided Design
Numerical errors
bechet@yakusa:floating_error$ ./test 100001) sum (float )=0.368368804454803466802) sum (double )=0.666666664999854496903) sum (ldouble)=0.666666664999999976234) sum (kahan )=0.66666656732559204102
bechet@yakusa:floating_error$ ./test 1000001) sum (float )=0.003906250000000000002) sum (double )=0.666666666655382211813) sum (ldouble)=0.666666666650000552454) sum (kahan )=0.66666662693023681641
William Kahan. Further remarks on reducing truncation errors. Comm. ACM, 8(1):40,1965.
Compensated summation algorithm coming from :
55
Computer Aided Design
Numerical errors
y=p(x)=(1-x)n for x=1.333 and 2<n<41
S. Graillat, Ph. Langlois, N. LouvetCompensated Horner SchemeResearch Report RR2005-04, LP2A, University of Perpignan, France, july 2005
56
Computer Aided Design
Numerical errors
Definition of the condition number of a numerical expression
Ratio of the direct error to the inverse error
For a polynomial
( monomial form )
K P , x=lim 0
sup x∈D
∣ y∣∣ x∣
K P , x=∑i=0
n
∣ai∣∣x∣i
∣∑i=0
nai x i∣
x y= p(x)
y= p(x)= y+δ y= p(x+δ x)
x+δ x
p
p
p
δ x
δ ydirecterror
inverseerror
57
Computer Aided Design
Numerical errors
There are various compensated algorithms to carry out calculations on floating point numbers.
Ex. Kahan summation, Compensated Horner scheme ...
In general, they allow to have similar results as when using internal floating point with a precision twice that of the input data, following by a final rounding.
See references available on the course's website for the compensated Horner scheme and other documents.
65
Computer Aided Design
Lagrange polynomials
Morality : Lagrange interpolation is not suited beyond 10's of
control points because of the Runge phenomenon A modification of the position of a control point
leads to global changes of the curve. The evaluation of high order polynomials expressed
as monomials leads to numerical problems. No control of the slopes at the boundary of the
curve (start and finish).
66
Computer Aided Design
Splines
67
Computer Aided Design
Splines
MotivationLet us imagine that we have many (100's of) control points
But we don't want a Lagrange interpolation ! We should stay with a low order scheme but
conserve enough freedom to pass through every point
Curve defined by pieces ... and of low order (1)
68
Computer Aided Design
Splines
We are going to build a low order interpolation for each knot interval, such that we can impose slopes at the knots.
u=ui+1
u=ui
P=Pi+1
P=Pi
P'=P'i
P'=P'i+1
69
Computer Aided Design
Splines
In each range [i,i+1] , we want to have an independent polynomial
We have 4 parameters : position at each knot and associated tangents.
The basis must have 4 degrees of freedom, thus be of order 3 in the case of polynomials.
x [i ]u=A[i ]0A[i ]1 uA[ i ]2 u2A[i ]3 u3 , u∈[ui , ui1]
P (ui)=P i ≡ {x (ui)=x i
y (ui)= y i
...
70
Computer Aided Design
Splines
First, every interval has a unit length i.e.
Then we ensure identical intervals [0...1] between each interpolation point :
On each interval i , we thus have the following relation:
ui1−ui=1
u=u−ui
u i1−ui
=u−ui
x[ i ](u)=a[ i ] 0+a[ i]1 u+a[ i ]2 u2+a[i ] 3 u3 , u∈[0,1]
d udu
=1
71
Computer Aided Design
Splines
P=Pi+1
P=Pi
P'=P'i
P'=P'i+1
u=0
u=1
72
Computer Aided Design
Splines
We pass through both control points:
We impose both slopes :
At the end :
P (u=0)=P i ⇔a[ i ]0+a[ i ]1 u+a[ i ]2 u2+a[ i ]3 u3
=x i
P (u=1)=P i+1 ⇔a[ i ]0+a[ i ]1 u+a[ i ] 2 u2+a[ i ]3 u3
=x i+1
P '(u0=0)=P 'i ⇔ a[ i ]1+2a[ i ]2 u+3 a[i ]3 u2
=xi'
P '(u=1)=P 'i+1⇔a[ i ]1+2 a[ i ] 2 u+3 a[ i ]3 u2
=xi +1'
{a[ i ]0=xi
a[ i ]1=x i'
a[ i ] 2=3 xi1−x i−2 xi'−x i1
'
a[ i ]3=2xi−x i1xi'x i1
'
73
Computer Aided Design
Splines
We have continuity We have continuity of the derivatives But how to choose the slopes ?
Let the user choose ( “artistic” freedom) Automatically ...
74
Computer Aided Design
Splines
By finite differences with three points :
At the boundaries, we use finite differences (asymmetric)
The result depends on the parametrization ! Cardinal spline
c is a « tension » parameter. c=0 gives yields the so called “Catmull-Rom” spline, c=1 a zigzagging line.
x i'=
xi1−xi
2 ui1−ui
xi−xi−1
2 ui−ui−1
x0'=
x1−x0
u1−u0
xn−1'
=xn−1−xn−2
un−1−un−2
x i'=1−c
x i1−xi−1
2 , 0≤c≤1
x0'=(1−c)(x1− x0)
xn−1'
=(1−c)(xn−1−xn−2)
75
Computer Aided Design
Splines
5 points, finite differences by varying the parametrization [0..1] , [0..2] , [0..5] , [0..10]
Continuity of the curve/parameter but loss of regularity (and of geometric continuityin many cases)
76
Computer Aided Design
Splines
5 points, Cardinal Spline (Catmull-Rom) c=0
77
Computer Aided Design
Splines
Catmull-Rom Splines are widely used in computer graphics Simple to compute, effective Local control (price to pay : discontinuous secd derivative) Animations with keyframing
Ensures a fluid motion because of the continuity of the slope
78
Computer Aided Design
Splines
5 points, Cardinal Spline c=0.25
79
Computer Aided Design
Splines
5 points, Cardinal Spline c=0.5
80
Computer Aided Design
Splines
5 points, Cardinal Spline c=0.75
81
Computer Aided Design
Splines
5 points, Cardinal Spline c=1.0
82
Computer Aided Design
Splines
We can impose the continuity of second derivatives... On a curve with n points, we have n extra relations to
impose We may impose the continuity of the second derivative only
on the n-2 interior knots
What about the 2 points on the boundary ? Impose a vanishing second derivative.
We obtain what is called « natural spline » We could also impose the slopes (i.e. only n-2 relations remaining) Or , impose that the third derivative is zero on the points 1 and n-2
That means a single polynomial expression for the first two knot intervals, and the last two.
83
Computer Aided Design
Splines
Natural Spline : mathematical approximation of the spline historically used in naval construction.
C. D
eBoor
84
Computer Aided Design
Splines
Boeing
85
Computer Aided Design
Splines
We impose the continuity of the second derivatives
We substitute in the “internal” equations
Finally we obtain :
x[ i−1]
''1=x [i ]
''0⇔ 2a[ i−1] 26a[ i−1]3=2a[i ]2
2 [3 x i−x i−1−2 x i−1'
−x i']6 [2 x i−1−x ix i−1
'x i
']
=2 [3 x i1−x i−2 x i'−x i1
']
x i−1'
4 x i'x i1
'=3xi1−x i−1
86
Computer Aided Design
Splines
At the boundaries we want
We have then a linear system with n unknowns :
x [0]
''0=0⇔ 2a[0] 2=0
x [n−2]
''1=0⇔ 2a[n−2] 26a[ n−2] 3=0
2 x0'x1
'=3x1−x0
xn−2'
2 xn−1'
=3xn−1−xn−2
2 11 4 1
1 4 1⋱
1 4 11 2
x0
'
x1'
x2'
⋮
xn−2'
xn−1'
=3x1−x0
3 x2−x0
3x3−x1
⋮
3xn−1−xn−3
3 xn−1−xn−2
87
Computer Aided Design
Splines
By solving the system, we have :
, which is substituted in
,to get the polynomial in each portion :
From the global parameter u, we have to find in which portion we are ( the value of i ) , then compute right polynomial...
x0
'
x1'
x2'
⋮
xn−2'
xn−1'
{a[ i ]0=xi
a[ i ]1=x i'
a[ i ] 2=3 xi1−x i−2 xi'−x i1
'
a[ i ]3=2xi−x i1xi'x i1
'
x [i ]u =a[i ] 0a[ i ]1ua[ i ]2 u2a[ i ]3 u
3 , 0≤u1
88
Computer Aided Design
Splines
5 control points, natural spline
Catmull-Rom spline
89
Computer Aided Design
Splines
Another experiment We approximate a circle by a number of increasing
points Simultaneously , the order of the approximation the
number of pieces increases.
In all the cases, the curve is C C
2
90
Computer Aided Design
Splines
3 points, order 3!
91
Computer Aided Design
Splines
5 points
92
Computer Aided Design
Splines
11 points
93
Computer Aided Design
Splines
21 points
94
Computer Aided Design
Splines
Random perturbation Each point is moved radially by a value between
-0.5 and +0.5 % of the circle's radius
95
Computer Aided Design
Splines
3 points, random perturbation 1%
96
Computer Aided Design
Splines
5 points, random perturbation 1%
97
Computer Aided Design
Splines
11 points, random perturbation 1%
98
Computer Aided Design
Splines
21 points, random perturbation 1%
99
Computer Aided Design
Splines
Deterministic perturbation Each point is shifted radially depending on its
position by -5 or +5 % of the circle's radius
100
Computer Aided Design
Splines
3 points, deterministic perturbation 5%
101
Computer Aided Design
Splines
5 points, deterministic perturbation 5%
102
Computer Aided Design
Splines
11 points, deterministic perturbation 5%
103
Computer Aided Design
Splines
21 points, deterministic perturbation 5%
104
Computer Aided Design
Splines
11 points
non local control
105
Computer Aided Design
Splines
106
Computer Aided Design
Splines
Perturbation of a point We shift one point by a significant amount
107
Computer Aided Design
Splines
21 points
108
Computer Aided Design
99 points
Splines
109
Computer Aided Design
Splines
999 points
110
Computer Aided Design
Splines
Stable interpolation scheme Weak Runge phenomenon The displacement of a point yet affects all the
curve Nevertheless, the perturbation fades very quickly
further away from the shifted point « Overshoots » are limited.
111
Computer Aided Design
Splines
Closed curve ? The curve can be closed, just impose everywhere
that the second derivative is continuous.
112
Computer Aided Design
Splines
Instead of
... we have
(4 1 11 4 1
1 4 1⋱
1 4 11 1 4
)(x0
'
x1'
x2'
⋮
xn−3'
x n−2'
)=(3(x1−xn−2)
3(x2−x0)
3(x3−x1)
⋮3( xn−2− xn−4)
3(x0−x n−3))
x[n−2]
''(1)=x[0 ]
''(0)⇔ 2a[ n−2 ]2+6a[ n−2 ]3=2a [0] 2
x [0]
''0=0⇔ 2a[0] 2=0
x [n−2]
''1=0⇔ 2a[n−2] 26a[ n−2] 3=0
Circulantmatrix
xn−1=x0
xn−1'
=x0'and
113
Computer Aided Design
Splines
General case : arbitrary parametrization
We again change the parametrization...
P (ui)=P i ≡ {x (ui)= xi
y (ui)= y i
x[ i ](u)= A[ i ] 0+ A[ i ]1 u+ A[ i ] 2 u2+ A[ i ]3 u3 , u∈[ui , ui+1]
u=u−ui
ui +1−ui
x[i ](u)=a[ i ]0+a[ i ]1 u+a[ i ]2 u2+a[ i ] 3 u3 , u∈[0,1]
d udu
=1
ui+1−ui
=1hi
114
Computer Aided Design
Splines
We pass through both points :
We impose both slopes :
Finally :
P u0=0=P i ⇔a[ i ]0a[ i ]1 u0a[i ] 2u02a[ i ]3 u0
3=xi
P u1=1=Pi1⇔a[ i ]0a[i ]1 u1a[i ] 2 u12a[i ]3 u1
3=x i1
P 'u0=0=
d Pd u
0=d Pd u
01hi
=P 'i ⇔ a[i ]12a [ i ] 2 u03a [ i] 3u02=x i
' hi
P 'u1=1=
d Pd u
1=d Pd u
11hi
=P 'i1⇔a[i ]12a[ i ]2 u13a[ i ]3 u12=x i1
' hi
{a[i ]0=x i
a[i ]1=x i' hi
a[i ]2=3 x i1− xi−2 x i' hi−x i1
' hi
a[i ]3=2 x i−x i1x i' hix i1
' hi
115
Computer Aided Design
Splines
We impose the second derivative for a natural spline
We substitute in the internal equations
d 2 P [i ]
du2 u=d 2 P[i ]
d u2
d 2u
d u2 =d 2 P [ i]
d u2
1
hi2
2 [3 xi−x i−1−2 x i−1' hi−1−x i
' hi−1]6 [2 x i−1−x ix i−1' hi−1x i
' hi−1]
hi−12
=2 [3 x i1−x i−2 x i
' hi−x i1' hi ]
hi2
x[ i−1]
''1=x[i ]
''0⇔
2a[ i−1] 26a [ i−1] 3
hi−12
=2a [i] 2
hi2
116
Computer Aided Design
Splines
We obtain finally :
x i−1'
2 x i'
hi−1
2 x i
'x i1
'
hi
=3 x i−x i−1
hi−12
3 x i1−x i
hi2
hi x i−1'
2 x i'hi−12 xi
' xi1
'=3
hi
hi−1
x i−x i−13hi−1
hi
x i1−x i
117
Computer Aided Design
Splines
At the boundaries we want a vanishing second derivative …
We have then a linear system of n unknowns:
(next page)
x[0]
''(0)=0⇔
2a [0] 2
(h02)
=0
x[n−2]
''(1)=0⇔
2a[ n−2 ]2+6a[ n−2 ]3
(hn−22
)=0
h0(2 x0'+ x1
')=3(x1−x0)
hn−2(xn−2'
+2 xn−1'
)=3(xn−1−xn−2)
118
Computer Aided Design
Splines
(2h0 h0
h1 2 h1+2h0 h0
⋱
hn−2 2 hn−2+2 hn−3 hn−3
hn−2 2hn−2
)(x0
'
x1'
⋮
xn−2'
xn−1'
)=
(3(x1−x0)
3h1
h0
(x1− x0)+3h0
h1
(x 2−x1)
⋮
3hn−2
hn−3
(xn−2−xn−3)+3hn−3
hn−2
(xn−1−xn−2)
3(xn−1−xn−2)
)
119
Computer Aided Design
Splines
Natural Spline(uniform parametrization)
Natural Spline(non uniform parametrization)
u=0
u=1
u=2
u=4
u=5
u=3
u=4
120
Computer Aided Design
Splines
Compact notation We would like a compact representation as for the
Lagrange interpolation.
This on each interval [i,i+1].
x[i ](u)=a[ i ]0+a[ i ]1 u+a[i ]2 u2+a[i ]3 u3
0≤u<1
{x[ i](u)=∑
0
n
xi hi 0p(u)+∑
0
n
x i' hi 1
p(u)
y[ i ](u)=∑0
n
yi hi 0p(u)+∑
0
n
y i' hi 1
p(u)
...
⇔ P[i ](u)=∑0
n
P i hi 0p(u)+∑
0
n
Pi' hi 1
p(u)
{a[ i ]0=xi
a[ i ]1=x i'
a[ i ] 2=3 xi1−x i−2 xi'−x i1
'
a[ i ]3=2xi−x i1xi'x i1
'
121
Computer Aided Design
Splines
We have on each interval :
By rearranging equations
{a[i ]0=xi
a[i ]1=x i'
a[i ] 2=3 xi1−x i−2 xi'−x i1
'
a[i ]3=2xi−x i1xi'x i1
'
x [i ]u =xix i'u3x i1−x i−2 x i
'−xi1
' u
22 xi−x i1xi
'x i1
'u
3
x [i ]u=xi 1−3u22u
3x i
'u−2u
2u
3
x i13u2−2 u
3xi1
'−u
2u
3
122
Computer Aided Design
Splines
Hermite polynomials (for two points)
{h00
p=1−3u
22u
3
h10p=3u
2−2u
3
h01p=u−2u
2u
3
h11p=−u
2u
3
123
Computer Aided Design
Splines
The more general Hermite basis of degree 2n-1 allows to do an interpolation of n points on an interval, as the Lagrange basis, additionally imposing slopes at each point.
hi0n(u)=[1−
l n ''(ui)
l n '(ui)
(u−ui)][ l in(u)]
2
hi1nu =u−ui[l i
nu]
2
l inu=
l nu
l n 'uiu−ui
= ∏j=0, i≠ j
n−1 u−ui
u j−ui
l nu =∏
j=0
n−1
u−u j
124
Computer Aided Design
Splines
Properties of the Hermite basis
hi0n
u j= ij
hi0n
'u j=0
hi1n'u j=ij
hi1nu j=0
∑i
hi0nu=1
Interpolation of the positions
Interpolation of the slopes
125
Computer Aided Design
Splines
Property of affine invariance It is a useful property such that the curves we
define for a set of control points can undergo linear affine transformations without hassle.
Let Pi* the affine transformation of the control points P
i
Let P*(u,Pi) the affine transformation of the points of the
curve P(u,Pi) defined from the original points P
i
Let P(u,Pi*) the new curve based on the modified control
points Pi* , with the same parametrization.
The affine invariance is verified iff P*(u,Pi) = P(u,P
i*)
for all u.
126
Computer Aided Design
Splines
Affine transformations
Translation
Scaling
3 rotations
Shear
12 degrees of freedom
P ≡A⋅Pu
u=[abc ] ; A=[
1 0 00 1 00 0 1 ]
u=0 ; A=[d 0 00 e 00 0 f ]
u=0 ; A=[cos −sin 0sin cos 0
0 0 1]⋯u=0 ; A=[
1 g h0 1 i0 0 1]
127
Computer Aided Design
Splines
Let P a parametric curve built this way :
Let's verify the invariance by a translation t:
P (u , Pi)=∑0
n−1
P i K in(u)
P (u , Pi*)=∑
0
n−1
(P i+t) K in(u)=∑
0
n−1
P i K in(u)+∑
0
n−1
t K in(u)
=P (u , P i)+∑0
n−1
t K in(u)
=P (u , P i)+t=P*(u , Pi) iff ∑
0
n−1
K in(u)=1
Partition of unity
128
Computer Aided Design
Splines
For the other multiplicative transformations
Consequently, iff the basis functions form a partition of unity, and the dependence with respect to the control points is linear, then the representation is invariant by any affine transformation.
P (u , Pi*)=∑
0
n−1
(A⋅P i) K in(u)=A⋅∑
0
n−1
P i K in(u)
=A⋅P (u , P i)=P*(u , P i)
(no particular conditions except linearity with respect to the coordinates of the control points)
129
Computer Aided Design
Splines
Do Hermite's basis form a partition of unity ?
∑0
n−1
h??n
u=1
{h00
p=1−3u
22u
3
h10p=3u
2−2u
3
h01p=u−2u
2u
3
h11p=−u
2u
3F u=1
F 0=1F 1=1 F '
0=0F '
1=0
130
Computer Aided Design
Let's check the invariance If we apply a translation to the control points P
i, the
derivatives Pi' should not change ...
P (Pi*)=∑
0
1
(P i+t )hi0n(u)+∑
0
1
Pi' hi1
n(u)
=∑0
1
thi0n(u)+∑
0
1
P i hi0n(u)+∑
0
1
P i' hi1
n(u)
=t+ P (P i)=P*(P i)
P i*=P i+t P i
' *=P i
'
Splines
131
Computer Aided Design
Splines
We must also check the invariance for the other multiplicative transformations : those affect both the coordinates and the derivatives
P P i*=∑
0
1
A⋅P ihi0nu∑
0
1
A⋅Pi'hi1
nu
P i*= A⋅P i P i
' *=A⋅P i
'
=A⋅∑0
1
P i hi0nu∑
0
1
P i' hi1
nu
=A⋅P (P i)=P*(P i)
QED
132
Computer Aided Design
Splines
Beware of the computation of the slopes x'i ...
Natural Splines :
2 11 4 1
1 4 1⋱
1 4 11 2
x0
'
x1'
x2'
⋮
xn−2'
xn−1'
=3x1−x0
3 x2−x0
3x3−x1
⋮
3xn−1−xn−3
3 xn−1−xn−2
P i'=L(P i−P j)⇒ P i
' *=L (P i
*−P j
*)=L((A⋅Pi+t)−( A⋅P j+t))
=A⋅L(P i−P j)=A⋅Pi'
Linear operator
It is OK in this case
133
Computer Aided Design
Splines
Rotation of 45° Scaling x direction
(times 0.5) Followed by a
translation
134
Computer Aided Design
Splines
3D Curves Minimal order so that a curve can have a torsion
(non planar curve) Let's consider a Lagrange interpolation 2 points → on a straight line (no curvature) 3 points → in a plane (no torsion) 4 points → torsion becomes possible
Minimal order to join smoothly two arbitrarily oriented curves = 3
P u=∑i=0
n−1
P i l ipu