T OPICS IN C URVE I NTERSECTION AND BARYCENTRIC I NTERPOLATION C HRISTIAN S CHULZ D ISSERTATION PRESENTED FOR THE DEGREE OF P HILOSOPHIÆ D OCTOR C ENTRE OF M ATHEMATICS FOR A PPLICATIONS & D EPARTMENT OF I NFORMATICS U NIVERSITY OF O SLO 2009 Acknowledgements This thesis has been assembled with the help of many people. First of all I would like to thank my main supervisor Knut Mørken. Without his knowledge, guidance and encouragement I would have never made it thus far. I am also grateful to my second supervisor Michael Floater, who, with his sharp eye and thoroughness, has been a valued teacher in the art and craft of scientific research. My third supervisor Martin Reimers has been the source of much appreciated discussions and helpful comments. Tom Lyche gave me plenty of freedom in my tutoring duties and always willingly answered my questions. I would also like to thank my diploma thesis supervisor Günther Greiner for his support in my quest for a Ph.D. position abroad. My research was funded by the Department of Informatics and I was hosted by the Centre of Mathematics for Applications (CMA) which provided an international, interdisciplinary and stimulating environment excellently administrated by Helge Galdal. I shared my office first with Martin Groth and later with Eivind Lyche Melvær who was always open for a discussion whatever the topic. My fellow Ph.D. students Johan Seland and Erik Christopher Dyken said never no to discussing my questions about implementational details, tips, tricks and hacks. I am also grateful to Paul Kettler for proof-reading my English. Atgeirr Flø Rasmussen welcomed me like an old friend when I first arrived in Oslo. I am thankful to the Ph.D. students Agnieszka, Andrea, Asma, Franz, Georg, Linda, Marie, Simen, Solveig and Yeliz, and the Post-docs Claire, Jiri and Sidhartha for creating a social environment at the CMA. Life consists not only of study and research. Thanks to my flatmates in Kringså for creating a home. I spent many happy hours in the courses, parties and events organized by Oslo’s student dancing group, OSI Dans, making friends and practicing my Norwegian. Sabine Büttner has been a good friend for several years, just as Rainer Ostasch, who both always have an open ear for my small and big problems. Last, but not least, I would like to thank my brother and my parents, who have always supported and encouraged me in my decisions, for which I am very grateful. Christian Schulz, Oslo, June 2009 Contents I Introduction 1 1 Motivation 3 2 Background for curve intersection 2.1 Functions and parametric curves . . . 2.1.1 Polynomials . . . . . . . . . 2.1.2 Piecewise polynomials . . . . 2.1.3 Rational functions and curves 2.2 Numerical methods . . . . . . . . . . 2.2.1 Stability . . . . . . . . . . . . 2.2.2 Convergence . . . . . . . . . 2.3 Root finding . . . . . . . . . . . . . . 2.4 Curve intersection in the plane . . . . 3 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 7 10 13 14 14 15 16 19 Interpolation 3.1 Univariate . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Multivariate . . . . . . . . . . . . . . . . . . . . . . . . 3.3 From barycentric coordinates to transfinite interpolation . 3.3.1 Barycentric coordinates . . . . . . . . . . . . . 3.3.2 Transfinite Lagrange interpolation . . . . . . . . 3.3.3 Transfinite Hermite interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 24 27 27 30 32 Overview of papers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 v vi II 5 6 III 7 8 Curve intersection in the plane Bézier clipping is quadratically convergent Christian Schulz; Computer Aided Geometric Design 2009 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 5.2 Bézier Clipping . . . . . . . . . . . . . . . . . . . . 5.3 Background Material . . . . . . . . . . . . . . . . . 5.4 Convergence Rate . . . . . . . . . . . . . . . . . . . 5.5 Arbitrary Fat Line Rules . . . . . . . . . . . . . . . 5.6 Fat Line Rules Providing Quadratic Convergence . . 5.7 Numerical Examples . . . . . . . . . . . . . . . . . 37 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Computing intersections of planar spline curves using knot insertion K. Mørken, M. Reimers, Chr. Schulz; Computer Aided Geometric Design 2009 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Basic Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 The Intersection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Background Material . . . . . . . . . . . . . . . . . . . . . . . 6.4.2 Basic Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.3 Accumulation Points . . . . . . . . . . . . . . . . . . . . . . . 6.4.4 Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.5 Convergence Rate . . . . . . . . . . . . . . . . . . . . . . . . 6.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 . . . . . . . . . . . . . . . . . . . . . . Transfinite & barycentric interpolation PRM: Hermite interpolation on arbitrary domains Michael S. Floater and Christian Schulz; Computer graphics forum 2008 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 A new look at mean value interpolation . . . . . . . . . . . . . . . 7.2.1 Convex domains . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Non-convex domains . . . . . . . . . . . . . . . . . . . . . 7.3 Hermite interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Boundary integrals . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5 Cubic precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6 Numerical Examples . . . . . . . . . . . . . . . . . . . . . . . . . 39 40 42 42 47 50 53 57 59 60 62 63 65 68 68 72 75 81 83 85 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 86 87 88 89 94 94 96 PRM: Existence, uniqueness and polynomial precision 101 Christian Schulz 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 8.2 Univariate polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 vii 8.3 8.4 8.5 8.6 8.7 9 Existence and uniqueness Polynomial precision . . Boundary integrals . . . Numerical examples . . Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rational Hermite interpolation without poles Michael S. Floater and Christian Schulz 9.1 Introduction . . . . . . . . . . . . . . . . 9.1.1 Lagrange interpolation . . . . . . 9.1.2 Hermite interpolation . . . . . . . 9.1.3 Contribution . . . . . . . . . . . 9.2 A simple Berrut Hermite interpolant . . . 9.3 The Hermite Floater-Hormann interpolant 9.3.1 The barycentric form . . . . . . . 9.3.2 Properties . . . . . . . . . . . . . 9.3.3 Some explicit weights . . . . . . 9.4 Univariate pointwise radial minimization . 9.4.1 A barycentric-like form . . . . . . 9.4.2 Unique and free of poles . . . . . 9.4.3 Interpolation property . . . . . . 9.4.4 Precision . . . . . . . . . . . . . 9.5 Numerical examples . . . . . . . . . . . Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 109 110 111 116 117 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 117 119 121 121 123 124 126 128 129 130 131 132 133 133 141 viii Part I Introduction 1 1 Motivation Nowadays the use of digital geometric models like curves, surfaces or volumes has become more and more common in multiple scientific areas as well as industrial applications. This has naturally led to an increased variety of model types in combination with a need for more powerful and robust tools to create and manipulate such models. Meshes, especially two- and three-dimensional ones like triangle, quad or tetrahedral meshes, are essential for solving partial differential equations over non-trivial domains. Subdivision surfaces are popular in animations (Geri’s Game from 1997 was Pixar’s first film using them) and in the graphics of modern computer games. In the world of computer aided (geometric) design (CAD/CAGD) of for example cars, ships or other mechanical parts, geometric models are described by mathematical formulas as this provides an exact representation everywhere and in addition can be used to let the model fulfil a prescribed continuity and/or other desired properties. The presented thesis can be placed into the field of CAGD and deals with such mathematically defined geometric models. Among those formulations, parametric representations provide a relatively easy way of modelling and visualizing and are thus commonly used in the CAD/CAGD community. The richness and modelling power of mathematical equations can on the other hand provide difficulties for the designer of a model. It would be quite unintuitive and difficult to design a complete body of a car with smooth transitions between different parts if one would have to come up with the corresponding equations by hand. Thus tools for the creation and manipulation of such geometric models are necessary. In other words, methods and algorithms are needed that generate and modify the mathematical formulas which in turn define the model that suits the wishes of the designer. One example for such a tool would be letting the user specify certain so called control points which then define the model in a certain, predictable and intuitive way. Another possibility is to start with some predefined shapes and then by applying some modifications one can create the wanted model. As a third example one can have a cloud of points which either shall lie on the desired surface or approximately describe it. Then by either interpolation or approximation one can construct a mathematical equation for the geometric model. In the task of reverse engineering, point clouds with a 3 4 CHAPTER 1. MOTIVATION large number of points are generated by scanning a real world object. Most of such tools for generation and modification will themselves consist of several smaller problems and tasks which need to be solved for the tool to be working. Hence a lot of research and development in CAGD focuses on solving those ’simple’ problems in an efficient, stable and robust way. One common and important task is to compute the intersections of different geometric objects or models. Finding the intersections of two parametric curves in the plane is a fundamental example of this problem, which is important in itself but also as a part of more elaborate algorithms for other, more advanced tasks. Different approaches to this problem have been developed over time. For polynomial curves, a very important class of parametric curves, an algorithm called Bézier clipping was developed in 1990, which provides the desired properties of stability and robustness. The observed speed of this method is based on a property called quadratic convergence rate, which can be seen in practice, but has not been proved yet. In one part of this thesis we will analyse Bézier clipping and prove this observed rate theoretically. Another important class of parametric curves are piecewise polynomial curves, called spline curves. We will provide a new algorithm for computing intersections between two such spline curves when represented using so called B-spline basis functions, which are very widely used in CAGD. The algorithm tries to make specific use of properties related to this representation. Another fundamental problem is the task of interpolation, where one wants to find a curve, surface or other object which passes through a set of given data points. Sometimes also derivatives at those points might be specified in order to describe how the object should pass through them, yielding Hermite interpolation. The number of points can be finite, but possibly huge, or infinite. In the latter case one wants to interpolate some given geometric objects like curves or surfaces or, more generally, some boundary, or one wants to interpolate values and maybe derivatives given at these objects. The resulting interpolation problem is also called transfinite interpolation. As part of this thesis we will propose a new method for transfinite Hermite interpolation that provides a natural extension of the recently developed method of transfinite mean value interpolation. We will also discuss univariate rational barycentric Hermite interpolation, which is a special, stable and robust way of specifying a rational function interpolating given data points and derivatives. This thesis is organized in the following way. Part I provides the necessary background material and an introduction to the topics of the thesis. Although this first part is aimed to be self-contained, a certain basic knowledge in calculus and linear algebra is assumed. The papers which form the actual contribution of this thesis are presented in Parts II and III. Chapter 2 discusses Bézier and B-spline curves, numerical methods and the connection between root finding and computing curve intersections. Interpolation in its different forms is the topic of Chapter 3, and a short overview of the papers in this thesis is given in Chapter 4. 2 Background for curve intersection The intersection algorithms discussed in Part II work on parametric curves and lead to convergent iterative methods. The latter means that they repeatedly compute an approximation whose distance to the real intersection will become arbitrarily small. This chapter introduces the types of functions and curves used in Parts II and III, as well as different ways of representing them. In addition we give a short introduction to numerical and iterative methods and some of their properties. The task of finding zeros of a function is closely related to the problem of locating the intersections of two curves. After introducing some methods for finding zeros of a function, the chapter ends with shortly relating these to the curve intersection problem. 2.1 Functions and parametric curves In Part II we will use real functions and parametric curves. Let us therefore shortly recapitulate the difference between those two objects as well as a motivation for the use of parametric curves from a modelling point of view. A real function f is defined as the mapping of a domain D into the real numbers, f : D → R. We are only interested in real domains, so D ⊆ R. The corresponding set of the two-dimensional points (x, f (x)) ∈√R2 is the graph of f , as illustrated in the left part of Figure 2.1 for the function f (x) = 1 − x2 . By definition the graph has exactly one y-value for every x-value, thus a different construction is needed in order to represent a full circle. A planar parametric curve f : D → R2 is defined as the ordered pair of two functions x : D → R and y : D → R. Here D is called the parameter domain and the image of the curve is the set {f (t) = (x(t), y(t)) ∈ R2 | t ∈ D} where t is the parameter. Observe that the image is not considered to be the curve. The reason for this becomes clear by realizing that two different curves can have the same image, as illustrated in Figure 2.1 on the right. The concept of a parametric curve is applicable for curves in any dimension, f : D → Rm , 5 6 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION y y x x √ Figure 2.1: Left: Graph of the function f (x) = 1 − x2 . Right: The blue line is the image of the parametric curve f (t) = (cos(2tπ), sin(2tπ)), the red line the image of g(t) = (cos(2t2 π), sin(2t2 π)), where t ∈ [0, 1] for both. Clearly the images are identical. The filled blue and outlined red circles illustrate the corresponding points for t = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6. where fi : D → R is the i-th function defining the i-th component of the point f (t). For a function f the tangent T at a point x0 is defined as the line having the same value and slope as f at this point, T (x) = f (x0 ) + (x − x0 )f 0 (x0 ). In most cases this can directly be transformed into the parametric setting where T(s) = f (t0 ) + (s − t0 )f 0 (t0 ), with s ∈ R, is the tangent to f at t = t0 . However, if f 0 (t0 ) = 0, then the tangent at t0 is not defined. Such points are called singular points of f . An often desired property when dealing with curves is the absence of such singular points. We say that a curve f : D → Rm is regular if f 0 (t) 6= 0 for all t ∈ D. The derivatives of a curve can also be used to classify curves into differentiability classes. A curve is called C k -continuous if f has a well defined and continuous i-th derivative, for i = 0, . . . , k. A piecewise C k -continuous curve f is continuous and the parameter domain consists of a finite number of sub-intervals where f is C k -continuous over each of them. The curve (t, |t|) with t ∈ R for example is only C 0 but piecewise C ∞ . More and advanced information about curves can be found in basic calculus books, e.g. [1], and in books on differential geometry of curves [19, 62]. Several classes of functions exist, polynomials being probably the best known. Correspondingly, parametric curves can be classified according to the type of functions used for their components. In addition, the way in which each component function is represented can provide some additional features or knowledge mathematically as well as in a design context. In the remaining part of this section we discuss the different function types used in this thesis, introduce some different ways of representing them, consider their properties, and how these carry over to parametric curves. 2.1. FUNCTIONS AND PARAMETRIC CURVES 2.1.1 7 Polynomials Polynomials are a well known class of functions and popular for use in a computer as they can be evaluated by the basic operations of addition, subtraction and multiplication. Moreover, the Weierstrass approximation theorem states that over a closed interval any continuous function can be approximated arbitrarily closely by a polynomial of sufficiently high degree [42]. Polynomials can be represented as the weighted sum of basis polynomials, p : R → R, p(x) = n X ci bni (x), i=0 with n being the degree of the polynomial and ci , i = 0, . . . , n its coefficients. One set of basis polynomials is given by the monomial basis bni (x) = xi , p(x) = cn xn + cn−1 xn−1 + . . . + c1 x + c0 . This representation can be evaluated by straightforward evaluation of the basis functions and weighted summation, or more efficiently by the Horner scheme [76]. However, in a computer such an evaluation will consist of several steps, e.g. first the values x, x2 , . . . , xn are computed, then they are multiplied with the coefficients and finally added together. Each of those steps yields an intermediate result. For the monomial basis such intermediate results can differ quite a lot in their magnitude which in turn can lead to numerical instability in certain situations (see 2.2). Moreover, there is only little geometric information about the polynomial contained in the coefficients (it is difficult to tell from the coefficients how the graph of the polynomial ’looks’). A different basis is given by the Lagrange basis polynomials. Let x0 < x1 < . . . < xn ∈ R be arbitrary, but fixed. Then bni (x) = Li (x) = n Y x − xj . x i − xj j=0 (2.1) j6=i This basis has the advantage that p(xi ) = ci , but it is often associated with numerical instability and high evaluation costs. However, when written in a different way via the so called barycentric formula (of the first or second form), numerical stability can be improved significantly and evaluation costs reduced. This is discussed in more detail in Chapter 9. Problems with numerical instability often occur when intermediate results have a high order of magnitude while the initial data and the final result have not. Using convex combinations avoids this problem. An affine combination of the values x1 , . . . , xk is given by λ = a1 x1 + a2 x2 + . . . + ak xk , k X ai = 1, i=1 and a convex combination is an affine combination where all ai ≥ 0, i = 1, . . . , k. Let α < β ∈ R be arbitrary, but fixed. The Bernstein basis polynomials 8 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION y 3 1 B0,[0,1] c0 (1 − x) 3 B3,[0,1] c10 (t) x c1 3 3 B1,[0,1] B2,[0,1] (1 − x) x c20 (t) (1 − x) (1 − x) 1 x 0 x c11 (t) x c2 (1 − x) x (1 − x) x c30 (t) c21 (t) c12 (t) c3 Figure 2.2: Left: Bernstein basis polynomials for degree 3, α = 0 and β = 1. Right: Illustration of the de Casteljau algorithm for degree 3, α = 0 and β = 1. n bni (x) = Bi,[α,β] (x) = 1 n (β − x)n−i (x − α)i (β − α)n i enable us to evaluate p at any point x in the closed interval [α, β] by using only convex combinations. An evaluation at points outside this interval will contain affine combinations. Hence this basis can be considered to be numerically stable. The corresponding algorithm is called the de Casteljau algorithm and is one of the most famous and fundamental methods in CAGD. It was developed by de Casteljau somewhere around 1959 – 1963 during his work for Citroën, which kept it secret for a long time [24]. Set c0i (x) = ci , i = 0, . . . , n and let cri (x) = x − α r−1 β − x r−1 ci (x) + c (x), β−α β − α i+1 r = 0, . . . , n, i = 0, . . . , n − r. Then p(x) = cn0 (x). The de Casteljau algorithm describes a pyramid of convex combinations as illustrated in Figure 2.2, in which α = 0 and β = 1, which is a typical choice in practice. The Bernstein basis polynomials have certain useful properties. They form a partition Pn n of unity B (x) = 1 and for any x in the open interval (α, β) they are positive i=0 i,[α,β] n Bi,[α,β] (x) > 0 for all i . Moreover we have x= n X (n − i)α + iβ i=0 n n Bi,[α,β] (x). The points ci = ((n − i)α + iβ)/n, ci are called the control points of the polynomial p and the linear interpolant of these points gives its control polygon. Figure 2.3 shows an example. The control polygon has several desirable properties related to the polynomial. First it has tangential end point interpolation. This means that the end points of the control polygon are interpolated and that the lines through the first and last two control points are the tangents 2.1. FUNCTIONS AND PARAMETRIC CURVES 9 y −1 0 2 x 1 Figure 2.3: Left: A polynomial in Bézier representation. Right: A Bézier curve with the de Casteljau algorithm illustrated. at the end points. This can be easily observed from the derivative of the polynomial p0 (x) = n−1 n X n−1 (ci+1 − ci )Bi,[α,β] . β − α i=0 Moreover the polynomial has the convex hull property. Its graph is contained in the convex hull of the control points, which is the set of all points that can be expressed as a convex combination of the control points. Finally the polynomial has the variation diminishing property which says that the number of intersections of any line with the polynomial is less or equal than the number of intersections of the line with the control polygon. A polynomial parametric curve p : D → Rm is a curve where all component functions pk : D → R, k = 1, . . . , m are polynomials. Due to their favourable properties, we will only consider component functions represented using Bernstein basis polynomials n Bi,[α,β] (x) on an interval [α, β]. A curve in this representation is called a Bézier curve after Pierre Bézier who worked at Renault and like de Casteljau was one of the first to use polynomial curves for industrial design [24]. As all component functions use the same basis functions, we can simply use the following vector notation for Bézier curves, p(t) = n X n ci Bi,[α,β] (t). i=0 The vectors ci are the control points of the Bézier curve and the control polygon of the curve is again the linear interpolant of the control points. The control polygon of a Bézier curve has the same properties as the control polygon of a polynomial, namely the convex hull and variation diminishing property and tangential end point interpolation. The latter has to be handled with a bit of care here, as the actual derivative of p at the end points is a scaling of the vectors defined by the four outermost points. Applying the de Casteljau algorithm in the curve setting yields repeated linear interpolation, as illustrated in Figure 2.3. Moreover, for any t∗ ∈ [α, β], the de Casteljau algorithm provides a Bézier representation of the parts for t ∈ [α, t∗ ] and for t ∈ [t∗ , β] of the curve. This is called subdividing the curve and the control points of the left part are ĉr = cr0 (t∗ ) and for the right part c̃r = cn−r (t∗ ) for r r = 0, . . . , n. 10 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION Polynomials, the coefficients of a polynomial in Bézier representation, and the control points of a Bézier curve can be described by a multivariate function, called the Blossom. Blossoming was discovered by Ramshaw[59], but according to [24] it was already known to de Casteljau[18]. A multivariate function f (x1 , . . . , xn ) ∈ R is called affine if for each xi , i = 1, . . . , n it can be expressed as f (x1 , . . . , xn ) = a(x1 , . . . , xi−1 , xi+1 , . . . , xn ) xi + b(x1 , . . . , xi−1 , xi+1 , . . . , xn ), with a, b : Rn−1 → R. The blossom B[p](x1 , . . . , xn ) of a polynomial is such an affine function and it is uniquely defined by the properties • Symmetry. B[p](x1 , . . . , xn ) = B[p](xπ1 , . . . , xπn ) for any permutation π1 , . . . , πn of the integers 1, . . . , n. • Multi-affine. B[p](. . . , (1 − λ)x + λy, . . .) = (1 − λ)B[p](. . . , x, . . .) + λB[p](. . . , y, . . .). • Diagonal property. B[p](x, . . . , x) = p(x). For example the blossom of the polynomial p(x) = x3 + x is B[p](x1 , x2 , x3 ) = x1 x2 x3 + (1/3)(x1 + x2 + x3 ). The control points of a Bézier curve p can be expressed as ci = B[p](α, . . . , α, β, . . . , β ). | {z } | {z } (n−i) i Bézier curves are a classical element in CAGD. For a more detailed introduction and more information about them, we refer the reader to [23]. 2.1.2 Piecewise polynomials Despite their approximation power, polynomials have limitations when modelling more complicated curves. The problem is the high degree necessary, which can lead to numerical stability problems and also to several unwanted ’wiggles’ in the curve. Moreover, changing one control point of a Bézier curve will change the whole curve, although the difference will be small far away from the changed control point. Using piecewise polynomial functions and curves provides a relatively easy solution to these problems. Piecewise polynomials, also called splines, can be specified by simply specifying the polynomial pieces for each sub-interval. However, the problem is how to ensure a certain desired level of continuity between those pieces. A simple yet flexible way of automatically ensuring the wanted levels of continuity is the use of B-splines, sometimes also called Bspline basis functions. Let Bi,d,t (x) be the i-th B-spline of degree d ≥ 0 with respect to the knot vector t = (t1 , t2 , . . . , tn+d+1 ) and f (x) = n X i=1 ci Bi,d,t (x), x ∈ [td+1 , tn+1 ) 2.1. FUNCTIONS AND PARAMETRIC CURVES 11 be the piecewise polynomial function with n coefficients ci , also called a B-spline function. The knot vector indicates the polynomial sub-intervals, but it also prescribes the continuity between the polynomial pieces. If ti < ti+1 then f is a polynomial in [ti , ti+1 ) and if ti−1 < ti = ti+1 = . . . = ti+k−1 < ti+k , we say that the knot ti has multiplicity k. This means that f is a polynomial between [ti−1 , ti ) and [ti = ti+k−1 , ti+k ) and those two pieces connect with C d−k -continuity. The B-splines can be defined in a recursive manner, Bi,d,t (x) = x − ti ti+1+d − x Bi,d−1,t (x) + Bi+1,d−1,t (x), ti+d − ti ti+1+d − ti+1 with ( 1, if ti ≤ x < ti+1 , Bi,0,t (x) = 0, otherwise. It can be shown that if n = d + 1 and t1 = . . . = td+1 < td+2 = . . . = t2d+2 , then the B-splines reduce to the Bernstein polynomials and f is a polynomial in Bézier form. Hence the B-spline theory includes the polynomial Bézier case. B-splines have the following properties: • Locality. Bi,d,t depends only on ti , . . . , ti+d+1 and if x 6∈ [ti , ti+d+1 ) then Bi,d,t (x) = 0. • Positivity. If x ∈ (ti , ti+d+1 ) then Bi,d,t (x) > 0. • Piecewise polynomial. • Smoothness. If z occurs k times among the knots ti , . . . , ti+d+1 then Bi,d,t is C d−k continuous at z. For any x ∈ [td+1 , tn+1 ) the B-splines form a partitionPof unity and with the knot averages n i+d or Greville abscissae t∗i = ti+1 +...+t we have x = i=1 t∗i Bi,d,t (x). d For a B-spline function these properties translate to Pµ • Locality. If x ∈ [tµ , tµ+1 ) then f (t) = i=µ−d ci Bi,d,t (x). • Special point. If ti+1 = . . . = ti+d < ti+d+1 for 1 ≤ i ≤ n then f (ti+1 ) = ci . • Smoothness. If z occurs k times in t then f is C d−k -continuous at z. The control points of a B-spline function are the points (t∗i , ci ), i = 1, . . . , n. A B-spline curve f : [td+1 , tn+1 ) → Rm is given by f (t) = n X ci Bi,d,t (t) i=1 with the control points ci ∈ Rm . As in the Bézier case, the linear interpolant of the control points forms the control polygon. B-spline functions and curves have the convex hull and 12 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION y 0 1 2 3 4 x Figure 2.4: Left: A cubic spline function with its control polygon. The knot vector is illustrated using black circles. Right: A cubic spline curve with its control polygon and the de Boor algorithm illustrated. variation diminishing property. Actually, from the locality of a B-spline function it follows that f (t) with t ∈ [tµ , tµ+1 ) lies in the convex hull of cµ−d , . . . , cµ . The tangential end point interpolation property only holds if the corresponding end knot has multiplicity d + 1. For a B-spline function of degree d over the knot vector t the distance between the coefficient ci and the function value at t∗i can be bounded by |ci − f (t∗i )| ≤ K(ti+d − ti+1 )2 |D2 f |[ti+1 ,ti+d ] , 1 ≤ i ≤ n, where the operator D denotes (one-sided) differentiation (from the right) and the constant K only depends on d. This bound can be extended to the distance between the function and its control polygon Γf , yielding |Γf − f |t∗1 ,t∗m ≤ Qh2 |D2 f |[t1 ,tn+d+1 ] , (2.2) where h = maxi (ti+1 − ti ) and the constant Q only depends on d (see [52]). A similar quadratic bound applies to the distance between a spline curve and its control polygon. Blossoms are defined for polynomials. However, as shown by Ramshaw in [59], if two polynomials of degree d connect in a C k fashion at t0 , then their blossoms agree as long as at least d − k arguments are equal t0 . This means that we can also in the spline case express the control points of a B-spline curve in terms of blossoms, ci = Bi [f ](ti+1 , . . . , ti+d ), as long as the knot vector contains no knot with multiplicity greater than d + 1. Here Bi [f ] is the blossom of one of the polynomial pieces where Bi,d,t is non-zero [59]. Blossoms provide one of many ways to develop de Boor’s algorithm, an efficient and stable method for evaluating B-spline functions that only uses convex combinations similarly to the de Casteljau algorithm for polynomials. Suppose x ∈ [tµ , tµ+1 ), set c0i (x) = ci for i = µ − d, . . . , d and let for r = 1, . . . , d and i = µ − d + r, . . . , µ cri (x) = x − ti ti+d+1−r − x r−1 c + cr−1 . ti+d+1−r − ti i−1 ti+d+1−r − ti i 2.1. FUNCTIONS AND PARAMETRIC CURVES 13 Then f (x) = cdµ (x). This algorithm has the same pyramid like structure as de Casteljau’s and also leads to repeated linear interpolation for B-spline curves. One final topic on B-spline functions we would like to introduce here is knot insertion. Knot insertion means that given a spline f over a knot vector t and a new knot γ ∈ [tµ , tµ+1 ), we want to compute the coefficients of the same spline over the new knot vector τ = t1 , . . . , tµ , γ, tµ+1 , . . . , tn+d+1 . Due to Böhm [10] we know that if f= n X ci Bi,d,t = i=1 n+1 X bi Bi,d,τ i=1 then bi = ci for i = 1, . . . , µ − d and bi = ci−1 for i = µ + 1, . . . , n + 1 and bi = ti+d − γ γ − ti ci−1 + ci , ti+d − ti ti+d − ti for i = µ − d + 1, . . . , µ. Splines is a field with a rich theory and for more information we refer the interested reader to [52, 71, 17, 23]. 2.1.3 Rational functions and curves Polynomials, and with them piecewise polynomials, have the limitation that they can not exactly represent conic sections or circular arcs, although they can approximate them arbitrarily close. Rational polynomial curves on the other hand are able to do just that. A rational function is the quotient of two polynomials r(x) = p(x) q(x) with q 6= 0. Obviously for x where q(x) = 0 the rational is undefined. Such points are called poles. A rational function in Bézier form is the quotient of a weighted polynomial in Bézier form and the weighted sum of the Bernstein basis polynomials, Pn i=0 r(x) = Pn n wi ci Bi,[α,β] (x) i=0 n wi Bi,[α,β] (x) . A standard assumption here is that all weights wi > 0, which results in the denominator being strictly positive and hence r free of poles for all x ∈ [α, β]. For rational Bézier curves the same weights are used for all component functions, yielding Pn i=0 r(t) = Pn n wi ci Bi,[α,β] (t) i=0 n wi Bi,[α,β] (t) . For more information about rational Bézier curves and an introduction to rational B-spline curves, see [23]. 14 2.2 2.2.1 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION Numerical methods Stability Computers have become an invaluable tool in mathematics and engineering as they are able to do a large amount of computations in a relatively short time. However, using computers for solving mathematical and engineering problems brings its own difficulties. The computer is a discrete machine, meaning that every task has to be split up into a finite number of simple operations. Moreover the computer can only work on a finite subset of the real numbers. Both limitations can cause problems for numerical methods (methods using calculations with numbers to compute the result). Integration with the computer provides an example for the first limitation called discretization. Let us assume we have a function f given which can be evaluated in the interval R2 [0, 2] and we want to compute its integral If = 0 f (x)dx. Without any specific knowledge about what type of function we have, it is impossible to provide a method that will always compute the exact value for any function f . Hence we need to approximate the solution by numerical integration. The probably easiest way to do this is to use the mid-point rule If ≈ 2 f (1). The error introduced by this discretization of the problem is called truncation error. The name becomes more obvious when looking at an example using differentiation. Assuming f is C ∞ , it is well known that f 0 (x0 ) ≈ (f (x1 ) − f (x0 ))/(x1 − x0 ), which comes from truncating the infinite Taylor series of f (x) = ∞ X f (i) (x0 ) i=0 i! (x − x0 )i after the first derivative term. The other major source of errors comes from the fact, that there are infinitely many real numbers, whereas the computer can only represent a finite number of them. Hence, whenever the initial data or the result of a computation can not be represented exactly by the computer, the closest number that can be expressed is chosen instead, introducing a rounding error. That this can have important consequences for the result becomes clear when studying the following example. In a computer rational numbers are represented using floating point numbers: Every number starts with the comma sign, followed by a fixed number of digits and then multiplied by the basis to the power of an integer with fixed number of digits. For example, if we allow 3 digits after the comma and 2 digits for the exponent of the basis 10, the exact number 12.345 would become .123 · 1002 in floating point representation. In floating point arithmetic then the computation (.100 · 1005 + .123 · 1002 ) −.100 · 1005 | {z } =.100123·1005 ≈.100·1005 yields zero and not the actual value of .123·1002 . Although this example is a bit extreme, the loss of accuracy in floating-point representation due to subtraction is an important source of numerical problems. Another one is that in an iterative or recursive process, a small initial 2.2. NUMERICAL METHODS 15 rounding error can be amplified considerably, leading to a completely wrong result. For more details and an example see [76]. Being aware of these problems, one important goal for numerical methods is to be stable, meaning that a small change in the initial data leads to a small change in the result (due to the use of floating point numbers such small changes in the initial data will inevitably occur). To check for a stable algorithm one could compare the numeric solution to the exact one for some cases where the exact solution is known. This kind of test is called forward error analysis. However, not only a method can be unstable, a problem in itself can have this property. Such an unstable problem is also called ill-conditioned. An example, taken from [76], is the following linear system, x + 2y = 3 .499x + 1.001y = 1.5 with the solution x = y = 1.0. If, however, the second equation is replaced by .5x + 1.001y = 1.5, the solution jumps to x = 3, y = 0. If a given problem is ill-conditioned, a forward error analysis can suggest an unstable method, even though the method actually is stable. A backward error analysis takes the possibility of an unstable problem into account. It treats the numerical solution as the exact solution of a different, slightly perturbed problem. The method is stable when the perturbation is sufficiently small [76]. For more information on stability, truncation and rounding errors see [76, 83, 34, 42]. 2.2.2 Convergence Many numerical methods use an iterative or recursive process to compute their result, generating {xi }∞ i=0 which can be analyzed. For example we know that cos(x) = P∞ a sequence 2 i i=0 (−x ) /(2i)!. Hence we could compute cos(x) by defining the sequence x0 = 1 and xi = xi−1 + (−x2 )i /(2i)! for i > 0. In this example we know that the resulting sequence converges to cos(x). In a general method, however, one needs to examine whether the generated sequence converges or not. We say that a sequence converges to its limit x∗ in the norm k · k if for any > 0 we can find an index N such that kxi − x∗ k < for all i > N [12]. We write limi→∞ xi = x∗ . Moreover a sequence is a Cauchy sequence [12] or has the Cauchy property [15] if for all > 0 there exists an index N such that for all i, j > N we have kxi − xj k < . Although convergence is an important property, it is often the speed of the convergence that determines the practicality of a method [34]. To measure this speed we use the order of convergence or convergence rate. We say the sequence {xi }∞ i=0 converges with order q ≥ 1 to x∗ if kxi+1 − x∗ k ≤ Kkxi − x∗ kq (2.3) 16 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION for some positive constant K > 0. If q = 1 we need 0 < K < 1. This is also called Q-order of convergence [58]. The condition (2.3) can be relaxed slightly by using a positive sequence i where kxi − x∗ k ≤ i lim and i→∞ i+1 = K, qi see [34]. Another way of defining convergence rate is given by the R-order of convergence ∗ [58]. We say the sequence {xi }∞ i=0 converges with R-order q to x if there exist constants 0 < K < ∞ and h ∈ (0, 1) such that i kxi − x∗ k ≤ Khq . Equation (2.2) is an example for such a R-order of convergence, showing that the control polygon of a spline function converges quadratically (with order 2) to the function. R-order of convergence is also sometimes specified using the ’big O’ notation [81, 46, 14]. We say e(x) = O γ(x) as x goes to x∗ with some function γ(x) when there exist constants K and δ such that |e(x)| ≤ K|γ(x)| for all x where |x − x∗ | < δ. In Chapters 5 and 6 we will use variants of (2.3) to show that the described methods have a quadratic convergence rate. An actual computation in a computer can not go on for infinity. Thus an iterative process like the computation of cos(x) above needs to be stopped at some time. As one can not calculate the actual distance from the limit, an often chosen stopping rule or stopping criterion is to stop when kxi+1 − xi k ≤ δ for some given tolerance δ. For more information on order of convergence see [34, 58] and on stopping criteria see [34, 76]. 2.3 Root finding The problem of finding the intersections of two parametric curves is related to the problem of finding the roots or zeros of a real function f : R → R. The latter means that we want to find all x ∈ R where f (x) = 0. This is a classical problem and several methods for general real functions with certain continuity properties exist. Probably the best known one is Newton’s method which is based on linear approximation and creates a sequence {xi }∞ i=0 where the start value x0 needs to be given. The value xi+1 of the next iteration is chosen to be the root of the tangent at xi , yielding xi+1 = xi − f (xi )/f 0 (xi ). It can be shown that if x0 is sufficiently close to the zero ζ, then the sequence converges to it. Moreover, if the zero is simple f 0 (ζ) 6= 0 , then it does so with a quadratic convergence 2.3. ROOT FINDING 17 rate [42]. As indicated by the first property, Newton’s method has some practical difficulties. If f 0 (xi ) = 0 for some xi , the method is undefined. Also, if the initial value x0 is not good enough, the method might diverge. This leads to the task of how to find a good starting value, which is tricky in itself. For more on finding roots of general real functions, see your favourite numerical analysis book, e.g. [42, 34]. Root finding algorithms for piecewise polynomials in B-spline form can take advantage of the properties of this representation. The easiest way is to use the convex hull property and apply simple repeated subdivision of the curve in the middle. The parts where the whole convex hull lies above or below the x-axis can be discarded. Once the interval over which the current part of the curve is defined is small enough, one stops and assumes a root at the center of the interval. This method will yield all zeros of a spline and it is guaranteed to converge. The convergence rate however will only be linear, as the maximal possible error of the found root is halved in every subdivision step. It is important to not confuse this linear convergence rate of the root finding algorithm with the quadratic convergence of the control polygon to the spline function. Using a more clever subdivision algorithm with two specifically chosen subdivisions in each step can lead to a higher convergence rate, examples for polynomials in Bézier form are Bézier clipping (see Chapter 5) with a quadratic and quadratic clipping (see [4]) with a cubic convergence rate to simple roots. A different approach for computing a zero of a spline curve is provided in [55]. The idea is to use the control polygon of the spline as an approximation, meaning that the first zero of the control polygon is taken as an approximation to the first zero of the function. This value is then inserted into the knot vector and the new control polygon computed, yielding an iterative method. In [55] it is shown that this actually yields a Newton like method with a quadratic convergence rate that does not need any starting value. The method takes advantage of the variation diminishing property of a B-spline function and is able to convert the quadratic convergence of the control polygon to the function into a quadratic convergent root finding algorithm. Figure 2.5 shows an example of how false zeros disappear and the zero of the control polygon converges to the zero of the function. Root finding can also be applied to a system of multivariate functions. Let f : Rn → Rn , then we want to find all x ∈ Rn where f (x) = 0. Newton’s method in this setting is given by xi+1 = xi − J −1 (xi )f (xi ) or J(xi )(xi − xi+1 ) = f (xi ), where J is the n × n Jacobi matrix Jij = ∂fi /∂xj [42] and has the same practical problems as in the univariate case. Until now we have discussed methods that by an iterative process find an approximation to the root of a function. However, if the function has a local extremum with a value close to zero or several roots close to each other, these approaches can report false zeros or find only one of several. Similarly, a zero where the function is only touching the x-axis, but not crossing it, might be missed due to numerical errors. Figure 2.6 shows some examples of difficult zeros. A different type of problem, not further discussed in this thesis, is therefore the question of whether and when one can be sure that there is no root or exactly k roots in a certain interval. 18 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION y y 2 2 1 1 0 1 2 3 4x 0 y y 2 2 1 1 0 1 2 3 4x 0 y y 2 2 1 1 0 1 2 3 4x 0 1 2 3 4x 1 2 3 4x 1 2 3 4x Figure 2.5: Root finding by using the zero of the control polygon as an approximation to the zero of the function, as described in [55]. One can clearly observe the false zero disappearing and the root of the control polygon converging to the one of the function. The black circles illustrate the current knot vector. 2.4. CURVE INTERSECTION IN THE PLANE y 10−9 0 19 y x y 0 −10−9 0 x 0 x 10−9 Figure 2.6: Examples for roots where the presented iterative algorithms may give false results. 2.4 Curve intersection in the plane As mentioned before, finding the intersections of two planar parametric curves f and g is related to root finding, in fact can be solved by root finding of a two-dimensional bivariate function d(s, t) = f (s) − g(t). However, as it is a special case, algorithms tailored to the planar intersection problem can prove more efficient. Moreover, we would like to avoid the practical problems that for example the two-dimensional Newton’s method possesses. As root finding for piecewise polynomials in B-spline form can be based on the properties of the representation, so can intersection finding methods. Hence similar ideas as for root finding are used to solve the intersection problem. Examples are repeated subdivision in the middle or Bézier clipping. Again, one needs to take care of distinguishing the quadratic convergence of the control polygons to the curves and the convergence rate of the intersection finding algorithm. For an overview over some of the currently used methods for planar curve intersection see 6.1. Note that also iterative algorithms for curve intersections might give false intersections or miss some, as in the root finding case. For an example that tries to solve this problem, see [84]. 20 CHAPTER 2. BACKGROUND FOR CURVE INTERSECTION 3 Interpolation This chapter introduces the interpolation problem in its different settings, starting with the univariate case. Multivariate interpolation is discussed for a finite as well as an infinite or transfinite number of points, where in the latter case the data is specified along the boundary of some domain. In recent years, new methods based on barycentric coordinates have been developed for this kind of transfinite interpolation. We introduce and discuss some of these barycentric coordinates and their corresponding transfinite counterparts with a special emphasis on the mean value coordinates and interpolant. Interpolation is not only interesting as a means of computing an interpolating function. It is a very useful tool in the development of other methods, with the prime examples of numerical integration and numerical differentiation. The main idea in those is to determine some good points on the domain, generate a polynomial that interpolates the given function at the chosen points and then integrate or differentiate this polynomial exactly. This yields a formula that combines some well chosen function values in a clever way to compute an approximation of the integral or derivative. For classical examples in the univariate case see your favourite numerical analysis book, e.g. [42]. Instead of interpolating each data point, an approximating function tries to capture the general shape of the data, often by minimizing some error. A popular example here would be least squares approximation. The advantage is that the resulting function can be less complicated, e.g. one can use a polynomial with relatively low degree to approximate large amounts of data. Whether interpolation or approximation is the better choice, depends on the given task at hand. 3.1 Univariate Interpolation with real functions is a fundamental task in numerical analysis. In its simplest setting, univariate Lagrange interpolation, we have given a set of distinct real points x0 < 21 22 CHAPTER 3. INTERPOLATION x1 < . . . < xn ∈ R and values f0 , . . . , fn ∈ R and we want to find a function g : R → R that interpolates the given data, i.e. g(xi ) = fi , i = 0, . . . , n. (3.1) It is well known that in the given setting there exists a uniquely defined polynomial of degree at most n which fulfills the interpolation conditions (3.1). The easiest way to specify the interpolating polynomial is perhaps by using the Lagrange basis polynomials (2.1) defined over the data points xi , n X g(x) = fi Li (x). i=0 As mentioned before, the numerical problems associated with this representation can be reduced when writing it in its barycentric form, see Chapter 9. Another common way to express the interpolating polynomial is the Newton form g(x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + . . . + f [x0 , . . . , xn ](x − x0 ) · · · (x − xn−1 ), (3.2) using divided differences which are defined recursively by f [xi ] = fi , f [x0 , . . . , xi ] = f [x1 , . . . , xi ] − f [x0 , . . . , xi−1 ] . xi − x0 One can also compute the Bézier form with α = x0 and β = xn by inserting it into (3.1) and solving the resulting non-singular linear system for the coefficients. If the given data comes from a C n+1 -continuous function f , we can bound the error of the interpolating polynomial g. Let α and β be such that α ≤ x0 and β ≥ xn . Then for any x ∈ [α, β] we have (n+1) n (t) Y g(x) − f (x) ≤ maxt∈[α,β] f (x − xj ). (3.3) (n + 1)! j=0 The relation between the error and the interval [α, β] can be made clearer by using the ’big O’ notation introduced in 2.2.2. With λ = β − α this means that g(x) − f (x) = O(λn+1 ) as λ goes to zero. We say that g has approximation order n + 1 [81]. When interpolating data from a given function f , one can reduce the interval λ over which one interpolates to reduce the error. But instead of letting λ go to zero, one could also increase the number of data points to interpolate and by this increase the degree of the polynomial. The easiest way here would be to use equidistant points, meaning xi = α + ih and h = (β − α)/n. The resulting interpolating polynomial however might diverge from f instead of converging to it as n → ∞ and h → 0, as illustrated in Figure 3.1 with the popular example of Runge’s function f (x) = 1/(1 + x2 ). Instead it is better to use points which are more dense at the boundaries of the interval. A good choice is to interpolate at the Chebyshev points 1 2i + 1 π xi = (β − α) cos +α+β 2 n+1 2 3.1. UNIVARIATE 23 2 2 1.5 1.5 1 1 0.5 0.5 0 0 −0.5 −5 0 5 −0.5 −5 0 5 Figure 3.1: Polynomial interpolation of Runge’s function f (x) = 1/(1 + x2 ) with n = 10 on the left and n = 20 on the right. The red interpolant uses equidistant points and the green one uses Chebyshev points. which come from scaling the zeros of the Chebyshev polynomial of the first kind Tn+1 (x) = 2−n cos[(n+1) cos−1 (x)] defined over [−1, 1] [42]. In fact, p will converge to f using these points as n → ∞ and h → 0 for all f which are absolutely continuous on [α, β] [34, 81]. The freedom to choose the interpolation points is not always given, and sometimes equidistant data points are what is needed. In such cases a different interpolation method than polynomial interpolation may be preferable. This is also the case if one wants to avoid high degrees in the interpolant. One way to solve these problems is to use piecewise polynomial interpolants. Using the B-spline representation with a knot vector {ti }n+d+2 which i=1 satisfies ti+d+1 > ti for all i, the interpolation conditions (3.1) yield a linear system, which is non-singular if and only if the diagonal elements Bi,d,t (xi−1 ), i = 1, . . . , n + 1 are positive [52]. One very common method is cubic spline interpolation with the knot vector t1 = t2 = t3 = t4 = x0 , ti = xi−4 , i = 5, . . . , n + 3 and tn+4 = tn+5 = tn+6 = tn+7 = xn . In this setting we have two degrees of freedom which need to be dealt with. There are several ways to do that, common ones are specifying the end point derivatives as additional interpolation conditions or removing the knots t5 = x1 and tn+3 = xn−1 from the knot vector. Both methods lead to non-singular linear systems and hence have a Runique solution x [52]. The first approach yields a cubic spline function which minimizes x0n (g 00 (x))2 dx for all functions that are C 2 and interpolate all the data [52, 17]. If the data comes from a C 4 -continuous function f , then this cubic spline has the error O([maxi (xi+1 − xi )]4 ) [17]. For equidistant points this gives O(h4 ) with h = (xn − x0 )/n, we say that the cubic spline interpolation with end point derivatives has approximation order four. Another possibility to interpolate the given data is to use rational functions. Here one needs to be careful with the location of poles or try and avoid them completely. This is discussed in more detail in Chapter 9. Interpolation conditions do not need to be limited to function values, one can as well 24 CHAPTER 3. INTERPOLATION specify derivative data to be interpolated, yielding Hermite interpolation. There are two ways of specifying the Hermite conditions. One is to have a set of distinct points yi , i = 0, . . . , n with multiplicities κi ≥ 1. Then the interpolant g must satisfy g (j) (yi ) = f (j) (yi ), i = 0, . . . , n, j = 0, . . . , κi − 1, where f (j) (yi ) is the given data to interpolate. The other is to have N = x0 , . . . , xN which are allowed to coalesce. The convention is then that if (3.4a) Pn i=0 xi−1 < xi = . . . = xi+κi −1 < xi+κi , κi points (3.4b) g(x) interpolates the data f (j) (xi ) for j = 0, . . . , κi − 1. Similar to the Lagrange case, there exists a unique interpolating polynomial g(x) = n κX i −1 X f (j) (yi )Hi,j (x) i=0 j=0 with appropriate basis polynomials Hi,j , which again can be written in a stable barycentric form, see Chapter 9. Using (3.4b), the unique interpolating polynomial can also be given in Newton form (3.2) by applying the property 1 f [ λ, λ, . . . , λ ] = f (k) (λ) | {z } k! (k+1)−times of divided differences to avoid divisions by zero [34, 42]. This in addition also means that if the data comes from a C N +1 -continuous function f , then the error bound (3.3) still remains valid (with N instead of n). There are also ways to compute an interpolating piecewise polynomial or rational function that satisfies the Hermite conditions (3.4). For more information and examples on the latter, see Chapter 9. 3.2 Multivariate Univariate interpolation is a relatively simple and well studied, classical problem. Its extension to the multivariate case yields a more difficult task. In the Lagrange setting, we have given points in Rm with corresponding values and we want to find a function g : Rm → R that interpolates the data. Let us first consider the special case where the data points lie on a rectilinear grid. Here each point is defined by the intersection of m perpendicular hyperplanes, where each hyperplane is also perpendicular to a standard basis vector. Figure 3.2 shows an example of a two-dimensional rectilinear grid. For the k-th standard basis vector there are nk + 1 hyperplanes perpendicular to it with their positions defined the values Qby m xk,0 , . . . , xk,nk with nk ≥ 0 and xk,i ∈ R, i = 0, . . . , nk . This yields k=1 (nk + 1) data or grid points xi1 ,...,im = (x1,i1 , . . . , xm,im ) where ik = 0, . . . , nk and k = 1, . . . , m. 3.2. MULTIVARIATE 25 x2,4 x2,3 x2,2 x3,2 x2,1 x2,0 x1,0 x1,1 x1,2 x1,3 x1,4 x1,5 Figure 3.2: A two-dimensional rectilinear grid. For such a grid tensor-product functions can be used to extend the univariate theory. Let x ∈ Rm with x = (x1 , . . . , xm ). One can show that there exists a unique polynomial which for each coordinate xk has a degree of at most nk . It can be represented using the Lagrange polynomials Lk,ik (2.1) for each coordinate xk and the resulting polynomial is then g(x) = n1 X i1 =0 ... nm X fi1 ,...,im L1,i1 (x1 ) · · · Lm,im (xm ). im =0 It is also possible to obtain a Newton form of the multivariate interpolating polynomial by using divided differences for several variables as well as a bound on the error if the data comes from a smooth enough function, see [42]. A piecewise polynomial interpolant for gridded data can be computed using a tensor product B-spline function, see [52]. The Lagrange interpolation problem in several variables becomes much more complicated if we allow the distinct data points xi ∈ Rm , i = 0, . . . , n to be arbitrarily distributed. This case is also called scattered data interpolation and has been studied for quite some time. There is polynomial and piecewise polynomial interpolation, methods using radial basis functions (functions whose value depends only on the distance to some center point) and methods trying to minimize some properties, to name just a few categories. Some of these methods are global, meaning that the value of the interpolant at a point x is determined by all data points, and others are local, where the value depends only on a subset of data points in some neighbourhood of x. A good introductory overview over different methods for m = 2 is given in [70], some of which can be easily extended to higher dimensions. In [31] different methods for scattered data interpolation in two dimensions are compared with respect to certain properties. A survey article covering scattered data interpolation for higher dimensions (m > 2) is [2]. Polynomial interpolation in this setting is quite complex. Take for example two points in a plane with different values. There is no constant bivariate polynomial of degree zero interpolating both data points, whereas there are infinitely many of degree one, as the line described by the data points can be contained in infinitely many planes. Another example is given by three points on a line. Although now the degrees of freedom of a bivariate linear polynomial match the number of data points, there still is no unique interpolating polyno- 26 CHAPTER 3. INTERPOLATION mial. There has been a lot of research into multivariate polynomial interpolation, trying for example to answer the questions when there exists a unique interpolating polynomial or how to choose the data points such that it does. For an overview see [33, 32, 65]. For the non-polynomial methods, we mention two examples. The first is interpolation with thin-plate splines [21, 74]. Thin-plate splines are a multivariate extension of cubic spline interpolation. The latter minimizes the energy defined by the squared second derivative (see 3.1) and thin-plate splines minimize 2 Z X m X m ∂2g . ∂xi ∂xj i=1 j=1 Rm Our other example was introduced in [73] by Shepard for m = 2 but can be generalized to arbitrary dimensions (see e.g. [37]). It is called Shepard’s method and uses inverse-distance weighting. The interpolant is given by ( P Pn n µ µ x 6= xj for all j i=0 wi (x)fi i=0 wi (x) g(x) = (3.5) fj x = xj for some j with wi (x) = 1/kx − xi k for some µ > 0 and some norm k · k. Although it interpolates by definition, it can be reformulated into the form " n !, n n !# n X Y XY µ µ g(x) = kx − xj k kx − xj k fi i=0 j=0 j6=i k=0 j=0 j6=k which is more numerically stable and clearly shows the interpolation property and that the function value is a convex combination of the given data values. Shepard’s method can be changed into a local method by using wi (x) in (3.5) which are equal to 1/kx − xi k close to xi , zero far away and which have a smooth transition in between [73, 70]. There are also other extensions or modifications of it, e.g. [61]. In multivariate Hermite interpolation we have in addition to the function values also given partial derivatives or directional derivatives up to some order at some or all data points. Hermite multivariate polynomial interpolation is thus also a difficult topic with still open questions, for a survey see [51] and for an example [64]. For examples on nonpolynomial multivariate Hermite interpolation see [3, 30]. In multivariate interpolation the given data does not need to be a finite set of data points. Instead one can also specify data along some lines or functions. More generally, it is possible to have an infinite set or transfinite number of data points, thus this setting is called transfinite interpolation [24]. For a network of four boundary curves in R3 , Coons proposed a formula to fit a patch between them [24, 16]. The idea was picked up, extended and analysed by several other authors like Gordon and Gregory [24, 63, 35]. For an overview of such transfinite surface interpolation in R3 , see [63]. The progress in surface interpolation 3.3. BARYCENTRIC TRANSFINITE INTERPOLATION 27 also provided new ideas for the development of new transfinite interpolation schemes for multivariate functions [35]. An early approach where the domain of interest is a hyperrectangular Cartesian product region is given in [35]. In the bivariate setting, [36] provides a method for interpolating the values of a function given on the boundary of a convex domain. Recent transfinite interpolation schemes are derived from transfinite versions of barycentric coordinates [6], for more information on this topic see 3.3. Transfinite interpolation methods can often be associated with one of the following three related approaches [63]: Optimality conditions, partial differential equations and boundary sampling. In the first, one tries to find a function that minimizes some functional or energy. Methods of the second type are based on solving a partial differential equation with the interpolation conditions as boundary conditions, which yields an interpolating function. Finally there are methods which compute the value of the interpolant at a point by using a boundary integral or by sampling the boundary at discrete points. Here the interpolation data is given at the boundary of some domain. Some of the recent transfinite interpolation approaches like mean-value interpolation (see below) belong to this type of methods. 3.3 3.3.1 From barycentric coordinates to transfinite interpolation Barycentric coordinates The position of a point is often specified using Cartesian coordinates, describing it by an origin and a weighted sum of vectors. In modern computer graphics and computational geometry however, the need for expressing a point by a weighted average of a given set of points arises P in several situations. Let xi ∈ Rm , i = 1, . . . , n be the given points and let n wi ∈ R with i=1 wi 6= 0 be given weights. Then the weighted average of the xi uniquely determines a point x ∈ Rm , Pn wi xi . x(w1 , . . . , wn ) = Pi=1 n i=1 wi The wi are the homogeneous barycentric coordinates of x. As scaled coordinates yield the same point x, we can define the normalized barycentric coordinates or just barycentric coordinates wi λi = Pn , i = 1, . . . , n. j=1 wj Obviously, if the barycentric coordinates are given, they trivially and uniquely determine the corresponding point. However, the more difficult task is to determine a set of barycentric coordinates λi (x) for a given point x ∈ Rm . We call the λi (x) barycentric coordinates of x if they form a partition of unity n X i=1 λi (x) = 1, (3.6a) 28 CHAPTER 3. INTERPOLATION x3 x3 x x x1 x3 x2 x x1 x2 x1 x2 Figure 3.3: Illustration of the barycentric coordinate λ1 (x) with respect to the triangle x1 , x2 , x3 for different x. enable us to express x as an affine combination n X λi (x)xi = x, (3.6b) i=1 and have the Lagrange property λi (xj ) = δij , (3.6c) where δij is the Kronecker delta [41, 49]. Moreover it would be nice if the coordinates are defined on as large a domain as possible, are non-negative and depend smoothly on x [49]. Barycentric coordinates were first introduced by Möbius in [54]. For n = 2 and x1 , x2 ∈ R with x1 < x2 , each point x ∈ R has the unique barycentric coordinates λ1 (x) = x2 − x , x2 − x1 λ2 (x) = x − x1 . x2 − x1 These coordinates are defined for any x ∈ R, are linear and hence infinitely smooth with respect to x and positive for all x ∈ (x1 , x2 ). In R2 we can use a similar idea if n = 3 and the points x1 , x2 and x3 are the vertices of a non-degenerated triangle. Then the unique barycentric coordinates for any x ∈ R2 are λ1 (x) = area(x, x2 , x3 ) , area(x1 , x2 , x3 ) λ2 (x) = area(x1 , x, x3 ) , area(x1 , x2 , x3 ) λ3 (x) = area(x1 , x2 , x) , area(x1 , x2 , x3 ) where area(x, x2 , x3 ) is the signed area of the triangle defined by x, x2 and x3 . Signed here means that the area is positive if the vertices are ordered counter-clockwise and negative otherwise. Again these coordinates are smooth with respect to x and positive for any point x inside the triangle defined by x1 , x2 , x3 . Figure 3.3 shows some examples for these coordinates. We have seen that in specific cases, the barycentric coordinates are unique. In fact, they are unique as long as the points xi are the vertices of a non-degenerate simplex [41]. A simplex or n-simplex is the n dimensional analogue of a triangle. It is the convex hull of n + 1 points x1 , . . . , xn+1 ∈ Rn for which the vectors x2 − x1 , . . . , xn+1 − x1 are linearly independent [81, 82]. 3.3. BARYCENTRIC TRANSFINITE INTERPOLATION 29 xi+1 x xi+1 Γ αi1 x αi−1 xi xi−1 xi xi−1 Figure 3.4: Star shaped polygon with angles αi and the boundary Γ of a disc around x illustrated. We will focus our remaining discussion on points in R2 . For n > 3 we can consider the points xi , i = 1, . . . , n as the vertices of a polygon. It is easy to observe that in this setting there are no unique coordinates. An easy solution for any point x inside the polygon is to take a triangle formed by three vertices that contains x and use the barycentric coordinates with respect to this triangle. The resulting coordinates fulfil conditions (3.6), but depend on the choice of triangle and do not in general depend smoothly on x [25]. Thus better coordinates are needed. For convex polygons, Wachspress in [77] found the coordinates wi (x) λi (x) = Pn , i=1 wi (x) wi (x) = area(xi−1 , xi , xi+1 ) , area(xi−1 , xi , x)area(x, xi , xi+1 ) (3.7) which are infinitely smooth (C ∞ ) and affine invariant [27]. Note that all indices here and later are considered cyclic, so xn+1 = x1 . Unfortunately, for x outside the polygon, the coordinates (3.7) might be undefined due to a division by zero. Wachspress coordinates were analyzed and extended by several authors, e.g. [53, 78, 79] and also different barycentric coordinates for convex polygons were discovered. In [25] Floater introduced the mean value coordinates for star shaped polygons, motivated by attempting to approximate harmonic functions by piecewise linear ones. One well known property for a harmonic function f : Ω ⊆ R2 → R is that it satisfies the mean value theorem Z 1 f (x) = f (y)dy, 2πr Γ where Γ is the boundary of a disc with center x and radius r > 0 small enough, such that the disc is completely contained in Ω. We now let x be an arbitrary, but fixed point inside the star shaped polygon and let F (y) be a piecewise linear function that is linear in each triangle x, xi , xi+1 , i = 1, . . . , n. We set F (xi ) = f (xi ), i = 1, . . . , n and want to choose the value of F at y = x such that F fulfills the mean value theorem at this point, 1 F (x) = 2πr n Z 1 X F (y)dy = F (y)dy, 2πr i=1 Γi Γ Z 30 CHAPTER 3. INTERPOLATION where Γi is the part of Γ in the triangle x, xi , xi+1 and r > 0 small enough such that the whole disc lies inside the polygon as illustrated in Figure 3.4. F is linear in each triangle x, xi , xi+1 , hence the integral over each Γi can be calculated exactly, leading to F (x) = n X λi (x)f (xi ) (3.8) i=1 being independent of r with wi (x) , λi (x) = Pn j=1 wj (x) wi (x) = tan(αi−1 /2) + tan(αi /2) . kxi − xk2 (3.9) It can be shown that the λi in (3.9) are barycentric coordinates, positive for any x inside the polygon and depend smoothly on x. Mean value coordinates are well defined for any x in R2 that does not lie on the polygon and also for arbitrary planar polygons [40]. However, if the polygon is not star shaped, the coordinates might be negative also for x inside of it. Three dimensional extensions of the coordinates are introduced in [28, 44]. Wachspress and mean value coordinates both depend on the position of three polygon vertices. In [27] barycentric coordinates over convex polygons are analyzed in general, leading to the observation that any barycentric coordinate extends continuously to identical values on the polygon. The paper also introduces a three-point coordinate family of barycentric coordinates where λi depends on xi−1 , xi , xi+1 and of which Wachspress and mean value coordinates are members. In addition a family of five-point coordinates is discussed, where λi depends on xi−2 , . . . , xi+2 . For an arbitrary planar polygon, mean value coordinates are defined but not necessarily positive inside the polygon as mentioned above. In [27] it is noted that Harmonic coordinates as the solutions to the Laplace equations 4λi (x) = 0 will yield smooth and positive barycentric coordinates. These coordinates are realized in [43] and the properties proved for arbitrary polygons. This paper also extends the coordinates to three dimensions. However, to compute the coordinates one needs to solve the above equations. In [41] barycentric coordinates for arbitrary polygons are introduced which are positive for all x inside the polygon and can be evaluated efficiently. The standard use of the barycentric coordinates discussed so far is Lagrange interpolation of function values given at the vertices as in (3.8). However, some applications are also interested in specifying and interpolating derivative data at the vertices. In [49] a way of modifying the barycentric coordinates discussed above to so called higher order barycentric coordinates is suggested, which allow for first order Hermite interpolation. Barycentric coordinates have become a quite popular topic of research in the last 15 years. For more references see the papers [25, 27, 40, 41] as well as the reference list at [5] maintained by Hormann, which contains also references for the extensions to transfinite interpolation. 3.3.2 Transfinite Lagrange interpolation Let us consider transfinite interpolation over a given planar, open domain Ω ⊂ R2 with the boundary ∂Ω. We want to interpolate the function values of f : ∂Ω → R with a smooth 3.3. BARYCENTRIC TRANSFINITE INTERPOLATION 31 p3 (x, v) p2 (x, v) p(x, v) v Γ x v p1 (x, v) x Ω ∂Ω ∂Ω Ω Figure 3.5: Notation for transfinite mean value interpolation on a convex and a non-convex domain. function over Ω. One approach is to sample the boundary with a set of points and approximate it using a polygon. Then one can use some barycentric coordinates to interpolate the data at the points. An explicit formula for transfinite interpolation can therefore be achieved by considering the limit, when the polygon converges to the boundary and the number of points goes to infinity. Another approach is to use the same ideas as for the polygon for the continuous boundary and in that way derive the formulas. A continuous version for mean value coordinates was first introduced in [44] and it was analyzed and its interpolation property proved in [22, 13]. Let Ω be a convex, open domain and x ∈ Ω. Moreover let v be a unit vector, S be the unit circle and let p(x, v) be the intersection between the boundary ∂Ω and the ray emitting from x into the direction v as illustrated in Figure 3.5. Then with v ∈ S and 0 ≤ r ≤ ρ(x, v) = kp(x, v) − xk2 we introduce the radial linear function F (x + rv) = r ρ(x, v) − r F (x) + f (p(x, v)). ρ(x, v) ρ(x, v) The value F (x) we choose as for mean value coordinates such that F fulfills the mean value theorem at x, Z 1 F (x) = F (y)dy 2πr Γ and set the value of the transfinite interpolant g to the value of F at x, yielding Z Z f (p(x, v)) 1 g(x) = F (x) = dv φ(x), φ(x) = dv. ρ(x, v) ρ(x, v) S S (3.10) In [13] it is shown that (3.10) also holds for a convex domain Ω ⊂ Rm in any dimension with S being the corresponding unit sphere. For non-convex domains we order all intersections between the boundary and the ray from x in direction v, yielding pj (x, v), j = 1, . . . , µ(x, v) with ρ1 (x, v) < ρ2 (x, v) < . . . < ρµ(x,v) (x, v). Here the number of 32 CHAPTER 3. INTERPOLATION intersections µ(x, v) is assumed to be finite for all x ∈ Ω and all v ∈ S. The mean value interpolant then becomes Z g(x) = S µ(x,v) X (−1)j−1 f (pj (x, v)) dv φ(x), ρj (x, v) j=1 Z φ(x) = S µ(x,v) X (−1)j−1 dv ρj (x, v) j=1 (3.11) and does interpolate the data as shown in [13]. This paper also provides a boundary integral formula for (3.11) in the case a parametric representation of the boundary is available. In [66] a transfinite interpolation scheme is developed by taking the transfinite version of Shepard’s method (3.5), but integrating over a so called polar dual of the boundary of the domain. The creation of this dual contains an arbitrary non-negative scalar function. Schaefer et al. show that for a specific choice of this function the interpolation scheme is identical to mean value interpolation and for a different one it is equal to transfinite Wachspress interpolation. Moreover they show, that the scheme is equivalent to the family of five point coordinates presented in [27] for convex polygons, which implies that the scheme is the transfinite extension of this family of barycentric coordinates for convex domains. The paper [6] also discusses constructions of transfinite interpolation based on barycentric coordinates. In addition it compares these methods to PDE-based schemes and pays attention to the early one from Gordon and Wixom [36] as well as other transfinite interpolation approaches. 3.3.3 Transfinite Hermite interpolation As for scattered data, transfinite Lagrange interpolation of a given function is not sufficient in some applications, they need the derivative data to be interpolated too. In the papers [22, 13] mean value interpolation was extended to a Hermite interpolation scheme for first order derivative data. The idea is to let the interpolant g̃(x) : Rm → R be the sum g̃(x) = g(x) + ψ(x)ĝ(x), ψ(x) = 1/φ(x) where g(x) is the mean value interpolant and φ(x) is the same as in (3.10). From the observation that ψ(x) converges to zero as x goes to the boundary and ψ(x) 6= 0 for any x ∈ Ω it follows that the function ĝ(x) can be chosen such that the Hermite interpolation conditions are fulfilled. This is achieved by letting ĝ(x) also be a mean value Lagrange interpolant, but to the data ∂f ∂g ∂ψ (y) − (y) (y), y ∈ ∂Ω, ĝ(y) = ∂n ∂n ∂n where ∂ψ/∂n denotes the directional derivative of ψ along n and Z ∂ψ 1 ∂g 1 (y) = , (y) = w(y, t) f (s(t)) − f (y) dt. ∂n Vm−1 ∂n Vm−1 D 3.3. BARYCENTRIC TRANSFINITE INTERPOLATION 33 Here s : D ⊂ Rm−1 → ∂Ω is a parametrization of the boundary, Vm−1 is the volume of the unit sphere in Rm−1 , (s(t) − x) × s⊥ (t) w(x, t) = , ks(t) − xkm+1 2 and s⊥ (t) = det(D1 s(t), . . . , Dm−1 s(t)) is normal to the tangent space at s(t) with e1 w11 · · · w1m−1 e2 w21 · · · wm−1 2 det(w1 , . . . , wm−1 ) = . . . . , 0, 1, 0, . . . , 0)T , .. .. , ei = (0, | {z } | {z } .. . . i−1 m−i em w1 · · · wm−1 m m and Di s(t) being the partial derivative of s with respect to ti . The vector determinant in R2 is the rotation through an angle of −π/2, det(a) = (a2 , −a1 ), and in R3 it is the cross product det(a, b) = a × b [13]. Here the convention that s⊥ points outwards of the domain is used. 34 CHAPTER 3. INTERPOLATION 4 Overview of papers Bézier clipping is quadratically convergent Bézier clipping finds the intersections of two Bézier curves by repeatedly applying two subdivision steps alternately to each curve. These subdivision steps are chosen such that one can guarantee that the curves do not intersect in the parameter intervals which are clipped away. To locate the parameter values where the cut is applied, Bézier clipping uses the convex hull property of Bézier curves in a clever way. This ensures that the quadratic convergence of the control polygons to the curves is translated into a quadratic convergent, intersection finding algorithm. This quadratic convergence is proved for polynomial curves in Chapter 5. In the original paper [69] polynomial and rational Bézier curves were discussed. However, the analyzed rational method contained a flaw which could lead to undetected intersections. Hence Chapter 5 contains only the polynomial case. This paper was actually written after the spline intersection paper in Chapter 6. During the work on that paper it came to our knowledge that although the quadratic convergence of Bézier clipping seemed to be commonly accepted, there existed no formal proof of it. Computing intersections of planar spline curves The recent paper [55] uses a zero of the control polygon of a spline function as an approximation to a root of the function, yielding a root finding algorithm with favourable properties, see also Section 2.3. In this paper we use and analyse a similar idea for the problem of computing an intersection of two spline curves. Here an intersection of the two control polygons is used as an approximation of an intersection of the two curves. In contrast to the root finding case, two curves can have an intersection even if the control polygons do not, which enforces a preprocessing step which ensures that the curves will intersect close to a transversal intersection (an intersection where the curves have linear independent first 35 36 CHAPTER 4. OVERVIEW OF PAPERS derivatives). The approach leads to a quadratically convergent, Newton-like method without the need for a starting value. Pointwise radial minimization Mean value interpolation can be derived by using a radial linear function and applying the mean value theorem, see Section 3.3. The paper in Chapter 7 shows that mean value interpolation can also be interpreted as the pointwise minimization of a radial energy function. This approach easily generalizes to Hermite boundary data of any order. Here the energy term is determined by integrating over derivatives of polynomials with odd degree. Chapter 7 analyzes this pointwise radial minimization with respect to existence, uniqueness and cubic precision for first order derivative data. The corresponding analysis for derivative data of general order is contained in Chapter 8. Unfortunately we have not been able to formally prove the interpolation properties of the resulting function. However, numerical experiments strongly suggest interpolation for domains in R2 and R3 . Rational Hermite interpolation without poles The lack of a proof for interpolation of the pointwise radial minimization method motivates a study in its simplest setting, the univariate case with first order boundary conditions. As the method assumes the data to be given at the boundary of a domain, Chapter 8 covers only interpolation with data given at an even number of points. We extend this to any number of points and derive an explicit form for the resulting rational interpolant. This form can be considered barycentric like. Univariate barycentric interpolation both for polynomials and rationals has been studied over the last 25 years, examining the favourable properties of this form. In Chapter 9 we also derive the barycentric formula for the rational Hermite interpolant of a method introduced in [26]. We prove the interpolation property as well as the lack of poles for both methods and perform some numerical experiments to examine their behaviour. Part II Curve intersection in the plane 37 5 Bézier clipping is quadratically convergent Christian Schulz Computer Aided Geometric Design, Volume 26, Issue 1, January 2009, Pages 61-74 Abstract In 1990 Sederberg et al. introduced Bézier clipping as a new method to determine the intersections of two Bézier curves in the plane. The method utilizes the convex hull property of Bézier curves. In experiments a quadratic convergence rate was observed at transversal intersections, the equivalent of simple roots of functions, but no formal proof for this has been provided. In this paper we formally prove the quadratic convergence rate for polynomial Bézier curves. Bézier clipping bounds one of the curves by a region along a line. We also discuss the usefulness of arbitrary lines for creating these so called ’fat lines’, leading to two general classes of fat lines which both give quadratic convergence. Keywords: Bézier clipping, Bézier curves, curve intersection, quadratic convergence 5.1 Introduction The problem of computing the intersections of two parametric curves is a widespread and quite fundamental problem in the field of Geometric Modeling. Different methods have been developed to solve the task, ranging from Newton-like methods and subdivisional techniques to (approximate) implicitation[for an overview see [20]]. One widely used, fast and robust method is Bézier clipping. This method was introduced by Sederberg et al. in [72] and consists of clipping away regions of the curves that are guaranteed to not intersect. In [72] a quadratic convergence rate for Bézier clipping is mentioned, but not proved. This paper closes for polynomial Bézier curves the gap in the theory. 39 40 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT d3 c3 b1 dmax c2 d2 b3 dmin b2 b0 L d1 d0 c1 t∗0 c0 a) Computation of the fat line and d(t). t t∗1 t∗2 t t∗3 b) Clipping computed from d(t). Figure 5.1: The two stages of Bézier clipping. In Section 5.2 we recapitulate Bézier clipping followed by a short section of background material about splines and Bézier curves. In Section 5.4 we then show the quadratic convergence rate of Bézier clipping whereas the usage of arbitrary ’fat lines’ is discussed in Section 5.5. In Section 5.6 two general classes of ’fat lines’ are introduced, which both provide quadratic convergence. The paper finishes with some numerical examples in Section 5.7. 5.2 Bézier Clipping In order to compute an intersection between two polynomial Bézier curves f and g, Bézier clipping first computes a region defined by two parallel lines for one of the curves, e.g. f , that completely encloses this curve. We call this region a ’fat line’. Then the distance function of the other curve g to this fat line is used to compute regions where g is guaranteed to not intersect the fat line and hence can not intersect f . The process is then repeated with a fat line around g and clipping f and so on. This provides a sequence of parameter intervals in which the two curves may have an intersection. The lengths of these intervals decrease to zero and hence P the intersections of the two curves are located. Pn m m n (s) be the first and g(t) = j=0 cj Bj,[γ,δ] (t) be the second Let f (s) = i=0 bi Bi,[α,β] 2 polynomial Bézier curve with bi , cj ∈ R for all i, j and m 1 m Bi,[α,β] (s) = (β − s)m−i (s − α)i (β − α)m i a general Bernstein basis polynomial of degree m. We will now show how to compute the fat line around f . Denote by L the line defined by b0 and bm , the first and last control point of f , as shown in Figure 5.1a. The line L can be defined by its implicit equation L = {x | distL (x) = 0}, distL (x) = n·(x − b0 ), where n is its unit normal vector and distL (x) the signed distance from a point x to L. Let d˜min := min (distL (bi )) ≤ 0 0≤i≤m and d˜max := max (distL (bi )) ≥ 0. 0≤i≤m 5.2. BÉZIER CLIPPING m=2 µf 1/2 41 m=3 distL (b1 )distL (b2 ) > 0 distL (b1 )distL (b2 ) ≤ 0 3/4 4/9 else 1 Table 5.1: Values for µf . Pm m distL (bi )Bi,[α,β] (s) the curve f (s) is completely contained in the ˜ fat line given by {x | dmin ≤ distL (x) ≤ d˜max } along L as illustrated in Figure 5.1a. Actually in [72] it is shown that the better bounds dmin := µf d˜min and dmax := µf d˜max with the values 0 < µf ≤ 1 from Table 5.1 are sufficient. In order toP clip g against the fat line we first compute the distancePfunction d(t) = n n n n distL (g(t)) = i=0 di Bi,[γ,δ] (t) with di = distL (ci ). Observe that t = i=0 t∗i Bi,[γ,δ] (t) ∗ with ti = ((n − i)γ + iδ)/n. As the value of a polynomial Bézier curve is a convex combination of its control points, we know that the curve (t, d(t))T lies in the convex hull of the control points (t∗i , di )T with i = 0, . . . , n. Hence computing the intersections of this convex hull with the lines d = dmin and d = dmax as shown in Figure 5.1b provides us with the intervals [γ, t) and (t, δ] where we are guaranteed to have d(t) < dmin or d(t) > dmax and hence the curve g does not intersect f . Splitting g(t) at t and t provides the new interval [t, t ] where g might intersect f . If the whole convex hull lies above dmax or below dmin , the curves can not have an intersection and the computation is stopped. In the next step f will be clipped against the fat line for the interval [t, t ] of the split g and so on. In some cases the ’new’ interval [t, t ] will be identical to the old or, generally speaking, will not be ’small enough’, e.g. when both end points of g lie in the fat line around f . In this situation the curve g is not clipped and instead we clip f against the fat line around g. However, sometimes neither clipping g against f nor f against g provides a ’good enough’ clip. In this case, the curve with the larger parameter interval is subdivided at the centre. Then Bézier clipping is recursively used to find the intersections between the unsubdivided curve and both parts of the subdivided curve. This is called a subdivision step and allows for the computation of an arbitrary number of intersections. The heuristic suggested in [72] determines that a clip is ’not good enough’ if t − t is larger than 80% of the old interval. When Bézier clipping is applied to a pair of curves, we suggest for the first clip to start with clipping the curve with the larger parameter interval against the fat line around the curve with the shorter parameter interval. In each step the interval over which f or the interval over which g is considered decreases. Due to the use of subdivision steps, this decrease is at least linearly and therefore the lengths of both intervals converge to zero. By construction it is guaranteed that in the limit at least one intersection is contained in both intervals and therefore located. As every subdivision step creates basically two independent Bézier clipping tasks, the whole process is able to locate all intersections between two curves. Note that here, as in the rest of the paper, we assume that the two curves only intersect in single points and not over whole parameter intervals. It is also possible to use other lines than L to determine the fat line. We discuss this in As distL (f (s)) = i=0 42 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT Sections 5.5 and 5.6. 5.3 Background Material The following facts are well known and are just restated here for convenience as they will be needed to establish the quadratic convergence rate. For an introduction to convergence and convergence rate we direct the interested reader to [34]. A Bézier function is also a spline, hence we know from classical Pm splinemliterature [23, 52, 71] that the distance of a coefficient bi to the function f (s) = i=0 bi Bi,[α,β] (s) can be bounded quadratically by |bi − f (s∗i )| ≤ h2f Υm Pf , Pf := max |f 00 (s)| s∈[α,β] where hf := β − α and Υm > 0 is a constant depending only on m. Extending this bound to parametric curves in R2 gives √ kbi − f (s∗i )k2 ≤ h2f 2Υm Pf . The tangent Tσ,f of the function f at the point s = σ is defined by Tσ,f (s) := f (σ) + (s − σ)f 0 (σ) for all s ∈ [α, β]. From standard Taylor expansion of the function f around σ we get |Tσ,f (s) − f (s)| ≤ h2f Pf /2. With Rf := Pf (Υm + 1/2), this provides the following bound on the distance between the tangent and the coefficients, 1 |bi − Tσ,f (s∗i )| ≤ h2f Pf (Υm + ) = h2f Rf . 2 (5.1) The latter bound can of course be extended to parametric curves with f (s) ∈ R2 , yielding √ kbi − Tσ,f (s∗i )k2 ≤ h2f 2Rf . (5.2) In Section 5.4 we will need an extension of the concept of simple roots to the intersection of two Bézier curves. An intersection f (σ) = g(τ ) is called a transversal intersection if det(f 0 (σ) g0 (τ )) 6= 0, which is equivalent to the derivatives not being zero or parallel at the intersection. 5.4 Convergence Rate We will first consider the functional case and establish quadratic convergence of Bézier clipping as a root finding algorithm (at simple zeros). Here the function g(t) = n X i=0 n ci Bi,[γ,δ] (t) 5.4. CONVERGENCE RATE 43 T− T+ t+ t t− t Figure 5.2: Illustration of the proof concept for quadratic convergence of Bézier clipping as root finding. is clipped against the x-axis and t and t are the two intersections of the x-axis with the convex hull of (t∗i , ci )T , i = 0, . . . , n, as shown in Figure 5.2. The proof is similar to the one used in [4] to show cubic convergence for quadratic clipping. Proposition 5.1 Suppose g(t) has a simple root at τ so g 0 (τ ) 6= 0, and let [t, t ] be the new interval for g after the clipping step. Then t − t ≤ 2h2g Rg |g 0 (τ )| where hg = δ − γ and Rg is as defined in Section 5.3. Proof. We create a stripe around the tangent Tτ,g at g(τ ) bounded by the two lines T − (t) := Tτ,g (t) − h2g Rg , and T + (t) := Tτ,g (t) + h2g Rg , as illustrated in Figure 5.2. From (5.1) we get T − (t∗i ) ≤ ci ≤ T + (t∗i ) and hence the control points (t∗i , ci )T , i = 0, . . . , n lie in the region enclosed by T − (t) and T + (t). Solving T − (t− ) = 0 and T + (t+ ) = 0 gives t− = τ + h2g Rg , g 0 (τ ) t+ = τ − h2g Rg . g 0 (τ ) Clearly the sign of g 0 (τ ) determines whether t+ or t− is largest. In addition we know that both t and t must lie between those values. Thus for g 0 (τ ) > 0 we get t+ ≤ t ≤ t ≤ t− and for g 0 (τ ) < 0 we have t− ≤ t ≤ t ≤ t+ . Hence t − t ≤ |t− − t+ | = 2h2g Rg . |g 0 (τ )| 2 44 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT The rest of this section discusses the convergence rate of Bézier clipping for curves. We consider two curves f (s), s ∈ [α̃, β̃] and g(t), t ∈ [γ̃, δ̃] which have an intersection f (σ) = g(τ ). In the process of Bézier clipping the curves f and g are subdivided and hence defined over [α, β] ⊆ [α̃, β̃] and [γ, δ] ⊆ [γ̃, δ̃]. Let bi , i = 0, . . . , m be the control points of the curve f defined over [α, β] and ci , i = 0, . . . , n the control points of g defined over [γ, δ]. In addition let hf := β − α hg := δ − γ and be the lengths of the current intervals. Note that we are only interested in intervals where σ ∈ [α, β], τ ∈ [γ, δ] and observe that hf and hg decrease and that 0 ≤ Pf = max kf 00 (s)k2 ≤ max kf 00 (s)k2 =: P̃f s∈[α,β] s∈[α̃,β̃] and hence 0 ≤ Rf ≤ P̃f (Υm + 1/2) =: R̃f . In the rest of the paper we will often state that something is true for small enough hf or that there exists an Hf > 0 such that for all hf < Hf something is true. This means that the statement is true if the interval over which the corresponding curve is currently considered contains the intersection and its length is small enough or smaller than some bound. As the lengths of the intervals go to zero as the intervals converge to intersections, this will always be the case after some time (assuming there is an intersection). To extend the result of Proposition 5.1 to Bézier clipping of curves we use a more general lemma, where we consider fat lines computed by an arbitrary rule. To make the concept of an arbitrary rule easier, we introduce the following definition. Definition 5.2 Given the Bézier curve f over the interval [α, β] with the control points bi , i = 0, . . . , m, a fat line rule for the curve f is a rule that determines a line Y called the orientation line which converges to a line Z called limit line as hf goes to zero. The corresponding fat line is then defined by {x | dmin ≤ distY (x) ≤ dmax } where dmin = λf mini=0,...,m (distY (bi )), dmax = λf maxi=0,...,m (distY (bi )) and 0 < λf ≤ 1 is a constant defined by the rule such that f is completely contained in the fat line. As an example one can think of the fat line rule described in Section 5.2 where the orientation line L is determined by the end control points, λf = µf and, as we will show later, the limit line is the tangent Tσ,f . The distance function d of g to the orientation line changes in the process of Bézier clipping. However, the value of Pd and with it Rd can be bound. Let n be the unit normal vector of the orientation line. Then from |d00 (t)| = |n·g00 (t)| ≤ kg00 (t)k2 it follows that Pd ≤ Pg ≤ P̃g and Rd ≤ P̃g (Υn + 1/2) = R̃g . (5.3) We now have the ingredients for the following general lemma. Note that for us an angle of zero degree between two lines means that the lines are either identical or parallel. 5.4. CONVERGENCE RATE 45 T− T+ Z Y d(τ ) ϑ φ ϑ 2 ϑ 2 Tτ,g t t+ min a) Angles between Tτ,g , Y and Z. t+ max t t− min t− max b) Bounding [t, t ]. Figure 5.3: Illustration of the proof concept for quadratic convergence of Bézier clipping for curves. Lemma 5.3 Suppose the two Bézier curves f and g have an intersection f (σ) = g(τ ). Suppose also that the curve g is clipped against a fat line determined by a fat line rule for f with orientation line Y and limit line Z. Moreover suppose kg0 (τ )k2 6= 0 and let ϑ ∈ (0◦ , 90◦ ] be the angle between the tangent Tτ,g and Z. Then for small enough hf the new interval [t, t ] for g can be bounded by t−t< dmax − dmin 2R̃g + h2g 0 kg0 (τ )k2 Aϑ kg (τ )k2 Aϑ where Aϑ = sin(ϑ/2) > 0. Proof. Let n be the unit normal vector Pnof Y. nThe distance function of g to the line Y is (t) with di = distY (ci ). We will first defined by d(t) = n· g(t) − b = i=0 di Bi,[γ,δ] show that in the given setting d0 (τ ) 6= 0 for small enough hf . Let φ ∈ [0◦ , 90◦ ] be the angle between Tτ,g and Y as shown in Figure 5.3a. As Y converges to Z the angle φ converges to ϑ. Hence there exists an Hf > 0 such that for all hf < Hf we have φ > ϑ/2 > 0 and thus 0 < Aϑ := sin(ϑ/2) < sin(φ) ≤ 1. Observe that the angle ρ between g0 (τ ) and n is either ρ = 90◦ + φ or ρ = 90◦ − φ. Using this we can bound the derivative of the distance function at the intersection 0 0 d (τ ) = g (τ ) cos(90◦ ± φ) = g0 (τ ) sin(φ) > g0 (τ ) Aϑ > 0. 2 2 2 As d0 (τ ) 6= 0 we can now use a similar approach as in the proof of Proposition 5.1. The distance function d(t) can again be bounded by two lines T − (t) := Tτ,d (t) − h2g Rd , and T + (t) := Tτ,d (t) + h2g Rd , as shown in Figure 5.3b. Observe that hd = hg and that d(τ ) does not need to be zero, in fact, in general it will not. Nevertheless, we still have T − (t∗i ) ≤ di ≤ T + (t∗i ) and hence 46 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT the convex hull of the points (t∗i , di )T , i = 0, . . . , n lies in the region defined by T − (t) and ± ± T + (t). Solving T ± (t± min ) = dmin and T (tmax ) = dmax gives t± min = τ + dmin − d(τ ) ∓ h2g Rd , d0 (τ ) t± max = τ + dmax − d(τ ) ∓ h2g Rd . d0 (τ ) ± The sign of d0 (τ ) determines whether t± min is larger than tmax or not as well as whether − − 0 − + tmax or tmax has a higher value. Thus for d (τ ) > 0 we get t+ min < tmin ≤ tmax and + + + − − 0 tmin ≤ tmax < tmax and hence t − t ≤ tmax − tmin . Similar for d (τ ) < 0 we get − + + + − − + t− max < tmax ≤ tmin and tmax ≤ tmin < tmin and therefore t − t ≤ tmin − tmax . Thus dmax − dmin 2Rd + t − t ≤ t− + h2g 0 . max − tmin < 0 kg (τ )k2 Aϑ kg (τ )k2 Aϑ By (5.3) we have Rd ≤ R̃g . 2 With the help of Lemma 5.3 we can now present the quadratic convergence of Bézier clipping as presented in Section 5.2. Theorem 5.4 Suppose the two Bézier curves f and g have a transversal intersection f (σ) = g(τ ). Suppose also the curve g is clipped against the fat line determined by the fat line rule described in Section 5.2. Then there exists a constant 0 < Aϑ < 1 depending on the angle between Tσ,f and Tτ,g , such that for small enough hf the new interval [t, t ] for g can be bounded by √ 4 2R̃f 2R̃g 2 t − t < hf 0 + h2g 0 . kg (τ )k2 Aϑ kg (τ )k2 Aϑ Proof. We first show that Tσ,f is the limit line of the orientation line L determined by the endpoints b0 and bm . Observe that both b0 and bm are points on the curve f . Hence according to the mean value theorem there is an ξ ∈ [α, β] such that the line L is parallel to the tangent Tξ,f . As α and β converge to σ as hf tends to zero, ξ must converge to σ as well and b0 must tend to f (σ). Hence the line L converges to Tσ,f as hf tends to zero. As f (σ) = g(τ ) is a transversal intersection, the angle between Tσ,f and Tτ,g is greater than zero and kg0 (τ )k2 6= 0 and hence we can apply Lemma 5.3. To finish the proof we need to bound the width of the fat line, dmax − dmin . For this we define a parametrization of L, β−s s−α L(s) = b0 + bm . β−α β−α This enables us to bound the distance between L and Tσ,f using (5.2) by kTσ,f (s∗i ) − L(s∗i )k2 ≤ √ m−i i kTσ,f (s∗0 ) − b0 k2 + kTσ,f (s∗m ) − bm k2 ≤ h2f 2Rf . m m From this we obtain √ |distL (bi )| ≤ kbi − Tσ,f (s∗i )k2 + kTσ,f (s∗i ) − L(s∗i )k2 ≤ h2f 2 2R̃f 5.5. ARBITRARY FAT LINE RULES 47 for i = 0, . . . , m, which yields for the width of the fat line √ dmax − dmin ≤ |dmax | + |dmin | ≤ 2 max |distL (bi )| ≤ h2f 4 2R̃f . 0≤i≤m Using this in Lemma 5.3 provides the desired bound. 2 Theorem 5.4 shows that when hf and hg have become small enough, every clipping step will result in a quadratic decrease of hf or hg . It also tells us that for small enough hf and hg there can not be a subdivision step: In the case of hf ≤ hg when clipping g against f the length of the interval [t, t ] is bounded from above by h2g times a constant. For small enough hg this will result in a real clipping step. Similarly, for the case of hg ≤ hf when clipping f against g the length of the new interval is bounded by h2f times a constant, yielding a real clipping step for small enough hf . But for a subdivision step to occur neither clipping g against f nor f against g must be successful. Hence for small enough hf and hg there will be no more subdivision steps, which leads to the conclusion that Bézier clipping is quadratically convergent. 5.5 Arbitrary Fat Line Rules Lemma 5.3 provides us with some insight into the properties of Bézier clipping. In order to get quadratic convergence we need dmax − dmin , the width of the fat line, to go to zero quadratically. Although it might be possible to obtain an upper bound without using this property, it seems quite natural that if the width of the fat line does not go to zero quadratically, then neither will the algorithm be quadratically convergent. Proposition 5.5 below strengthens this argument. It shows the dependency of the convergence rate of Bézier clipping on the convergence rate of the width of the fat line. The only case where Proposition 5.5 does not apply, is if one can guarantee that after some time the standard case where d0 and dn lie outside the fat line only appears at most a constant number of times between the other cases. To provide such a guarantee for a certain fat line rule is likely to be difficult, if not impossible. In Proposition 5.6 it is shown that the convergence rate of the width of the fat line in turn can only be quadratic if the limit line is parallel to the tangent at the intersection of the curve. Hence for quadratic convergence of Bézier clipping the orientation line of a fat line rule must converge to a line parallel to the tangent line with quadratically decreasing width. The fat line rule described in Section 5.2 fulfills these properties and is easy to compute. In contrast, using a fat line rule with the perpendicular line to L as orientation line as also suggested in [72] will not lead to a quadratic convergence rate, although it might provide a better clip in the beginning. Proposition 5.5 Suppose the two Bézier curves f and g have an intersection f (σ) = g(τ ). Suppose also that the curve g is clipped against a fat line determined by a fat line rule for f with orientation line Y and limit line Z. Moreover, suppose kg0 (τ )k2 6= 0 and let ϑ ∈ (0◦ , 90◦ ] be the angle between the tangent Tτ,g and Z. Then there exists an Hf > 0 48 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT d3 d2 H0 Hn d(τ ) d0 d1 t ζ ζ t Figure 5.4: Illustration of the proof concept of Proposition 5.5. and an Hg > 0 such that for all hf < Hf and hg < Hg where d0 < dmin and dn > dmax or d0 > dmax and dn < dmin the new interval can be bounded by t−t> dmax − dmin 0 kg (τ )k2 (1 + Aϑ ) where Aϑ = sin(ϑ/2) > 0 is the same constant as in Lemma 5.3. Proof. We will use two lines H0 and Hn inside the convex hull of the control points of the distance function as shown in Figure 5.4 to compute a lower bound for the new As interval. in the proof of Lemma 5.3 we can deduce that in the given situation 0 < g0 (τ )2 Aϑ < 0 0 d (τ ) ≤ g (τ ) for the same constant Aϑ = sin(ϑ/2) and small enough hf . 2 Observe that d0 = d(t∗0 ) and dn = d(t∗n ). Let H0 be the line defined by d0 and d(τ ), and Hn the line defined by d(τ ) and dn as illustrated in Figure 5.4, H0 (t) = d(τ ) + (t − τ ) d(τ ) − d(t∗0 ) , τ − t∗0 | {z } Hn (t) = d(τ ) + (t − τ ) =:E1 d(t∗n ) − d(τ ) . t∗n − τ {z } | =:E2 From numerical analysis (see for example [34, 42]) we know that E1 is an approximation to the derivative d0 (τ ) with the error (τ − ξ)d00 (η) where ξ, η ∈ [t∗0 , τ ], thus E1 − d0 (τ ) ≤ hg Pd ≤ hg R̃g E2 − d0 (τ ) ≤ hg Pd ≤ hg R̃g . and Let 0 < < g0 (τ )2 Aϑ . Then there exists an Hg > 0 such that for all hg < Hg we have E1 − d0 (τ ) < , E2 − d0 (τ ) < . From this it follows that 0 < d0 (τ ) − < E1 < d0 (τ ) + < g0 (τ )2 (1 + Aϑ ) − kg0 (τ )k2 (1 + Aϑ ) < d0 (τ ) − < E1 < d0 (τ ) + < 0 if d0 (τ ) > 0, if d0 (τ ) < 0. 5.5. ARBITRARY FAT LINE RULES 49 Hence we have 0 < |E1 | < K3 := g0 (τ )2 (1+Aϑ ) and similarly 0 < |E2 | < K3 . For the case d0 (τ ) > 0 we have E1 , E2 > 0 and therefore d0 ≤ d(τ ) ≤ dn . Unfortunately we are not able to create a lower bound in this situation if dmin ≤ d0 or dmax ≥ dn . Hence these cases are excluded in the proposition. Suppose therefore that d0 < dmin and dn > dmax . Solving for H0 (ζ) = dmin and Hn (ζ) = dmax gives ζ = τ − d(τ ) − dmin 1 E1 and 1 ζ = τ + dmax − d(τ ) . E2 As H0 (t) for t ∈ [t∗0 , τ ] and Hn (t) for t ∈ [τ, t∗n ] lie in the convex hull of (t∗i , di )T , i = 0, . . . , n we have t∗0 ≤ t ≤ ζ ≤ τ ≤ ζ ≤ t ≤ t∗n and 1 1 1 t − t ≥ ζ − ζ = dmax − d(τ ) + d(τ ) − dmin > (dmax − dmin ). E2 E1 K3 The case d0 (τ ) < 0 is similar with E1 , E2 < 0 and we assume d0 > dmax and dn < dmin . This leads to 1 ζ = τ − dmax − d(τ ) |E1 | and ζ = τ + d(τ ) − dmin 1 |E2 | and thus t − t ≥ ζ − ζ = d(τ ) − dmin 1 1 1 + dmax − d(τ ) > (dmax − dmin ). |E2 | |E1 | K3 2 Proposition 5.6 Suppose the fat line for f is computed according to a rule with orientation line Y and limit line Z. Suppose also that Z is not parallel to Tσ,f . Then there exists an Hf > 0 such that for all hf < Hf and for curves f of degree m ≥ 2 dmax − dmin > hf K4 where K4 > 0 is a constant that depends on the factor λf of the fat line rule, f 0 (σ), m and the angle between Z and Tσ,f . Proof. Let Ŷ(s) be the line parallel to Y going through the intersection point f (σ) and let dŶ be the distance from Ŷ to Y. Then distY (p) = distŶ (p) + dŶ and hence with dmin,Ŷ = min distŶ (bi ) and dmax,Ŷ = max distŶ (bi ) 0≤i≤m 0≤i≤m we have dmax − dmin = λf (dmax,Ŷ − dmin,Ŷ ). Therefore it is enough to show that dmax,Ŷ − dmin,Ŷ > hf K5 where K5 is a constant and K4 := λf K5 . 50 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT We will start by bounding the distance of some control points to the line Ŷ. Let ρ ∈ [0◦ , 90◦ ] be the angle between Y and the tangent Tσ,f and ψ ∈ (0◦ , 90◦ ] be the angle between Z and Tσ,f . As Y converges to Z there must be an Hf > 0 such that ρ > ψ/2 > 0 for all hf < Hf . Then for i = 0, . . . , m we have dist (bi ) = kŶ(s̃) − bi k2 ≥ kŶ(s̃) − Tσ,f (s∗i )k2 − kTσ,f (s∗i ) − bi k2 . Ŷ Let the integer j be such that σ ∈ [s∗j , s∗j+1 ]. By a simple trigonometric argument we get for i = 0, . . . , j − 1, j + 2, . . . , m that min(kTσ,f (s∗i ) − Ŷ(s)k) = |s∗i − σ|kf 0 (σ)k2 sin(ρ) > s hf 0 kf (σ)k2 sin(ψ/2). m Let 0 < K5 < (1/m)kf 0 (σ)k2 sin(ψ/2) and let Hf > 0 be so small that for all hf < Hf 0 < K5 < √ 1 0 kf (σ)k2 sin(ψ/2) − hf 2R̃f . m For all hf < Hf and i = 0, . . . , j − 1, j + 2, . . . , m the inequalities in combination with (5.2) then yield √ hf 0 kf (σ)k2 sin(ψ/2) < kTσ,f (s∗i ) − Ŷ(s̃)k2 kbi − Tσ,f (s∗i )k2 ≤ h2f 2R̃f < m and dist (bi ) ≥ kŶ(s̃) − Tσ,f (s∗i )k2 − kTσ,f (s∗i ) − bi k2 Ŷ √ 1 0 ≥ hf kf (σ)k2 sin(ψ/2) − hf 2R̃f > hf K5 . m This means that the maximum absolute distance can be bounded linearly by hf , dist (bi ) > hf K5 . max distŶ (bi ) ≥ max Ŷ 0≤i≤m i=0,...,j−1,j+2,...,m The line Ŷ passes through the intersection point. Hence it intersects the convex hull of the control points bi , i = 0, . . . , m and we have dmin,Ŷ ≤ 0 ≤ dmax,Ŷ . Therefore dmin,Ŷ is the minimum of all negative values and dmax,Ŷ the maximum of all positive ones, yielding dmax,Ŷ − dmin,Ŷ ≥ max − dmin,Ŷ , dmax,Ŷ = max distŶ (bi ) > hf K5 . 0≤i≤m 2 5.6 Fat Line Rules Providing Quadratic Convergence In the following section we will define two classes of fat line rules which both give quadratic convergence. The fat line rule of Section 5.2 belongs to one of these classes. 5.6. FAT LINE RULES PROVIDING QUADRATIC CONVERGENCE 51 A somehow trivial observation is that if a fat line rule provides orientation lines Y which are parallel to the orientation lines Ỹ of another rule, the resulting fat lines will be identical (up to a constant scaling if the constants λf are different). Hence if a certain fat line rule A provides quadratic convergence of Bézier clipping, any fat line rule using orientation lines parallel to the ones of A will also give a quadratic convergence rate. It follows from Proposition 5.6 that for any fat line rule where the width of the fat line converges to zero quadratically, the limit line must be identical or parallel to the tangent of the curve at the intersection. According to Lemma 5.3 the resulting Bézier clipping algorithm is therefore quadratically convergent at transversal intersections. Hence for any given fat line rule it is enough to show that the width of the fat line converges to zero quadratically in order to have quadratic convergence of Bézier clipping. In the following two definitions we introduce two different classes of fat line rules. Definition 5.7 Suppose a fat line is to be computed for a Bézier curve f defined over [α, β]. A fat line rule of the tangential class is a rule where the orientation line is a tangent Tξ,f for some ξ ∈ [α, β]. Definition 5.8 Suppose a fat line is to be computed for a Bézier curve f defined over [α, β] with the control points bi , i = 0, . . . , m. A fat line rule of the control-point class is a rule where the orientation line is defined by two control points bk and b` with 0 ≤ k < ` ≤ m. Observe that the fat line rule described in Section 5.2 belongs to the control-point class of fat line rules with k = 0 and ` = m. In addition it also has a connection to the tangential class as there always exists a tangent Tξ,f with ξ ∈ [α, β] to which L is parallel. The two following theorems show that the tangential as well as the control-point class give quadratic convergence of Bézier clipping. Theorem 5.9 Suppose the two Bézier curves f and g have a transversal intersection f (σ) = g(τ ). Suppose also the curve g is clipped against the fat line of f determined by a fat line rule of the tangential class with Tξ,f as orientation line and ξ ∈ [α, β]. Then there exists a constant 0 < Aϑ < 1 depending on the angle between Tσ,f and Tτ,g , such that for small enough hf the new interval [t, t ] for g can be bounded by √ 2 2R̃f 2R̃g 2 t − t < hf 0 + h2g 0 . kg (τ )k2 Aϑ kg (τ )k2 Aϑ Proof. Let bi , i = 0, . . . , m be the control points of f over [α, β]. From (5.2) we know that √ √ kbi − Tξ,f (s∗i )k2 ≤ h2f 2Rf ≤ h2f 2R̃f for all i. Hence √ |dmin | ≤ h2f 2R̃f and and √ |dmax | ≤ h2f 2R̃f √ dmax − dmin = |dmax − dmin | ≤ 2h2f 2R̃f . (5.4) This means that Tξ,f must converge to Tσ,f as hf goes to zero, which is also trivial to observe. Using (5.4) in Lemma 5.3 provides the desired bound. 2 52 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT Theorem 5.10 Suppose the two Bézier curves f and g have a transversal intersection f (σ) = g(τ ). Let bi , i = 0, . . . , m be the control points of the curve f defined over [α, β]. Suppose also the curve g is clipped against the fat line of f determined by a fat line rule of the control-point class with the orientation line defined by bk and b` with 0 ≤ k < ` ≤ m. Then there exists a constant 0 < Aϑ < 1 depending on the angle between Tσ,f and Tτ,g , such that for small enough hf the new interval [t, t ] for g can be bounded by t − t < h2f √ 4 2(m + 1)R̃f 2R̃g + h2g 0 . kg0 (τ )k2 Aϑ kg (τ )k2 Aϑ Proof. Let Y be the line defined by the two control points bk and b` . We define the following parametrization for Y, Y(s) = bk + s − s∗k (b` − bk ). s∗` − s∗k Moreover let qi := bi − Tσ,f (s∗i ), i = 0, . . . , m. Then Y(s) − Tσ,f (s) = qk + s − s∗k (q` − qk ). s∗` − s∗k Observe that s∗i+1 − s∗i = hf /m for 0 ≤ i < m which yields together with (5.2) √ kY(s∗i ) − Tσ,f (s∗i )k ≤ kqk k + mkq` − qk k ≤ h2f 2(2m + 1)R̃f . From this we obtain √ |distY (bi )| ≤ kbi − Tσ,f (s∗i )k2 + kTσ,f (s∗i ) − Y(s∗i )k2 ≤ h2f 2 2(m + 1)R̃f for i = 0, . . . , m, which yields for the width of the fat line √ dmax − dmin = |dmax − dmin | ≤ h2f 4 2(m + 1)R̃f . (5.5) This means that Y must converge to Tσ,f as hf goes to zero. Hence using (5.5) in Lemma 5.3 provides the desired bound. 2 With those classes the stability of Bézier clipping can be improved. If the orientation line is determined by two control points and these control points happen to be identical, then the computation of the fat line and hence Bézier clipping becomes difficult. One solution to this is to use the tangential class and switch to an orientation line parallel to a tangent and going through one control point. This is a stable operation as the orientation can be computed by evaluating the derivative of the original Bézier curve at the chosen parameter value. Of special interest would be the orientation lines Tα,f and Tβ,f as these lines can be defined by the two first or last control points or by the first or last control point and f 0 (α) or f 0 (β) respectively. 5.7. NUMERICAL EXAMPLES 53 a) Example 1, m = 3, n = 3. b) Example 2, m = 7, n = 9. Figure 5.5: Examples. 5.7 Numerical Examples This section gives numerical examples which illustrate the quadratic convergence rate of the introduced fat line rule classes. In Figure 5.5 the curves for Examples one and two are shown. The lengths hf and hg of the corresponding intervals during Bézier clipping are listed in Tables 5.2 and 5.3. We use four different fat line rules. The first is the fat line rule described in Section 5.2 and introduced by Sederberg et al. in [72], using the orientation line L. The second fat line rule uses the line Y1,2 determined by the second and third control point as orientation line and belongs therefore to the control-point class. As an example from the tangential class we use a rule that uses the tangent Y0.5 = T0.5(α+β),f as orientation line. Finally, for comparison, we use the perpendicular line to L as orientation line L⊥ as also suggested by Sederberg et al. in [72]. In Bézier clipping every subdivision step leads to two new Bézier clipping tasks. In Tables 5.2 and 5.3 italic numbers indicate that the two considered curves come from a subdivision step. Note that the lengths of the intervals in both tables are only listed until an intersection is found. In Example two this is for all four fat line rules the left-most intersection. Both tables clearly show the quadratic convergence rate for L, Y1,2 and Y0.5 . The orientation line L⊥ in contrast provides only linear convergence. Acknowledgment I would like to thank Knut Mørken and Martin Reimers for fruitful discussions and the referees for their comments. 54 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT L hf 1.0e-00 5.0e-01 5.0e-01 5.0e-01 2.5e-01 2.5e-01 2.5e-01 2.9e-03 2.9e-03 1.6e-07 1.6e-07 5.6e-16 5.6e-16 Y1,2 hg 1.0e-00 1.0e-00 5.4e-01 4.3e-01 4.3e-01 4.3e-01 4.2e-02 4.2e-02 4.7e-05 4.7e-05 5.7e-11 5.7e-11 2.8e-17 hf 1.0e-00 5.0e-01 5.0e-01 5.0e-01 4.2e-02 4.2e-02 3.9e-04 3.9e-04 3.7e-08 3.7e-08 3.3e-16 3.3e-16 hg 1.0e-00 1.0e-00 5.0e-01 2.6e-01 2.6e-01 2.0e-02 2.0e-02 1.2e-04 1.2e-04 4.3e-09 4.3e-09 2.8e-17 Y0.5 hf 1.0e-00 5.0e-01 5.0e-01 5.0e-01 2.5e-01 2.5e-01 5.1e-03 5.1e-03 4.1e-06 4.1e-06 2.5e-12 2.5e-12 0.0e-17 hg 1.0e-00 1.0e-00 7.4e-01 3.7e-01 3.7e-01 6.9e-02 6.9e-02 8.8e-04 8.8e-04 1.3e-07 1.3e-07 2.7e-15 2.7e-15 L⊥ hf 1.0e-00 7.3e-01 7.3e-01 5.8e-01 2.9e-01 2.9e-01 2.9e-01 2.9e-01 1.1e-01 1.1e-01 5.5e-02 5.5e-02 2.7e-02 2.7e-02 .. . hg 1.0e-00 1.0e-00 5.0e-01 5.0e-01 5.0e-01 3.0e-01 1.5e-01 1.5e-01 1.5e-01 7.6e-02 7.6e-02 3.8e-02 3.8e-02 2.2e-02 .. . Table 5.2: Parameter interval lengths of curves of Example 1 for different fat line rules. 5.7. NUMERICAL EXAMPLES L hf 1.0e-00 5.0e-01 5.0e-01 5.0e-01 2.5e-01 2.5e-01 2.5e-01 7.0e-02 7.0e-02 1.5e-03 1.5e-03 2.6e-07 2.6e-07 7.1e-15 7.1e-15 55 Y1,2 hg 1.0e-00 1.0e-00 5.0e-01 3.4e-01 3.4e-01 3.4e-01 1.8e-01 1.8e-01 1.4e-02 1.4e-02 2.7e-05 2.7e-05 8.8e-11 8.8e-11 2.8e-17 hf 1.0e-00 5.0e-01 5.0e-01 3.3e-01 3.3e-01 2.1e-01 2.1e-01 1.6e-01 1.6e-01 9.2e-03 9.2e-03 4.7e-06 4.7e-06 1.4e-12 1.4e-12 0.0e-17 hg 1.0e-00 1.0e-00 6.0e-01 6.0e-01 4.0e-01 4.0e-01 2.4e-01 2.4e-01 5.9e-02 5.9e-02 3.9e-05 3.9e-05 7.5e-10 7.5e-10 5.6e-17 5.6e-17 Y0.5 hf 1.0e-00 5.0e-01 5.0e-01 3.6e-01 3.6e-01 2.0e-01 2.0e-01 2.1e-02 2.1e-02 9.5e-05 9.5e-05 1.0e-09 1.0e-09 1.1e-16 1.1e-16 hg 1.0e-00 1.0e-00 5.0e-01 5.0e-01 2.5e-01 2.5e-01 7.5e-02 7.5e-02 2.8e-03 2.8e-03 1.4e-06 1.4e-06 3.7e-13 3.7e-13 5.6e-17 L⊥ hf 1.0e-00 5.0e-01 5.0e-01 3.8e-01 3.8e-01 2.9e-01 1.4e-01 1.4e-01 1.4e-01 1.4e-01 1.4e-01 1.1e-01 1.1e-01 1.1e-01 8.9e-02 4.4e-02 4.4e-02 .. . hg 1.0e-00 1.0e-00 5.4e-01 5.4e-01 2.7e-01 2.7e-01 2.7e-01 1.5e-01 2.7e-01 1.3e-01 1.3e-01 1.3e-01 6.7e-02 6.7e-02 6.7e-02 6.7e-02 3.0e-02 .. . Table 5.3: Parameter interval lengths of curves of Example 2 for different fat line rules. 56 CHAPTER 5. BÉZIER CLIPPING IS QUADRATICALLY CONVERGENT 6 Computing intersections of planar spline curves using knot insertion Knut Mørken, Martin Reimers and Christian Schulz Computer Aided Geometric Design, Volume 26, Issue 3, March 2009, Pages 351-366 Abstract We present a new method for computing intersections of two parametric B-Spline curves. We use an intersection of the control polygons as an approximation for an intersection of the curves in combination with knot insertion. The resulting algorithm is asymptotically Newton-like, but without the need of a starting value. Like Newton’s method, it converges quadratically at transversal intersections, the analogue to simple roots. It is a generalization of an algorithm developed by two of the authors for computing zeros of spline functions. Keywords: Curve intersection, spline, B-Spline, knot insertion, control polygon 6.1 Introduction The problem of finding the intersections between two parametric curves is fundamental in Geometric Modeling. The curves are commonly represented in terms of B-Splines which means that a rich theoretical and practical toolbox is available, and a good algorithm would exploit the B-spline properties in the design of the intersection algorithm. Perhaps the most important of these properties is that the coefficients of a curve represented in terms of Bsplines converge to the curve when the width of the polynomial pieces goes to zero. A particularly simple way to view this property in action is to successively divide the parameter intervals of all polynomial pieces in two parts of equal width; we will refer to this as uniform subdivision. By performing uniform subdivision sufficiently many times, the coefficients will come arbitrarily close to the spline curve. A consequence of this is that the 57 58 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES piecewise linear interpolant to neighbouring coefficients (usually referred to as the control polygon) will converge to the curve. B-splines are nonnegative and sum to one which means that linear combinations of Bsplines have the convex hull property, i.e., any point on a spline curve lies within the convex hull of the B-spline coefficients. There is also a local convex hull property: If we restrict our attention to one polynomial piece of a spline curve of degree d, then only d+1 B-splines are nonzero so the associated curve segment lies within the convex hull of the corresponding coefficients. This can be exploited when computing intersections since if the local convex hulls of the coefficients of two polynomial segments do not overlap, then it is not possible for the curve segments to intersect either. If the two curves are f and g (typically curves in the plane), parameterized by s and t, the problem is to solve the vector equation f (s) = g(t). (6.1) The most obvious approach is to apply one of the classical methods for computing roots of equations, e.g. Newton’s method. The disadvantage is that these methods will only converge if one or more starting values close to the intersection are supplied. Finding those starting values can itself be a difficult task. An alternative algorithm is to perform uniform subdivision until the control polygons come sufficiently close to the spline curves and then use the intersections between the control polygons as approximations to the intersections between the curves. This strategy can be improved by excluding the curve segments where the local convex hull property implies that no intersections can occur. In essence, this is the intersection algorithm suggested in [47]. The disadvantage of this approach is that the convergence to the actual intersections is slow since the subdivision step is based on a simple bisection of the parameter intervals. This therefore suggests an alternative method which uses subdivision to home in on the intersections and then switches to the quadratically convergent Newton’s method to compute more accurate intersections, see [75]. However, this still leaves the problem of determining exactly when it is safe to switch to Newton’s method. Bézier clipping [72] is a variation on the subdivision approach that clips away the regions of the curves where no intersections can take place in a clever way which leads to a quadratically convergent method, see [69]. The paper [57] describes a general family of methods for solving systems of polynomial equations in several variables, of which equation (6.1) is a special case. The methods are reminiscent of the classical subdivision methods for polynomials on Bernstein form, but include a preconditioning step. An interesting paper is [84] which is concerned with developing an algorithm which can guarantee that all intersections (including tangential ones) between two polynomial curves on Bernstein form can be found. The algorithm makes use of so-called separation bounds which say something about how close two curves described in terms of floating point numbers with a given number of bits can be without having an intersection. The basic algorithm is essentially a subdivision algorithm like the one in [47], but the tests for intersections are much more sophisticated. The emphasis is on guaranteeing that all intersections and their type are found; speed and convergence rate is not discussed much. 6.2. BASIC NOTATION 59 Yet another family of methods for solving intersection problems is discussed in [20] where one of the curves is rewritten (approximately) in implicit form. The algorithm that we describe and analyze in this paper is a generalization of the method presented in [55] for finding roots of spline functions. The new algorithm supplements and improves on the algorithms mentioned above in different ways: It works directly with splines expressed in terms of B-splines; it focuses on finding intersections rather than removing parts where no intersections can occur; it is based on subdivision, but is adaptive in that the points at which to subdivide are determined by a very simple strategy that leads to quadratic convergence at transversal intersections; and it requires no starting values even though it converges as quickly as Newton’s method. The algorithm may be used on its own, but it should also fit into some of the hybrid strategies mentioned above. It should be noted that the new algorithm is dependent upon the control polygons of the two curves having an intersection. In the case of non-intersecting control polygons (see Figure 6.5b) a subdivision preprocessing step will necessarily lead to intersecting control polygons near transversal intersections. After an introduction of basic notation in Section 6.2, we describe the new algorithm in Section 6.3. The properties of the algorithm are analyzed in Section 6.4, succeeded by some numerical examples in Section 6.5. A discussion of open questions is given in Section 6.6. 6.2 Basic Notation Pn A spline curve in Rm is a vector function on the form f (t) = i=1 ci Bi,d,t (t), where each control point ci lies in Rm , and {Bi,d,t }ni=1 is the collection of B-splines of degree d associated with the knot vector t = (ti )n+d+1 . We denote the set of all such curves by Sm i=1 d,t . Throughout the paper we always assume that ti < ti+d for i = 2, . . . , n (all knots except the first and the last having at most multiplicity d such that the splines are continuous and the B-splines are linearly independent) and that the first and last d + 1 knots are identical (t1 = td+1 , tn+1 = tn+d+1 ). The latter condition causes no loss of generality as every spline curve can be converted to this form. We are only interested in the part of the spline curve defined on the interval [td+1 , tn+1 ] — the rest is identically zero. In this paper we limit ourselves to spline curves in the plane, hence m = 2. The control polygon of the spline is the piecewise linear interpolant to consecutive control points. For our purposes we need a one-to-one mapping from the parameter interval [td+1 , tn+1 ] to the control polygon. We therefore associate the knot average or Greville abscissa t̄i = (ti+1 + · · · + ti+d )/d with the control point ci and define the control polygon Γf ,t of the spline curve f as Γf ,t (t) = t̄i+1 − t t − t̄i ci + ci+1 t̄i+1 − t̄i t̄i+1 − t̄i for t in the interval [t̄i , t̄i+1 ). Since t̄1 = td+1 and t̄n = tn+1 , this defines the control polygon on all of [td+1 , tn+1 ). We know from classical spline theory [52, 71] that the control polygon converges quadratically to the spline as the maximal distance between two neighbouring knots tends to zero. 60 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Another classical result which will be useful is the observation that inserting a knot into the knot vector does not change the spline itself, only its control polygon. Let τ be the knot to be inserted with τ ∈ [tµ , tµ+1 ) and let (bi )n+1 i=1 be the new control points. Then we have bi = ci for i = 1, . . . , µ − d, bi = ti+d − τ τ − ti ci + ci−1 ti+d − ti ti+d − ti for i = µ − d + 1, . . . , µ, and bi = ci−1 for i = µ + 1, . . . , n + 1, see [10]. As we mentioned above, splines represented in terms of B-splines have a local convex hull property. More precisely, for any t ∈ [tj , tj+1 ) the point f (t) is contained in the convex hull of the local control points cj−d , . . . , cj (the smallest convex set that contains all of these points). Obviously, if the unions of all local convex hulls of two spline curves are disjunct, so are the curves. 6.3 The Intersection Algorithm In [55] the close relationship between a spline and its control polygon is exploited to find the first zero of a spline function by taking the first zero of the control polygon as an approximation to the first zero of the spline. This zero is then inserted into the knot vector of the spline and the first zero of the new control polygon is used as an improved approximation. By repeating this, an iterative algorithm is obtained which turns out to converge quadratically to simple zeros. The method can be generalized in a natural way to the computation of an intersection of two parametric spline curves. We use the first intersection of the two control polygons as an approximation to an intersection of the two curves. First here means first according to some order, e.g. a lexicographical order on the parameter values. From this intersection we get a pair of parameter values, one for each curve, which are then inserted as new knots into the knot vectors of the corresponding curves. This process can be repeated with the new control polygon as illustrated in Figure 6.1, the result being a simple iterative method. The algorithm outlined above, together with a detailed analysis of convergence, is the main contribution of this paper. In itself, this is not a foolproof algorithm for computing intersections since two curves may intersect even when the control polygons do not intersect, see Figure 6.5b. In this situation we need to do some preprocessing before our algorithm will work. For this we exploit the local convex hull property. More specifically, if the curves intersect, there must be at least one pair of overlapping local convex hulls. We focus on the first such pair and insert the midpoints of the corresponding parameter intervals as new knots in the curves. By possibly repeating this procedure, we know from Theorem 6.11 that we will eventually end up with intersecting control polygons, at least in the case of a transversal intersection. The resulting Algorithm 1 is shown in Figure 6.2. Obvious variations on the preprocessing step may home in on other intersections than the first one, or even all intersections. Any iterative algorithm needs a stopping criterion; we will discuss this together with some examples in Section 6.5. 6.3. THE INTERSECTION ALGORITHM 61 a) Step 0. b) Step 1. c) Step 2. d) Step 3. Figure 6.1: By repeatedly inserting the intersection of the control polygons as new knots in the splines, we obtain a sequence of control polygons whose intersection converges to the intersection of the curves. In this example both curves have degree three. Start Control polygons intersect? No Yes No No Yes Insert first intersection of control polygons Found intersection? Two local convex hulls intersect? Insert first midpoint pair Curves do not intersect Yes Stop Figure 6.2: Algorithm 1. Intersection finding algorithm. 62 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES For transversal intersections the intersecting control polygons determine the limiting behaviour of Algorithm 1. If the algorithm is not stopped, it will generate an infinite sequence of parameter pairs which we will analyze in Section 6.4. There we show that all accumulation points of the sequence must correspond to intersections between the two spline curves. In addition, if we limit ourselves to curves with only transversal intersections, and if we always insert the first intersection between the two control polygons, we will show that the sequence converges with a quadratic convergence rate. The computation of the parameter pair (σ, τ )P corresponding to the intersection of the nf two control polygons is quite simple. Let f (s) = l=1 bl Bl,d,s (s) be the first and g(t) = Png c B (t) the second curve. Let the control polygon segments bi−1 , bi and cj−1 , cj l l,e,t l=1 contain the chosen intersection between the control polygons, given by the equation s̄i − σ σ − s̄i−1 τ − t̄j−1 t̄j − τ bi−1 + bi = cj−1 + cj . s̄i − s̄i−1 s̄i − s̄i−1 t̄j − t̄j−1 t̄j − t̄j−1 The left-hand side of this equation can be written as bi + (s̄i − σ) (bi−1 − bi ) /(s̄i − s̄i−1 ) = bi + (σ − s̄i ) ∆bi , where ∆bi = (bi − bi−1 ) / (s̄i − s̄i−1 ). We reformulate the right-hand side in a similar way and end up with the equation bi − cj = − ((σ − s̄i ) ∆bi − (τ − t̄j ) ∆cj ) . (6.2) − ∆cj is nonsingular, the solution of (6.2) is If the 2 × 2 matrix M = ∆bi σ s̄i = − M −1 bi − cj . (6.3) τ t̄j Note that the non-singularity of the matrix M is equivalent to the two segments of the two control polygons not being parallel and of nonzero length. 6.4 Analysis If the two control polygons intersect in every iteration, Algorithm 1 will yield an infinite sequence of parameterPpairs (if not stopped). We will now analyze Png the properties of this nf sequence. Let f (s) = i=1 bi Bi,d,s (s) be the first and g(t) = i=1 ci Bi,e,t (t) the second curve. Let sk and tk be the knot vectors and (σ k , τ k ) the parameter values of the chosen intersection of the control polygons in iteration k. Note that if σ k already has multiplicity d in the knot vector sk , it will not be inserted into sk . Inserting this value would not change the control polygon, it would just duplicate an existing control point. We treat τ k similarly. Before starting the analysis we introduce needed background material in subsection 6.4.1, followed by some basic results in 6.4.2. The analysis itself starts with showing that the algorithm actually finds an intersection in subsection 6.4.3. The Convergence analysis can be found in 6.4.4 and a discussion of the convergence rate in 6.4.5. 6.4. ANALYSIS 6.4.1 63 Background Material In the literature there are a number of bounds on splines in the functional case. Most of these carry over to spline curves quite easily and we will state the ones we need below. The proofs are straightforward and are left to the reader. The results in this subsection can be applied to spline curves in any dimension, hence we consider curves in Rm for a general m. We start by defining two norms for vector valued functions. Recall that the uniform norm of a continuous function defined on an interval [a, b] is defined by kf k∞ = kf k∞,[a,b] = max f (x). x∈[a,b] Analogously we define the 2, ∞-norm of a vector valued function f : [a, b] 7→ Rm as kf k2,∞ := max kf (s)k2 . s∈[a,b] Pn If f (s) = i=1 ci Bi,d,s (s) is a spline curve in Rm then we denote the 2, ∞-norm of the control points by kck2,∞ := max kci k2 . i=1,...,n These norms enable us to derive a generalization of a standard stability result for spline functions. Lemma 6.1 Every spline curve f in Sm d,s can be bounded by Kd−1 kck2,∞ ≤ kf k2,∞ ≤ kck2,∞ with the constant Kd depending only on the degree d of f . The next lemma gives an estimate of the distance between a spline and a control point. The operator D denotes differentiation from the right. Pn Lemma 6.2 Let f (s) = i=1 ci Bi,d,s (s) be a spline in Sm d,s . Then kci − f (s̄i )k2 ≤ Qd,m (si+d − si+1 )2 kD2 f k2,∞,[si+1 ,si+d ] , where the constant Qd,m depends only on d and m. Scalar versions with proofs of the Lemmas 6.1 and 6.2 can be found in Theorem 9.17 and Lemma 4.1 in [52]. The control points of the spline curve can be described by a multivariate function of the knots, ci = F(si+1 , . . . , si+d ). (6.4) The function F is affine and symmetric in each of its arguments, satisfies the diagonal property f (s) = F(s, . . . , s) and is often referred to as the blossom of f . Blossoming is 64 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES discussed in [59] and standard spline literature [23, 52] so we only treat the parts we will need later on (see also [55]).1 For the blossom of the derivative f 0 we will use the notation ∆ci = F0 (si+1 , . . . , si+d−1 ) where ∆ci denotes a control point of f 0 . Moreover, observe that the derivative of the blossom and the blossom of the derivative are related by dDi F(x1 , . . . , xd ) = F0 (x1 , . . . , xi−1 , xi+1 , . . . , xd ), (6.5) where Di F denotes the derivative with respect to xi . In other words, we have ∆ci = dDd F(si+1 , . . . , si+d ). We will also need a multivariate Taylor expansion of the blossom F. For an affine function φ(x) we have the simple Taylor expansion φ(x) = φ(z) + (x − z)φ0 (z). (6.6) As F is an affine function in each of its arguments, repeated application of (6.6) leads to F (x1 , . . . , xd ) = F (z1 , . . . , zd ) + d X (xl − zl ) Dl F (z1 , . . . , zd ) l=1 + d l−1 X X (xl − zl ) (xr − zr ) Dl,r F (z1 , . . . , zl , xl+1 , . . . , xd ) , l=2 r=1 where Dl,r F denotes the second derivative with respect to xl and xr . Finally we will need a bound for the second derivative of the blossom. Lemma 6.3 For all x1 , . . . , xd ∈ [a, b] and integers r and l with 1 ≤ r < l ≤ d the inequality KF00 . kDl,r F(x1 , . . . , xd )k2 ≤ d(d − 1) holds, where the constant KF00 depends on a, b and f but not on a specific knot vector s. Proof. Two applications of (6.5) yield Dl,r F(x1 , . . . , xd ) = 1 F00 ((x1 , . . . , xd ) \ (xl , xr )). d(d − 1) The blossom F00i of the ith polynomial piece of the second derivative is continuous and hence its norm kF00i ((x1 , . . . , xd ) \ (xl , xr ))k2 is also continuous. By the extreme value theorem the norm therefore achieves its maximum and minimum over the interval [a, b]. Thus kF00i k2 can be bounded by some constant kF00i (x1 , . . . , xd )k2 ≤ KF00 for all i and xj ∈ [a, b] with j = 1, . . . , d. 2 1 Note that the blossom is only defined for polynomials. However, the blossoms of two polynomials that are linked with a certain continuity will agree when they are evaluated at the knots used for the construction of the B-splines, as in (6.4). 6.4. ANALYSIS 6.4.2 65 Basic Results After stating the background material we will now cover some basic results which can be applied more generally. Some of the results are well known and just restated for convenience whereas others extend existing ones to provide more appropriate tools for the analysis. Again the results can be applied to spline curves in any space dimension. First, we will some simple properties of the control polygon. Consider the derivaPnneed f tive Df (s) = i=2 ∆bi Bi,d−1,t (s) of f whose B-spline coefficients are given by ∆bi = (bi − bi−1 ) / (s̄i − s̄i−1 ). Lemma 6.4 The norm of the derivative of the control polygon Γf ,s can be bounded by kDΓf ,s k2,∞ = k∆bk2,∞ ≤ Kd−1 kDf k2,∞ , where Kd−1 is a constant depending only on d and ∆b is the vector of control points of Df . Proof. For s ∈ [s̄i , s̄i+1 ) we have DΓf ,s (s) = (bi+1 − bi ) / (s̄i+1 − s̄i ) = ∆bi+1 . But this means that kDΓf ,s (s)k2 = k∆bi+1 k2 and kDΓf ,s k2,∞ = k∆bk2,∞ . The inequality then follows from Lemma 6.1. 2 The next lemma shows that the control polygon is Lipschitz continuous. Lemma 6.5 The distance between two points on the control polygon can be bounded by kΓf ,s (x) − Γf ,s (y)k2 ≤ Kd−1 kDf k2,∞ |y − x|. Proof. As the spline f is continuous, so is its control polygon, which leads to Zy kΓf ,s (x) − Γf ,s (y)k2 ≤ kDΓf ,s (s)k2 ds ≤ Kd−1 kDf k2,∞ |y − x|. x 2 We will need a generalization of Lemma 6.2 to a situation where the parameter interval is arbitrary. We first consider the function case. Pnf bi Bi,d,s (s) be a spline function, let [α, β] be a parameter Lemma 6.6 Let f (s) = i=1 interval that contains at least d knots from s and set δ = β − α. Then the distance between the control polygon and the spline in the interval [α, β] can be bounded by kf − Γf,s k∞,[α,β] ≤ R2 δ 2 kD2 f k∞ where the constant R2 only depends on d. (6.7) 66 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Proof. Let the d knots sζ+1 , . . . , sζ+d be in [α, β]. Initially we let s be any value in [s1 , snf ]. In [60] the general bound |f (s) − Γf,s (s)| ≤ |ϕ(s) − Γϕ,s (s)| k∆2 bk∞ , (6.8) with ϕ(s) = s2 /2 was established where ∆2 bi are the coefficients of the second derivative D2 f (s) and k∆2 bk∞ = maxi |∆2 bi |. Hence it follows from Lemma 6.1 that k∆2 bk∞ ≤ Kd−2 kD2 f k∞ . (6.9) complete the proof we only need to bound the distance between the spline ϕ(s) = PnTo f 2 i=1 qi Bi,d,s (s) = s /2 and its control polygon, where qi = i+d i+d X X 1 s̄2 %2 %2 sj sk = i − i = ϕ(s̄i ) − i d(d − 1) j=i+1 2 2d 2d (6.10) k=j+1 Pd 2 00 2 and %2i = j=1 (si+j − s̄i ) /(d − 1). Observe that ϕ (s) = 1 and ∆ qi = 1 for all i which means that ϕ(s) and Γf,s (s) are convex. Moreover, we see from the right-most expression in (6.10) that qi ≤ ϕ(s̄i ). Combining this with the fact that ϕ(s) (locally) is contained in the convex hull of the control points leads to Γϕ,s (s) ≤ ϕ(s). Let us now consider the line h(s) through qζ and qζ+1 , h(s) = qζ + (s − s̄ζ ) qζ+1 − qζ = qζ + (s − s̄ζ )∆qζ+1 , s̄ζ+1 − s̄ζ Pζ+d where ∆qζ+1 = k=ζ+2 sk /(d − 1) is a coefficient of the derivative ϕ0 (s) = s. We clearly have h(s̄ζ ) = qζ and h(s̄ζ+1 ) = qζ+1 . Since ϕ(s) is a convex spline function, it cannot interpolate two consecutive control points. In other words, either h(s̄ζ ) = qζ < ϕ(s̄ζ ) or h(s̄ζ+1 ) = qζ+1 < ϕ(s̄ζ+1 ) or both inequalities are true. In addition it follows from the convexity of the control polygon that either h ≤ Γϕ,s or h ≥ Γϕ,s . Hence both ϕ and Γϕ,s lie in the area above h(s), from which we conclude that h(s) ≤ Γϕ,s (s) ≤ ϕ(s) and |ϕ(s) − Γϕ,s (s)| ≤ ϕ(s) − h(s). (6.11) The quadratic function ϕ(s) = s2 /2 can be described completely by its second order Taylor expansion around s̄ζ given by ϕ(s) = ϕ(s̄ζ ) + (s − s̄ζ )s̄ζ + (s − s̄ζ )2 /2. Together with the fact that both s̄ζ and ∆qζ+1 lie in the interval [α, β], this yields ϕ(s) − h(s) = |ϕ(s) − h(s)| ≤ |ϕ(s̄ζ ) − qζ | + |(s − s̄ζ ) (s̄ζ − ∆qζ+1 )| + ≤ R3 δ 2 + |s − s̄ζ | δ + (s − s̄ζ )2 2 (s − s̄ζ )2 2 where the constant R3 depends only on d and comes from the scalar version of Lemma 6.2. By restricting s to the interval [α, β] we end up with |ϕ(s) − h(s)| ≤ R̃2 δ 2 . Combining this with (6.8), (6.9) and (6.11), we are led to the required inequality. 2 6.4. ANALYSIS 67 Lemma 6.6 has a natural generalization to parametric curves. Corollary 6.7 Let f ∈ Sm d,s be a spline curve, let [α, β] be a parameter interval for f that contains at least d knots from s and set δ = β − α. On the interval [α, β] the distance between the control polygon and the spline is bounded by kf − Γf ,s k2,∞,[α,β] ≤ R4 δ 2 kD2 f k2,∞ , (6.12) where the constant R4 depends only on d and m. Our main tool in the proof of convergence is an estimate of the distance between the control polygon and a tangent to a spline curve. This estimate is a simple consequence of Corollary 6.7. A tangent is well defined at a regular point of f , a point where the derivative is continuous and nonzero, i.e., where D− f (s) = D+ f (s) 6= 0. Here D− denotes one-sided differentiation from the left and D+ = D one-sided differentiation from the right. Let f (ρ) be a regular point. Then the tangent line Tρ is given by Tρ (s) := f (ρ) + (s − ρ)Df (ρ). Lemma 6.8 Let f (ρ) be a regular point on f ∈ Sm d,s , let also δ be a positive number such 2 that f is C in [ρ − δ, ρ) ∪ (ρ, ρ + δ], and suppose that the interval [ρ − δ, ρ + δ] contains at least d knots. Then for u ∈ [−δ, δ] kΓf ,s (ρ + u) − Tρ (ρ + u)k2 ≤ δ 2 R5,f , where R5,f is a constant that depends on f but not on s. Proof. From a Taylor expansion of fl around ρ we obtain 2 2 fl (ρ + u) − fl (ρ) − uDfl (ρ) ≤ u |D2 fl |∞ ≤ u kD2 f k2,∞ 2 2 for any u ∈ [−δ, δ]. This is easily extended to the inequality 2√ f (ρ + u) − Tρ (ρ + u) ≤ u mkD2 f k2,∞ , 2 2 which can be combined with Corollary 6.7 to give the required result Γf ,s (ρ + u) − Tρ (ρ + u) ≤ Γf ,s (ρ + u) − f (ρ + u) + 2 2 2√ u f (ρ + u) − Tρ (ρ + u) ≤ R4 4δ 2 + m kD2 f k2,∞ ≤ δ 2 R5,f , 2 2 √ with R5,f = 4R4 + ( m/2) kD2 f k2,∞ . 2 68 6.4.3 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Accumulation Points We are now ready to start the analysis of the infinite sequence of parameter values {σ k , τ k } generated by Algorithm 1, i.e., the parameter pairs of successive intersections of control polygons. By the Bolzano-Weierstrass theorem this sequence must necessarily have at least one accumulation point since it is bounded. With the aid of Lemma 6.5 we can show that an accumulation point is an intersection point between the two curves. Theorem 6.9 If the pair (σ, τ ) is an accumulation point of the infinite sequence {σ k , τ k }, then f (σ) = g(τ ). Proof. Let be any positive, real number. As (σ, τ ) is an accumulation point, there must be positive integers k, i and j such that ski+1 , . . . , ski+d and σ k lie in the open interval (σ − 21 , σ + 21 ) and tkj+1 , . . . , tkj+e and τ k lie in the open interval (τ − 21 , τ + 21 ). Since (σ k , τ k ) is defined by the relation Γf ,sk (σ k ) = Γg,tk (τ k ), we can bound the distance between f (σ) and g(τ ) by kf (σ) − g(τ )k2 ≤ Γf ,sk (σ k ) − f (σ)2 + Γg,tk (τ k ) − g(τ )2 . The distance between f (σ) and Γf ,sk (σ k ) can be bounded using Lemma 6.2, Lemma 6.5 and the mean value theorem for f ; Γf ,sk (σ k ) − f (σ) ≤ Γf ,sk (σ k ) − Γf ,sk (s̄ki ) + Γf ,sk (s̄ki ) − f (s̄ki ) 2 2 2 + f (s̄ki ) − f (σ)2 ≤ (Kd−1 + 1)kDf k2,∞ + Qd,m D2 f 2,∞ 2 , where the constants Qd,m and Kd−1 depend only on d and m, but not on sk . In the same way we obtain the inequality Γg,tk (τ k ) − g(τ ) ≤ (Ke−1 + 1)kDgk2,∞ + Qe,m D2 g 2 . 2 2,∞ Combining these two bounds leads to kf (σ) − g(τ )k2 ≤ R6 + R7 2 where R6 and R7 are constants. Since this bound holds for any positive value of we must have f (σ) = g(τ ). 2 6.4.4 Convergence At transversal intersections one or both of the curves may have discontinuous tangents at the intersection which may complicate the situation. We will consider this later, for now we only consider transversal intersections at regular points. Definition 6.10 An intersection between two parametric curves f and g at the regular points f (σ) = g(τ ) is said to be a transversal intersection if det Df (σ) Dg(τ ) 6= 0. 6.4. ANALYSIS 69 g Tf ,sa Γg Uf Ug f θ θ distf + ,g distg− ,f Of (1 ) Tg,ta Og (−1 ) Γf Figure 6.3: The situation around a transversal intersection. The variation diminishing property of splines guarantees that the control polygon of a spline must always have a zero near a zero of a spline function. We need an analogous result for intersections which guarantees that the control polygons of two spline curves intersect near an intersection of the two curves. Lemma 6.8 will help us establish this kind of result. Theorem 6.11 Suppose that the two spline curves f ∈ S2d,s and g ∈ S2e,t have a transversal intersection at (σ, τ ). Then the two control polygons will intersect at least once in the intervals (σ − 1 , σ + 1 ) and (τ − 1 , τ + 1 ) provided the positive number 1 satisfies the two conditions: 1. The curve f has at least d knots in the interval [σ − 1 , σ + 1 ] and g has at least e knots in [τ − 1 , τ + 1 ]. 2. The number 1 is smaller than a number 2 that only depends on f and g. The two conditions provide lower and upper bounds on 1 . The first condition which requires that we have enough knots in the intervals [σ − 1 , σ + 1 ] and [τ − 1 , τ + 1 ], gives a lower bound λ on 1 , while the second condition gives the upper bound 2 . It may well happen that λ > 2 in which case the control polygons may not intersect even though the two curves intersect. On the other hand, the lower bound depends on the knots while the upper bound is independent of the knots. This means that by inserting knots sufficiently near the intersection, we can always decrease λ so that it becomes smaller than 2 . Proof. The idea behind the proof is illustrated in Figure 6.3. Since f and g are piecewise polynomials, there exists a δ > 0 such that f is C 2 in [σ − δ, σ) ∪ (σ, σ + δ] and g is C 2 in [τ − δ, τ ) ∪ (τ, τ + δ]. Initially, we assume that we can satisfy both conditions by letting 1 satisfy 0 < 1 < δ, and we let i and j be such that si+1 , . . . , si+d ∈ [σ − 1 , σ + 1 ] and tj+1 , . . . , tj+e ∈ [τ − 1 , τ + 1 ]. According to Lemma 6.8 this means that for all 70 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES u ∈ [−1 , 1 ] we have Γf (σ + u) − Tf ,σ (σ + u) ≤ 21 R5,f ≤ 21 R8 , 2 Γg (τ + u) − Tg,τ (τ + u) ≤ 21 R5,g ≤ 21 R8 , 2 (6.13) (6.14) where R8 := max(R5,f , R5,g ). For each u ∈ [−1 , 1 ] we let Of (u) denote the circle with center at Tf ,σ (σ + u) and radius 21 R8 , and we let U f denote the union of these circles as u varies in the interval [−1 , 1 ], U f = ∪u∈[−1 ,1 ] Of (u). The set U g is generated by similar circles centered at Tg,τ (τ + u). To reach the desired conclusion, we assume that 1 is so small that the two circles Of (−1 ) and Of (1 ) do not intersect U g and the two circles Og (−1 ) and Og (1 ) do not intersect U f . We will later deduce conditions that ensure that such an 1 exists. We know from (6.13) and (6.14) that Γf (σ + u) ∈ U f and that Γg (τ + u) ∈ U g for all u ∈ [−1 , 1 ], and that U f and U g intersect since they share the circle centered at the intersection point. Because we have a transversal intersection, the two circles Of (±1 ) lie on opposite sides of U g and therefore the points Γf (σ ± 1 ) do not lie in U g , but on opposite sides of it. Similarly the two points Γg (τ ± 1 ) do not lie in the set U f , but on opposite sides of it. Hence the control polygons must intersect at least once in the intersection of U f and U g . We are now left with the task to determine an upper bound 2 on 1 which ensures that the two circles Of (±1 ) do not intersect U g and the two circles Og (±1 ) do not intersect U f . Let 0 < θ ≤ 90◦ be the positive angle between Tf ,σ and Tg,τ . Let us consider distf + ,g , the distance of Tf ,σ (σ + 1 ) to Tg,τ , and distg+ ,f , the distance of Tg,τ (τ + 1 ) to Tf ,σ . We then have sin θ = distf + ,g 1 kDf (σ)k2 and sin θ = distg+ ,f 1 kDg(τ )k2 which leads to distf + ,g = 1 kDf (σ)k2 sin θ, distg+ ,f = 1 kDg(τ )k2 sin θ. If we define the constant R9 := min (kDf (σ)k2 , kDg(τ )k2 ) sin θ, we have distf + ,g ≥ 1 R9 and distg+ ,f ≥ 1 R9 . Similarly we get the same bound for the other distances distf − ,g and distg− ,f . We therefore need to make sure that 1 is so small that the radius of the circles is less than half the minimum distance (21 R8 < 12 1 R9 ). This gives the bound R9 0 < 1 < min( 2R , δ) where R8 , R9 and δ all depend on f and g, but not on the knot 8 R9 vectors s or t. We can therefore set 2 := min( 2R , δ) which completes the proof. 2 8 Corollary 6.12 Suppose that the two spline curves f ∈ S2d,s and g ∈ S2e,t have a transversal intersection at (σ, τ ), and suppose that this is also an accumulation point of the sequence {σ k , τ k }. Given a sufficiently small 1 > 0 there exists an N > 0 such that the control polygons intersect for all k > N somewhere in the intervals [σ − 1 , σ + 1 ] and [τ − 1 , τ + 1 ]. 6.4. ANALYSIS 71 T+ g,ta θf− T− f ,sa θg+ θg− T− g,ta T+ f ,sa Figure 6.4: A generalized transversal intersection. Proof. Since (σ, τ ) is an accumulation point there exists an N > 0 such that for all k > N the curve f has at least d knots in [σ − 1 , σ + 1 ] and g at least e knots in [τ − 1 , τ + 1 ]. According to Theorem 6.11 there is an 2 > 0 with the property that the control polygons will intersect in the given intervals for all k > N provided 0 < 1 < 2 . 2 Up to now the derivative at a regular point was assumed to be continuous. This was merely for convenience, and in the case of splines it is straightforward to generalize the concept of regular points to the situation where the derivative is discontinuous. We call a point f (s) a generalized regular point if kD− f (s)k2 6= 0 and kD+ f (s)k2 6= 0. At a generalized regular point of f we then denote the left tangent by T− ρ and the right tangent by T+ , ρ − T− ρ (s) := f (ρ) + (s − ρ)D f (ρ), + T+ ρ (s) := f (ρ) + (s − ρ)D f (ρ). A generalized transversal intersection is a transversal intersection at a generalized regular point. Formally it can be defined as follows. Let the two spline curves f ∈ S2d,s and g ∈ S2e,t intersect at (σ, τ ) and let f (σ) and g(τ ) be generalized regular points. Let also − + ± θf− be the counter clockwise angle between T+ f ,σ and Tf ,σ starting at Tf ,σ and let θg be + + ± the counter clockwise angles between Tf ,σ and Tg,τ again starting at Tf ,σ , see Figure 6.4. Now let θ̄g := max(θg+ , θg− ) and θg := min(θg+ , θg− ). The intersection between the two spline curves f and g at (σ, τ ) is called a generalized transversal intersection if 0◦ < θg < θf− < θ̄g < 360◦ , i.e. when turning counter clockwise around the intersection starting at T+ f ,σ one first en− counters one of the tangents to g(τ ), then Tf ,σ and finally the other tangent to g(τ ). Lemma 6.8 can be applied as it is to the left and right tangents of each curve. The proof of Theorem 6.11 will essentially still be valid. The only difference is in the estimate of ± the upper bound on 1 . Here the distances of the points T± f ,σ (σ ± 1 ) and Tg,τ (τ ± 1 ) to both tangents of the other curve have to be considered. This yields the analogous bounds distf ± ,g± ≥ 1 R10 and distg± ,f ± ≥ 1 R10 where R10 := min kD± f (σ)k2 , kD± g(τ )k2 sin(θ), with θ is the smallest angle between the four tangent lines. With this we can restate Corollary 6.12 for generalized transversal intersections. 72 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Corollary 6.13 Suppose that the two spline curves f ∈ S2d,s and g ∈ S2e,t have a generalized transversal intersection at (σ, τ ) and suppose that this is also an accumulation point of the sequence {σ k , τ k }. Given a sufficiently small > 0 there exists an N > 0 such that the control polygons intersect for all k > N somewhere in the intervals [σ − , σ + ] and [τ − , τ + ]. Corollary 6.13 enables us to show that if the curves only have generalized transversal intersections, the sequence {σ k , τ k } will have only one accumulation point and thus will converge. Lemma 6.14 Let the curves f ∈ S2d,s and g ∈ S2e,t have only generalized transversal intersections. Then the infinite sequence {σ k , τ k } converges. Proof. Suppose that there is more than one accumulation point. Let (σa , τa ) and (σb , τb ) be two neighbouring accumulation points and let < min(|σb − σa |, |τb − τa |)/2 be small enough for the conclusion of Corollary 6.13 to hold. Then there exists an N > 0 such the control polygons intersect in the interval around (σa , τa ) and in the interval around (σb , τb ) for all k > N . The lexicographical order now ensures that one intersection is always smaller than the other and therefore for all k > N an intersection of the control polygons corresponding to the same curve intersection is inserted. But then the sequence cannot have more than one accumulation point, i.e. the sequence converges. 2 6.4.5 Convergence Rate We now know that our intersection algorithm converges; it remains to examine the convergence rate. Let (σ, τ ) be an accumulation point of the sequence {σ k , τ k } and let the control polygon segments bkik −1 , bkik and ckjk −1 , ckjk contain the chosen intersection between the control polygons at iteration k. In this setting Equation (6.3) becomes k k s̄ik σ = − Mk−1 Fik − Gjk , Mk = dDd Fik −eDe Gjk , t̄kjk τk (6.15) where F and G are the blossoms of f and g and Fik = F(skik +1 , . . . , skik +d ), Dd Fik = Dd F(skik +1 , . . . , skik +d ) with Gjk and De Gjk defined similarly. It is apparent that Algorithm 1 resembles a discrete version of Newton’s method, so we should expect a quadratic convergence rate. We will confirm that the algorithm converges quadratically at transversal intersections. This is done with the help of two lemmas, the first of which reformulates (6.15) and the second shows convergence of the inner knots skik +1 , . . . , skik +d−1 and tkjk +1 , . . . , tkjk +e−1 to the respective parameter values at the intersection. Lemma 6.15 The error vector (σ k , τ k )T − (σ, τ )T satisfies the equation k σ −σ = Mk−1 vk τk − τ 6.4. ANALYSIS 73 where vk = d−1 X l−1 X σ − skik +l σ − skik +r Dl,r F skik +1 , . . . , skik +l , σ, . . . , σ − τ − tkjk +r Dl,r G tkjk +1 , . . . , tkjk +l , τ, . . . , τ + l=2 r=1 e−1 X l−1 X τ − tkjk +l l=2 r=1 d−1 X (σ − skik +l )2 Dl,d Fik − l=1 e−1 X (τ − tkjk +l )2 Dl,e Gjk . l=1 We start by subtracting (σ, τ )T from both sides of (6.15), d P 1 k k (s − σ) ik +l d σ −σ l=1 − Fik − Gjk . = Mk−1 Mk k e P τ −τ 1 (tkjk +l − τ ) e l=1 {z } | Proof. (6.16) vk We then add and subtract vector vk in (6.16). Since d P l=1 Pd l=1 σ − skik +l Dl Fik − Pe l=1 τ − tkjk +l Dl Gjk from the d d−1 P P σ − skik +l Dl Fik − (σ − skik +l )Dd Fik = (σ − skik +l )(skik +d − skik +l )Dl,d Fik , l=1 l=1 the vector vk may be written as vk = −Fik − d X d−1 X σ − skik +l Dl Fik + (σ − skik +l )(skik +d − skik +l )Dl,d Fik + l=1 Gjk + e X l=1 τ − tkjk +l Dl Gjk − l=1 e−1 X (τ − tkjk +l )(tkjk +d − tkjk +l )Dl,e Gjk . (6.17) l=1 We next make use of the fact that f (σ) − g(τ ) = 0 and perform Taylor expansions of the blossoms F and G, 0 = f (σ) − g(τ ) = F (σ, . . . , σ) − G (τ, . . . , τ ) = Fik − Gjk + d X e X σ − skik +l Dl Fik − τ − tkjk +l Dl Gjk l=1 + d l−1 X X l=1 σ − skik +l σ − skik +r Dl,r F skik +1 , . . . , skik +l , σ, . . . , σ τ − tkjk +r Dl,r G tkjk +1 , . . . , tkjk +l , τ, . . . , τ . l=2 r=1 − e l−1 X X l=2 r=1 τ − tkjk +l 74 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Using this we can replace the first, second, fourth and fifth term in (6.17) by the quadratic error term, which yields the required form of vk . 2 The second lemma shows that the inner knots converge. Lemma 6.16 For any > 0 there exists an N > 0 such that for all k > N |skik +l − σ| < , l = 1, . . . , d − 1, |tkjk +r − τ | < , r = 1, . . . , e − 1. Proof. Let λ = /2d. Since the sequence σ k , τ k converges to (σ, τ ), there exists an Nf > 0 such that for all k > Nf there is an integer ξ such that skξ+1 , . . . , skξ+d and σ k lie in the interval J = [σ − λ, σ + λ]. The number s̄kξ must clearly also lie in this interval. There are two possibilities: either ξ ≤ ik − 1 or ξ ≥ ik . Let us consider the first situation. Then we have s̄kξ ≤ s̄kik −1 ≤ σ k , hence s̄kik −1 ∈ J and skξ+1 ≤ skik ≤ s̄kik −1 . But then skik ∈ J which provides an upper bound for skik +d−1 . From σ − λ ≤ skik ≤ . . . ≤ skik +d−2 and s̄kik −1 ≤ σ + λ we get skik +d−1 ≤ σ + (2d − 1)λ < σ + and therefore we have skik , . . . , skik +d−1 ∈ [σ − λ, σ + ). Consider next the second case ξ ≥ ik . As in the first case this leads to σ k ≤ s̄kik ≤ s̄kξ and s̄kik ≤ skik +d ≤ skξ+d . But then we have s̄kik , skik +d ∈ J and skik +1 ≥ σ − (2d − 1)λ > σ − , so we must have skik +1 , . . . , skik +d ∈ (σ − , σ + λ]. If we combine both cases we obtain skik +1 , . . . , skik +d−1 ∈ (σ − , σ + ) for all k > Nf . The proof that tkjk +1 , . . . , tkjk +e−1 ∈ (τ − , τ + ) for all k > Ng is similar. Defining N = max(Nf , Ng ) finishes the proof. 2 We now have the tools required to establish the quadratic convergence rate of the intersection algorithm. Theorem 6.17 Suppose that the two curves f and g have a transversal intersection at (σ, τ ). Then there is a constant R11 that depends on f and g but not on sk and tk so that for sufficiently large k 2 k max |σ − skik +l | σ −σ l=1,...,d−1 . (6.18) k τ k − τ ≤ R11 max |τ − t | jk +l 2 l=1,...,e−1 0 2 0 Proof. At a transversal intersection f (σ) and g (τ ) are linearly independent. Since the two sets of inner knots converge to σ and τ respectively, there must be an N such that the matrix Mk defined in (6.15) is nonsingular for all k > N and 0 < kMk−1 k2 ≤ R12 for some positive constant R12 independent of sk and tk . Let k be an integer greater than N and set ςk = max l=1,...,d−1 |σ − skik +l |, δk = max l=1,...,e−1 |τ − tkjk +l |. (6.19) We know from Lemma 6.15 that k(σ k − σ, τ k − τ )T k2 = kMk−1 vk k2 ≤ R12 kvk k2 . Using (6.19) and Lemma 6.3 we obtain ςk 2 kvk k2 ≤ ςk2 KF00 + δk2 KG00 ≤ R13 (ςk2 + δk2 ) = R13 δk 2 6.5. EXAMPLES 75 with R13 = max(KF00 , KG00 ). Defining R11 = R12 R13 yields (6.18). 2 According to Lemma 6.16 the inner knots converge to the intersection (σ, τ ). Theorem 6.17 therefore shows that {σ k , τ k } converges quadratically to the intersection. Our practical experience is that the sequence converges quadratically in every max(d − 1, e − 1)-step. 6.5 Examples In the last section we showed convergence and a quadratic convergence rate for Algorithm 1. We will now consider some examples that illustrate the behaviour of the algorithm and compare it to Bézier clipping [72] and the uniform subdivision approach. We have chosen to compare with Bézier clipping as this method also has quadratic convergence as recently proved in [69], and we compare with the subdivision strategy as it is widely known. Let us first give a quick review of Bézier clipping. This method only works for Bézier curves, hence the spline curves need to be converted to composite Bézier representation first. In short, Bézier clipping cuts away regions where one Bézier curve is guaranteed to not intersect the other. To do this it alternately clips one curve against a ’fat line’ of the other. Let L denote the line determined by the end control points b0 , bd of f and let distL (x) be the signed distance of x to L. Then the fat line along L is defined by {x | dmin ≤ distL (x) ≤ dmax } where dmin = min0≤i≤d (distL (bi )) and dmax = max0≤i≤d (distL (bi )). To clip g against the fat line along L, the distance function distL (g) is computed. Observe that this distance function can naturally be represented as a Bézier function. Finally the convex hull property of Bézier functions is used to cut away regions where the distance function is guaranteed to be smaller than dmin or greater than dmax . If the resulting interval is not small enough according to some heuristic, the curve with the larger parameter interval is subdivided and Bézier clipping is continued with both halves. For more information see [69, 72]. For the subdivision algorithm we simply maintain a stack of curve pairs which may intersect, similarly to the generic algorithm described in [84]. As long as the stack is not empty and no intersection is found, the first pair of curves is removed from the stack and is processed. If the convex hulls of the two curves overlap and the parameter intervals of the curves are small enough, an intersection is assumed at the center of both intervals. If one parameter interval is not small enough, the curve with the larger interval is subdivided in the middle and both combinations are put back on the stack. In Algorithm 1 we use the density of the knots to determine convergence. Using the notation of Lemma 6.16, it is shown in [56] that for σ k ∈ [s̄ki−1 , s̄ki ) the distance between a spline and its control polygon can be bounded by kf (σ k ) − Γf ,s (σ k )k2 = O(h2 ), with h := max(σ k , ski+d−1 ) − min(σ k , ski+1 ) for small enough h. From Lemma 6.16 we know that the knots ski+1 , . . . , ski+d−1 as well as σ k converge to an accumulation point, hence h goes to zero. If now h < for both curves, where is a given tolerance, an intersection at the current parameter pair is assumed. 76 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Iteration 0 1 2 3 4 5 6 7 34 35 36 37 38 39 EICP 1.2e-02 3.7e-05 3.4e-10 6.2e-17 Example 1 EBC 3.1e-01 2.4e-01 3.5e-01 7.5e-02 7.6e-04 4.0e-08 1.4e-15 ESU B 3.4e-01 2.0e-01 8.7e-02 1.7e-02 1.1e-02 3.5e-03 2.7e-03 1.1e-03 3.3e-13 5.9e-14 5.4e-14 1.6e-14 6.8e-15 3.2e-15 EICP 2.4e-01 2.6e-02 9.5e-04 3.7e-07 1.7e-13 4.7e-16 Example 2 EBC 2.5e-01 8.5e-02 1.2e-03 1.5e-04 1.9e-08 5.0e-16 ESU B 2.6e-01 1.9e-01 1.2e-01 7.8e-02 2.6e-02 1.7e-02 6.3e-03 1.0e-03 2.6e-14 4.9e-15 8.0e-16 Table 6.1: Error k(σ k , τ k )T − (σ, τ )T k2 in iteration k for Algorithm 1 (EICP ), Bézier Clipping (EBC ) and recursive subdivision (ESU B ) for Examples 1 and 2. The effect of inserting the intersection of the control polygons into the spline curves is demonstrated in Figure 6.1. It is clearly visible how the intersections of the new control polygons approach the intersection of the spline curves. To compare the actual errors k(σ k , τ k )T − (σ, τ )T k2 in each iteration between the different methods, we first have to define what we consider to be an iteration. Bézier clipping and Algorithm 1 are both quadratically convergent when a suitable number of low-level operations are combined into one. We therefore define one iteration to be this number of low-level operations. Hence for Algorithm 1 one iteration consists of max(d − 1, e − 1) knot insertions in each curve, whether the knot pairs come from intersecting control polygons or overlapping local convex hulls as in the limit we will only have intersecting control polygons. Similarly, in [69] it is shown that in the limit Bézier clipping will lead to pure clipping steps applied alternately to both curves. Hence, we consider two steps as one iteration, where one step is either a clipping or a subdivision step. The uniform subdivision method only exhibits linear convergence, so it is not possible to obtain a quadratically convergent method by combining a fixed number of low-level operations into one iteration. In the limit Bézier clipping will split each curve two times in each iteration, leading to four splitting operations in one iteration. As one splitting is similar to one subdivision step in the subdivision algorithm, we consider four such steps to be one iteration for this third method. Note that the last iteration in each method may consist of fewer steps, as the intersection can be located before another complete iteration is finished. We will now compare the behaviour of the three methods for the Examples 1 to 6 shown 6.5. EXAMPLES 77 a) Example 1, d = 3, e = 3. b) Example 2, d = 3, e = 3. c) Example 3, d = 4, e = 5. d) Example 4, d = 8, e = 5. e) Example 5, d = 5, e = 7. f) Example 6, d = 3, e = 3. Figure 6.5: Examples. 78 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Example 3 EBC 6.4e-00 6.2e-00 6.2e-00 5.0e-00 4.3e-00 4.6e-00 5.5e-00 ESU B 4.9e-00 6.4e-00 5.7e-00 4.0e-00 3.1e-00 1.7e-00 1.4e-00 16 17 18 19 20 2.4e-00 3.4e-00 4.7e-00 2.8e-00 1.4e-00 8.3e-04 4.6e-04 1.2e-04 5.8e-05 1.2e-05 28 29 30 31 32 2.5e-02 5.7e-05 2.6e-10 0.0e-17 2.3e-08 6.4e-09 1.4e-09 4.0e-10 1.6e-10 1.2e-11 6.5e-11 1.2e-11 5.3e-12 1.7e-12 6.8e-12 3.8e-12 1.4e-12 3.2e-13 1.1e-13 3.0e-14 6.4e-15 3.8e-15 1.8e-15 1.9e-14 2.4e-15 4.3e-15 2.0e-15 Iteration 0 1 2 3 4 5 6 36 37 38 39 40 41 42 43 44 EICP 6.4e-00 2.3e-01 2.3e-03 8.8e-07 9.8e-14 0.0e-17 EICP 1.3e-00 6.1e-01 3.7e-02 1.6e-05 1.5e-11 8.9e-16 Example 4 EBC 2.1e-00 1.6e-00 1.1e-00 2.0e-00 1.5e-00 8.3e-01 1.6e-00 2.2e-04 5.7e-08 5.7e-15 1.5e-15 ESU B 1.9e-00 1.8e-00 6.2e-01 5.0e-01 1.6e-02 5.6e-02 3.0e-02 8.8e-06 1.5e-06 8.3e-07 1.9e-07 8.9e-08 Table 6.2: Error k(σ k , τ k )T − (σ, τ )T k2 in iteration k for Algorithm 1 (EICP ), Bézier Clipping (EBC ) and recursive subdivision (ESU B ) for Examples 3 and 4. 6.5. EXAMPLES Iteration 0 1 2 3 4 5 6 7 8 9 10 11 12 79 EICP 3.3e-03 1.9e-06 5.2e-13 5.7e-16 Example 5 EBC 4.5e-01 2.0e-01 9.8e-02 2.6e-02 4.6e-04 2.6e-08 1.0e-16 34 35 36 37 ESU B 5.5e-01 2.1e-01 8.9e-02 3.3e-02 9.1e-03 2.2e-03 1.7e-03 1.4e-03 6.1e-04 2.1e-04 9.2e-05 1.8e-05 1.0e-05 EICP 3.5e-02 2.5e-04 1.2e-07 9.8e-15 3.6e-16 Example 6 EBC 1.9e-01 1.2e-01 8.3e-02 2.9e-02 1.5e-01 1.5e-01 6.4e-03 2.9e-03 7.8e-05 5.0e-08 2.0e-14 5.6e-17 1.5e-14 4.5e-15 4.0e-15 ESU B 4.4e-01 3.4e-01 4.6e-01 3.5e-01 3.5e-01 3.6e-01 3.6e-01 3.9e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 3.6e-01 85 86 87 2.0e-14 7.5e-16 3.0e-15 Table 6.3: Error k(σ k , τ k )T − (σ, τ )T k2 in iteration k for Algorithm 1 (EICP ), Bézier Clipping (EBC ) and recursive subdivision (ESU B ) for Examples 5 and 6. Example Algorithm 1, comp. Algorithm 1, ins. Bézier clipping, comp. Bézier clipping, ins. Subdivision, comp. Subdivision, ins. 1 14 14 23(0) 69(0) 94 282 2 21 21 22(0) 66(0) 97 291 3 42 42 56(14) 240(50) 114 513 4 76 76 43(7) 271(37) 104 672 5 38 38 32(6) 188(26) 99 591 6 18 18 41(4) 119(8) 194 582 Table 6.4: Comparison of number of knots computed(comp.) and inserted(ins.) for the different methods. For Bézier clipping the conversion costs are included and in addition shown in parentheses. 80 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES in Figure 6.5. The examples with an odd number have intersecting control polygons, the ones with an even number do not. The first two examples show two simple polynomial curves with one intersection. The errors k(σ k , τ k )T − (σ, τ )T k2 after each iteration for those two examples are listed in Table 6.1. In Example 1, Algorithm 1 can make direct use of the intersecting control polygons and therefore reaches the intersection more quickly than Bézier clipping, which first has to make sure that no intersections are missed. At this point it should be noted that Algorithm 1 does not exclude any parameter interval as nonintersecting when using control polygon intersections. If the aim is to find all intersections, a final local convex hull check is necessary in order to make sure that no intersections have been missed. This is in contrast to Bézier clipping which is based on excluding parameter intervals where no intersections can occur. This means that Bézier clipping automatically looks for all intersections, which may, at least partly, explain why it needs more iterations than Algorithm 1. Example 2 illustrates that the local convex hull approach will lead relatively quickly to intersecting control polygons and from this point onwards a quadratic convergence rate is observable. It is also clearly visible that both Algorithm 1 and Bézier clipping as quadratic methods are superior to the subdivision strategy, which only gives linear convergence. Examples 3 and 4 are designed to be more difficult for Algorithm 1, and the errors are shown in Table 6.2. In Example 3 the control polygons have a lot of false intersections and in Example 4 many local convex hulls need to be checked before a situation with intersecting control polygons arises. Nevertheless, Algorithm 1 needs considerably fewer iterations to find the intersection than Bézier clipping. In the last two Examples we consider situations with several intersections. All three methods find the same intersection first, hence the errors listed in Table 6.3 are comparable. For Example 5 the performance is similar to Example 1. In the last example, Algorithm 1 again locates the intersection with fewer iterations than Bézier clipping. The performance of a method is not only determined by the number of iterations, but also by the amount of work done in each iteration. In order to make a valid efficiency comparison, well tuned and specialized implementations for each method are necessary. Unfortunately, we currently do not have such implementations. We compare the number of knots inserted into the curves instead. Here it is important to note that for Bézier clipping and the subdivision method each knot will be inserted several times in order to split the curve. Hence we have to differentiate between the number of knots (or parameter values) computed and the number of knots inserted. For Algorithm 1 those will be identical. For Bézier clipping we also need to include the knots needed for converting the spline representation into composite Bézier form. The resulting comparison is shown in Table 6.4, with conversion costs for Bézier clipping included and also shown in parentheses. Clearly, the number of knots inserted into the curves is minimal for Algorithm 1. For the number of computed knots the minimum varies between Bézier clipping and Algorithm 1 for the different examples. The subdivision method clearly uses both most computed and inserted knots of all three methods. 6.6. CONCLUSION AND FUTURE WORK 6.6 81 Conclusion and Future Work In this paper we have presented a new method for finding intersections of two parametric spline curves. From the analysis and examples it is clear that the resulting algorithm is a Newton-like method that achieves a quadratic convergence rate for transversal intersections without the need for a starting point. For non-transversal intersections, however, the convergence is linear. An area for future research is to develop a more efficient algorithm with higher order convergence for non-transversal intersections. When considering overlapping local convex hulls in Algorithm 1 the midpoints of the corresponding intervals are inserted. This is done for convenience as it is simple and guaranteed to lead to non-intersecting local convex hulls for non-intersecting curves. However, it is probably not the best possible choice of knots to insert. With more research one might be able to determine a better knot pair in this situation that leads to non-intersecting local convex hulls more quickly. 82 CHAPTER 6. COMPUTING INTERSECTIONS OF PLANAR SPLINE CURVES Part III Transfinite & barycentric interpolation 83 7 Pointwise radial minimization: Hermite interpolation on arbitrary domains Michael S. Floater and Christian Schulz Computer graphics forum 2008, Volume 27, Number 5, Pages 1505-1512, Special issue for Symposium on Geometric Processing Abstract In this paper we propose a new kind of Hermite interpolation on arbitrary domains, matching derivative data of arbitrary order on the boundary. The basic idea stems from an interpretation of mean value interpolation as the pointwise minimization of a radial energy function involving first derivatives of linear polynomials. We generalize this and minimize over derivatives of polynomials of arbitrary odd degree. We analyze the cubic case, which assumes first derivative boundary data and show that the minimization has a unique, infinitely smooth solution with cubic precision. We have not been able to prove that the solution satisfies the Hermite interpolation conditions but numerical examples strongly indicate that it does for a wide variety of planar domains and that it behaves nicely. Keywords: Transfinite interpolation, Hermite interpolation, mean value interpolation 7.1 Introduction Mean value interpolation has emerged as a simple and robust way to smoothly interpolate a function defined on the boundary of an arbitrary domain in Rn , and provides an alternative to solving a PDE such as the Laplace equation. This kind of interpolation started from a generalization of barycentric coordinates in the plane [25], and was later extended to general polygons [40] and to triangular meshes [28, 44]. These constructions were further 85 86 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS generalized to continuous boundaries in [44, 66]. More work on mean value coordinates and related topics can be found in [6, 26, 27, 45, 48, 50, 78]. Mean value interpolation only matches the values of a function on the boundary, not its derivatives. However, there are many applications in geometric modeling and scientific computing in which it is also desirable to match certain derivatives at the boundary, and again it is worth looking for methods that avoid solving a PDE such as the biharmonic equation. An early approach was that of Gordon and Wixom [36], which is based on averaging the values of interpolatory univariate polynomials across the domain. This method is simple conceptually but only applies to convex domains and requires computing intersections between lines and the domain boundary. A more recent approach to higher order interpolation by Langer and Seidel [49] is an extension of barycentric coordinates to incorporate derivative data given at a set of vertices. Generalized barycentric coordinates such as Wachspress, Sibson, and mean value coordinates are composed with a modifying function and then used to interpolate first order Taylor expansions at the vertices. This method is easy to compute and was applied successfully to give greater control when deforming polygonal meshes. However, even in the univariate case this method lacks cubic precision. Another recent idea, developed in [22, 13], was to build on properties of the mean value weight function, i.e., the reciprocal of the denominator in the rational expression for the interpolant, in order to construct C 1 Hermite interpolants on arbitrary domains. This method has the advantage that it reduces to cubic polynomial interpolation in the univariate case, and in R2 and R3 it can be evaluated approximately through explicit formulas for polygons and triangular meshes. However, the method does not have cubic precision in Rn for n > 1. In this paper we propose a new kind of Hermite interpolation on arbitrary domains in Rn . The method has cubic precision for C 1 boundary data for all n, and in R2 the method appears to perform very well in practice. We start by viewing mean value interpolation as the pointwise minimization of a radial energy function involving first derivatives of linear polynomials. We then generalize this to match boundary derivatives up to order k by minimizing a radial energy function involving (k + 1)-st derivatives of polynomials of degree 2k + 1. The case k = 0 is simply mean value interpolation. We analyze the cubic case, k = 1, and show that the minimization has a unique solution which has cubic precision. We cannot prove that the solution satisfies the Hermite interpolation conditions but numerical examples show that the solution interpolates the derivative boundary data in R2 for a wide variety of domain shapes. 7.2 A new look at mean value interpolation We start by showing that mean value interpolation can be expressed as the solution to a radial minimization problem. 7.2. A NEW LOOK AT MEAN VALUE INTERPOLATION 87 p (x ,v ) v Ω x dΩ Figure 7.1: Definition of p. 7.2.1 Convex domains Consider the case that Ω ⊂ Rn is a bounded, open, convex domain and that f : ∂Ω → R is a continuous function. For any point x = (x1 , x2 , . . . , xn ) in Ω and any unit vector v in the unit sphere S ⊂ Rn , let p(x, v) be the unique point of intersection between the semiinfinite line {x + rv : r ≥ 0} and the boundary ∂Ω; see Figure 7.1. Let ρ(x, v) be the Euclidean distance ρ(x, v) = kp(x, v) − xk. As developed in the papers [25, 44, 22, 13], the mean value interpolant g : Ω → R is given by the formula Z Z 1 f (p(x, v)) dv φ(x), φ(x) = dv, x ∈ Ω. g(x) = ρ(x, v) ρ(x, v) S S It was shown in [22, 13] that under mild conditions on the shape of the boundary ∂Ω, the function g interpolates f when f is continuous. Figure 7.2 shows two examples of the mean value interpolant g on a circular domain. In previous papers, g was derived from the mean value property of harmonic functions. In this paper we take a different viewpoint in order to generalize to Hermite interpolation. We claim that at a fixed point x ∈ Ω, the value g(x) is the unique minimizer a = g(x) of the local ‘energy’ function Z Z ρ(x,v) E(a) = S 0 2 ∂ F (x + rv) dr dv, ∂r where F : Ω → R is the radially linear function, F (x + rv) = r ρ(x, v) − r a+ f (p(x, v)), ρ(x, v) ρ(x, v) v ∈ S, To see this observe that ∂ f (p(x, v)) − a F (x + rv) = , ∂r ρ(x, v) and therefore, Z E(a) = S (f (p(x, v)) − a)2 dv. ρ(x, v) 0 ≤ r ≤ ρ(x, v). 88 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS Figure 7.2: Mean value interpolants. Thus, setting the derivative of E with respect to a to zero gives Z S f (p(x, v)) − a dv = 0, ρ(x, v) and solving this for a gives the solution a = g(x). 7.2.2 Non-convex domains An interpretation in terms of functional minimization can also be made for non-convex domains. Let Ω ⊂ Rn be an open, not necessarily convex domain. Recall that the intersection between a line and a surface is said to be transversal if the line does not lie in the tangent space of the surface at the point of intersection. We will say that a unit vector v is transversal with respect to x in Ω if all the intersections between {x + rv : r ≥ 0} and ∂Ω are transversal. For example, in the R2 case of Figure 7.3 all unit vectors are transversal at x except for v1 and v2 . If v is transversal, let µ(x, v) be the number of intersections of {x + rv : r ≥ 0} with ∂Ω which will be an odd number, assumed finite, and let pj (x, v), j = 1, 2, . . . , µ(x, v), be the points of intersection, ordered so that their distances ρj (x, v) = kpj (x, v) − xk are increasing, ρ1 (x, v) < ρ2 (x, v) < · · · < ρµ(x,v) (x, v). For example, for v in Figure 7.3b, there are three such intersections and so µ(x, v) = 3. We make the assumption that the set {v ∈ S : v is non-transversal} has measure zero, so that non-transversal v can be ignored when integrating over S. The mean value interpolant 7.3. HERMITE INTERPOLATION 89 p 2(x ,v) v1 p 1(x ,v) v v2 x p 3(x ,v) x Figure 7.3: (a) Two non-transversal vectors. (b) A transversal vector with three intersections. [22, 13] is then Z g(x) = S µ(x,v) X (−1)j−1 f (pj (x, v)) dv φ(x), ρj (x, v) j=1 Z φ(x) = S µ(x,v) X (−1)j−1 dv. ρj (x, v) j=1 We claim that g(x) is now the unique minimizer a = g(x) of µ(x,v) Z X E(a) = S (−1)j−1 ρj (x,v) Z 2 0 qv,j (r) dr dv, 0 j=1 where, for v ∈ S, 0 ≤ r ≤ ρj (x, v), and j = 1, . . . , µ(x, v), qv,j is the linear polynomial qv,j (r) = r ρj (x, v) − r a+ f (pj (x, v)). ρj (x, v) ρj (x, v) Indeed, similar to the convex case, we find Z E(a) = S µ(x,v) X (−1)j−1 j=1 (f (pj (x, v)) − a)2 dv, ρj (x, v) and setting E 0 (a) = 0 gives a = g(x). 7.3 Hermite interpolation Having now recast mean value interpolation as the minimization of a radial energy function, we are ready to explore a possible generalization in which the interpolant also matches derivative boundary data. Instead of minimizing over first derivatives of linear polynomials, we now minimize over (k + 1)-st derivatives of polynomials of degree 2k + 1, for any 90 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS k = 0, 1, 2, . . .. Specifically, we want to interpolate in Ω a C k continuous real function f , given its values and partial derivatives up to order k at the boundary ∂Ω. Fix x ∈ Ω and let τ be some polynomial in πk (Rn ), the linear space of n-variate polynomials of degree ≤ k. We think of τ as its own Taylor series at x because we are only interested in the derivatives of τ up to order k at x. Then, for each transversal v ∈ S and for j = 1, . . . , µ(x, v), let qv,j be the univariate polynomial of degree ≤ 2k + 1 such that (i) qv,j (0) = Dvi τ (x), (i) qv,j (ρj (x, v)) i = 0, 1, . . . , k, = Dvi f (pj (x, v)), i = 0, 1, . . . , k, where Dv f denotes the directional derivative of f in the direction v. Then, defining Z ρj (x,v) Ev,j (τ ) = (k+1) qv,j 2 (r) dr, 0 we propose to choose τ in πk (Rn ) to minimize µ(x,v) Z X E(τ ) = S (−1)j−1 Ev,j (τ ) dv, j=1 and then set g(x) = τ (x). (7.1) This procedure defines, in a pointwise fashion, a function g : Ω → R. In general, the minimization will yield a different polynomial τ at each x and so g will not itself be a polynomial. Several questions arise, the main ones being 1. does the minimization have a unique solution τ , so that g is well-defined, and 2. do the derivatives of g up to order k match those of f on ∂Ω? Considering first the univariate case, n = 1, it is well known that among all piecewise C k+1 functions q on a real interval (a, b) that match derivatives up to order k of a given function f at a and b, the unique minimizer of the energy Z b (q (k+1) (x))2 dx a is the polynomial Hermite interpolant to f of degree at most 2k + 1. Thus when n = 1 and Ω = (a, b), we see that g, defined by (7.1), will simply be the Hermite polynomial interpolant to f of degree ≤ 2k + 1. Thus the answer to both questions is ‘yes’ when n = 1. We are not able to answer them for general n, however. Instead, in the rest of the paper, we focus on the case k = 1 and we show that there is a unique minimizer for all n. We cannot yet show that g really interpolates the derivatives of f of order 0 and 1, but we can show that 7.3. HERMITE INTERPOLATION 91 if f is a cubic then g = f , in which case it trivially interpolates, and numerical examples in R2 strongly suggest that it interpolates any f when n = 2. In the case k = 1, we can express any polynomial τ ∈ π1 (Rn ) in the form τ (y) = a + (y − x) · b, for some a ∈ R and b = (b1 , . . . , bn )T ∈ Rn and then qv,j is the cubic polynomial such that qv,j (0) = a, qv,j (ρj (x, v)) = f (pj (x, v)), 0 qv,j (0) 0 qv,j (ρj (x, v)) = Dv f (pj (x, v)). = v · b, Then, Ev,j and E can be viewed as functions of a and b, and the task is to find a ∈ R and b ∈ Rn to minimize Z µ(x,v) E(a, b) = S X (−1)j−1 Ev,j (a, b) dv, (7.2) j=1 where ρj (x,v) Z Ev,j (a, b) = 2 00 qv,j (r) dr, (7.3) 0 and set g(x) = a. In turns out that E has a unique minimizing pair (a, b). In order to show this and to compute a we begin with a lemma. Lemma 7.1 Let q be the cubic polynomial such that q 0 (0) = m0 , q(0) = f0 , q(h) = f1 , q 0 (h) = m1 , for some h > 0, and let h Z (q 00 (x))2 dx. E= (7.4) 0 Then, with ∆f0 = f1 − f0 , E = 12 (∆f0 )2 (∆f0 )(m0 + m1 ) m2 + m0 m1 + m21 − 12 +4 0 . 3 2 h h h Proof. Using the Bernstein polynomials k i Bik (u) = u (1 − u)k−i , i k ≥ 0, we can express q in the Bernstein form q(x) = 3 X i=0 ci Bi3 (x/h) 0 ≤ i ≤ k, 92 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS where c0 = f0 , c2 = f1 − M1 , c1 = f0 + M0 , c3 = f1 , and Mi = hmi /3. Then q 00 (x) = 1 6 X 2 ∆ ci Bi1 (x/h), h2 i=0 where ∆2 ci = ci+2 − 2ci+1 + ci , and squaring and integrating over [0, h] yields E= 12 (∆2 c0 )2 + ∆2 c0 ∆2 c1 + (∆2 c1 )2 . h3 Then, since ∆2 c0 = ∆f0 − 2M0 − M1 , ∆2 c1 = −∆f0 + M0 + 2M1 , a simple calculation gives E= 12 (∆f0 )2 − 3(∆f0 )(M0 + M1 ) + 3(M02 + M0 M1 + M12 ) , h3 2 which gives the result. We can now apply Lemma 7.1 to give a formula for Ev,j (a, b) in (7.3), using matrix notation. Setting f0 = a, m0 = v · b, f1 = f (p(x, v)), m1 = Dv f (p(x, v)), and h = ρ(x, v), gives T Ev,j (a) = aT Mv,j a + Nv,j a + Pv,j , (7.5) where, with the shorthand p := pj (x, v) and ρ := ρj (x, v), 2 4 a 6 3ρvT −6f (p) + 3ρDv f (p) a= , Mv,j = 3 , Nv,j = 3 , b ρ 3ρv 2ρ2 vvT ρ −3ρf (p)v + ρ2 Dv f (p)v and Pv,j = 4 3(f (p))2 − 3ρf (p)Dv f (p) + ρ2 (Dv f (p))2 . 3 ρ Substituting (7.5) into (7.2) now gives E(a) = aT M a + N T a + P, (7.6) where M is the matrix Z M= S µ(x,v) X j=1 (−1)j−1 Mv,j dv, (7.7) 7.3. HERMITE INTERPOLATION 93 and similarly for N and P , and integrating a matrix means integrating each element. As the set of non-transversal v has measure zero for each x ∈ Ω, the integration can be achieved by splitting the integral into a sum over integrals over the regions of S where the number of intersections µ(x, v) is constant. The matrix M is clearly symmetric and if it is also positive definite then it is non-singular and the unique minimum of E is the unique solution a to the equation 1 M a = − N, (7.8) 2 and a can be computed directly from this using Cramer’s rule. To show that M is positive definite we use the following lemma. Lemma 7.2 If f1 = m1 = 0 in Lemma 7.1 then E in (7.4) is non-increasing in h. Proof. From Lemma 7.1 we know that f02 f0 m0 m20 , + 12 + 4 h3 h2 h and computing the derivative with respect to h yields 2 dE f2 f0 m0 m2 m0 f0 = − 36 04 + 24 3 + 4 20 = − 6 2 + 2 ≤ 0. dh h h h h h E = 12 2 Theorem 7.3 The matrix M is positive definite. Proof. We first show that aT M a ≥ 0. To do this, let f = 0. Then since N = 0 and P = 0, we have aT M a = E(a). Since 0 qv,µ (ρµ (x, v)) = qv,µ (ρµ (x, v)) = 0, (7.9) Lemma 7.2 shows that Ev,j (a) in (7.3) is non-increasing in j. Therefore Ev,j (a, b) − Ev,j+1 (a, b) ≥ 0 in (7.2) and so Z E(a) ≥ Ev,µ(x,v) (a, b) dv ≥ 0. S T n+1 Thus a M a ≥ 0 for all a ∈ R . Further, suppose that aT M a = 0. Then, letting f = 0 again, we must have Z Ev,µ(x,v) (a, b) dv = 0, S and hence for each v ∈ S, with µ = µ(x, v), we must have Z ρµ (x,v) 2 00 Ev,µ (a, b) = qv,µ (r) dr = 0. 0 Therefore, for each v ∈ S, qv,µ is linear and by (7.9), qv,µ = 0. Hence a = 0. 2 94 7.4 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS Boundary integrals If a parametric representation of ∂Ω is available, the integrals in M and N in (7.6) can be converted to integrals over the parameters of ∂Ω, in the spirit of [44]. To this end, suppose that s = (s1 , . . . , sn−1 ) : D → ∂Ω is a parameterization of the curve or surface ∂Ω with parameter domain D ⊂ Rn−1 . We will assume that s is a regular parameterization, by which we mean that s is piecewise C 1 and that at every point of differentiability t = (t1 , . . . , tn−1 ) ∈ D, the first order partial derivatives Di s := ∂s/∂ti , i = 1, 2, . . . , n − 1, are linearly independent. Thus, following the notation of [44] and [13], their cross product, s⊥ (t) := det(D1 s(t), . . . , Dn−1 s(t)) is non-zero, and is orthogonal to the tangent space at s(t). We make the convention that s⊥ points outwards from Ω. Then, considering for example the integrals in M in (7.7), we make the substitution pj (x, v) = s(t) in (7.7), so that v= s(t) − x , ks(t) − xk and ρj (x, v) = ks(t) − xk, and then (see [13]), dv = (s(t) − x) · s⊥ (t) dt. ks(t) − xkn Substituting these expressions into (7.7), and similarly for N , gives the boundary representations Z Z N̂ w(x, t) dt, (7.10) M̂ w(x, t) dt, N= M= D D where w(x, t) = (s(t) − x) · s⊥ (t) , ks(t) − xkn+3 and, with the shorthand s := s(t), 6 3(s − x)T −6f (s) + 3Ds−x f (s) , N̂ = 4 . M̂ = 2 3(s − x) 2(s − x)(s − x)T (−3f (s) + Ds−x f (s))(s − x) This provides a way of numerically computing the value of g at a point x by sampling the surface s and its first derivatives and applying numerical integration. It also shows that g is C ∞ smooth in Ω, due to differentiation under the integral sign. 7.5 Cubic precision We now establish cubic precision (for k = 1 and all n). 7.5. CUBIC PRECISION 95 Theorem 7.4 Suppose that f : Ω → R is a cubic polynomial. Then g = f in Ω. Proof. Fix an arbitrary x ∈ Ω and let â := f (x) and b̂ := ∇f (x). We will show that E(â, b̂) ≤ E(a, b) for all a ∈ R and b ∈ Rn and hence g(x) = â = f (x). Let ev,j : [0, ρj (x, v)] → R be the cubic polynomial defined by ev,j (r) = qv,j (r) − f (x + rv). Then ∂2 00 qv,j (r) = 2 f (x + rv) + e00v,j (r) ∂r and so 2 Z ρj (x,v) 2 ∂ f (x + rv) dr+ Ev,j (a, b) = ∂r2 0 Z ρj (x,v) ∂2 2 e00v,j (r) 2 f (x + rv) dr+ ∂r 0 Z ρj (x,v) 2 e00v,j (r) dr. 0 Now ρj (x,v) Z 0 2 ∂2 f (x + rv) dr = Ev,j (â, b̂), ∂r2 and as ev,j is a cubic polynomial and ev,j (ρj (x, v)) = e0v,j (ρj (x, v)) = 0, it follows from Lemma 7.2 that µ(x,v) X j−1 ρj (x,v) Z (−1) 2 e00v,j (r) dr ≥ 0. 0 j=1 Thus, E(a, b) ≥ E(â, b̂) + K, where µ(x,v) Z X K=2 S j=1 (−1)j−1 ρj (x,v) Z 0 e00v,j (r) ∂2 f (x + rv) dr dv. ∂r2 We will show that K = 0, which will complete the proof. We apply integration by parts to the inner integral, giving Z 0 ρj (x,v) e00v,j (r) ∂2 f (x + rv) dr = ev,j (0)Dv3 f (x) − e0v,j (0)Dv2 f (x) ∂r2 = (a − â)Dv3 f (x) − (v · (b − b̂))Dv2 f (x). 96 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS Figure 7.4: Reproduction of a quadratic polynomial (maximal absolute error due to numerical integration: 3.4 · 10−8 ). Then, since this expression is independent of j, and recalling that µ(x, v) is odd we deduce that Z Z Dv3 f (x) dv − (b − b̂) · K = 2 (a − â) S Dv2 f (x)v dv . S But both integrals in this expression are zero since 2 D−v f (x) = Dv2 f (x) and 3 D−v f (x) = −Dv3 f (x). 2 7.6 Numerical Examples We conclude the paper with some numerical examples of the minimizing C 1 Hermite interpolant g in R2 . All of these examples were computed using Cramer’s rule to find the value of a in (7.8). The elements of M and N were found using the boundary formula (7.10) and adaptive numerical integration with a relative tolerance. Figure 7.4 shows g on the unit disk in the case that f (x, y) = r2 sin 2θ, with polar coordinates x = r cos θ and y = r sin θ. As predicted by Theorem 7.4, g is numerically equal to f in this case, since f is the quadratic polynomial f (x, y) = 2xy. In this example, the Hermite interpolant g is only slightly different to the mean value interpolant to the Lagrange data from f shown in Figure 7.2. Figure 7.5 shows g on a non-convex domain with a hole, with f given by f (x, y) = sin(y) cos(2x). The interpolant g behaves nicely even though there is a cusp at the leftmost point of the boundary. The error between g and f near the boundary of the hole is shown in 7.6. NUMERICAL EXAMPLES 97 Figure 7.5: Interpolant (left) and part of the error function (right) for a non-convex domain with hole and cusp. g(x) − f (x) .1 0 −.1 −.2 −1.0 −0.5 0.0 0.5 1.0 x Figure 7.6: Errors along the x-axis (y = 0) for different f , with the unit circle as domain. 98 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS Figure 7.7: Comparison between interpolants (top) and errors (bottom) of the interpolant of [22] (left) and the minimizing interpolant g (right). the right part of Figure 7.5. The error function is cut open to demonstrate numerically that both the error and its gradient are zero at the boundary. Figure 7.6 shows further numerical evidence of the Hermite interpolation property of g. The errors in g along the x-axis are plotted for three different functions f on the unit circle. Figure 7.7 compares the minimizing Hermite interpolant g with the Hermite interpolant of [22] on the unit circle with f (x, y) = r2 sin 4θ. The top left shows the interpolant of [22] and the bottom left its error function. The right part of the figure shows g on the top and its error function at the bottom. Note that both error functions are tangentially zero at the boundary. In Figure 7.8 we use the interpolant for hole filling, with a circular hole, and with f (x, y) = cos r. In the top f is shown together with the boundary of the hole that is cut out. Then the Hermite interpolant of [22] is shown, and at the bottom the minimizing interpolant g. Figure 7.9 shows another example of the nice behaviour of the minimizing interpolant g for hole filling with the same function f but with a more complicated boundary. Acknowledgement We would like to thank Christopher Dyken for giving us access to his code for the mean value and Hermite interpolants described in [22]. 7.6. NUMERICAL EXAMPLES 99 Figure 7.8: Hole filling with circular boundary. From top to bottom: original function, interpolant of [22], minimizing interpolant. Figure 7.9: Hole filling with a piecewise smooth boundary. 100 CHAPTER 7. PRM: HERMITE INTERPOLATION ON ARBITRARY DOMAINS 8 Pointwise radial minimization: Existence, uniqueness and polynomial precision Christian Schulz Abstract The recent paper [29] introduced the method of pointwise radial minimization to solve the problem of Hermite interpolation on an arbitrary domain for derivative data of any order. However, in that paper only the case of first order boundary data was analyzed with respect to existence, uniqueness and cubic precision inside the given domain. In this paper we will show that those properties hold inside and outside the domain for any Hermite boundary data. Here cubic precision changes to polynomial precision. Moreover we provide general formulas for the resulting function. Unfortunately, the task of proving the interpolation property still remains open, but numerical experiments strongly indicate this property for a variety of planar and three-dimensional domains. Keywords: Transfinite interpolation, Hermite interpolation, Pointwise radial minimization 8.1 Introduction Pointwise radial minimization is an approach for solving the problem of Hermite interpolation on an arbitrary domain. It was introduced in [29] for derivative data of any order. The properties of existence, uniqueness and polynomial precision, however, were only shown for first order derivative data. We will therefore use this paper to provide the proofs and formulas for the general case. As this paper is a direct extension of the work done in [29], we will assume that the reader is familiar with the ideas and concepts presented there. For more information about the history of transfinite interpolation and related work we also refer the reader to the introduction in [29]. Before we start, let us shortly recapitulate the notation. Let Ω ⊂ Rn be an open, not necessarily convex domain with the boundary ∂Ω and let Ωc = Rn \(Ω ∪ ∂Ω). For any 101 102 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION point x ∈ Rn \∂Ω and any unit vector v in the unit sphere S ⊂ Rn , let µ(x, v) ≥ 0 be the number of intersections of the semi-infinite line {x + rv : r ≥ 0} with the boundary ∂Ω, assumed to be finite. Let pj (x, v), j = 1, 2, . . . , µ(x, v) be the corresponding intersection points, ordered so that their distances ρj (x, v) = kpj (x, v) − xk are increasing, ρ1 (x, v) < ρ2 (x, v) < · · · < ρµ(x,v) (x, v). We will call v transversal with respect to x if the line {x + rv : r ≥ 0} does not lie in the tangent space of ∂Ω at any of their intersections pj (x, v). Then for transversal v, the number µ(x, v) will be odd for x ∈ Ω and even for x ∈ Ωc . Our pointwise minimizing function g : Rn \∂Ω → R shall interpolate a C k continuous real function f , given its values and derivative data up to order k at the boundary ∂Ω. With derivative data we mean that we are able to compute any directional derivative Dvi f of f at the boundary for i = 0, . . . , k. We fix x ∈ Rn \∂Ω and let τ be some polynomial in πk (Rn ), the linear space of n-variate polynomials of degree ≤ k. Then, for each transversal v ∈ S and for j = 1, . . . , µ(x, v), let qv,j be the univariate polynomial of degree ≤ 2k + 1 such that (i) qv,j (0) = Dvi τ (x), (i) qv,j (ρj (x, v)) i = 0, 1, . . . , k, = Dvi f (pj (x, v)), i = 0, 1, . . . , k. Moreover, we define the energies Z Ev,j (τ ) = ρj (x,v) 2 (k+1) qv,j (r) Z dr, E(τ ) = 0 S µ(x,v) X (−1)j−1 Ev,j (τ ) dv, j=1 and choose the τ in πk (Rn ) which minimizes E(τ ) and set g(x) = τ (x). We use the convention that an empty sum is zero and make the assumption that the set {v ∈ S : v is non-transversal} has measure zero, so that non-transversal v can be ignored when integrating over S. By letting S̃x ⊆ S be the subset of S where µ(x, v) > 0 and v transversal, we get Z µ(x,v) X E(τ ) = (−1)j−1 Ev,j (τ ) dv. (8.1) S̃x 8.2 j=1 Univariate polynomial Due to its construction, the minimizing function g owes a lot of its properties to the univariate polynomials qv,j of degree ≤ 2k + 1, more precisely to a certain property of their energies Ev,j (τ ). In this section we will therefore study a univariate polynomial q : [0, h] → R of degree ≤ 2k + 1 that fulfills the interpolation conditions q (l) (0) = m0,l , q (l) (h) = m1,l , l = 0, . . . , k 8.2. UNIVARIATE POLYNOMIAL 103 for some h > 0, where the m0,l and m1,l are given data. We can express q in BernsteinBézier form, q(x) = 2k+1 X ci Bi2k+1 x h i=0 , Bi2k+1 (u) = 2k + 1 i ui (1 − u)2k+1−i , which also provides us with the derivatives 2k+1−l (2k + 1)! 1 X (2k+1−l) x l ∆ c B , i i (2k + 1 − l)! hl i=0 h l X l l l−j ∆ ci = (−1) ci+j . j j=0 q (l) (x) = 0 ≤ l ≤ 2k + 1, (8.2) We will need the following, maybe not so well known, binomial identities. Lemma 8.1 Let n ∈ N+ and r ∈ N+ 0 with 0 ≤ r < n. Then n−1 X (−1)j j=r n n j = (−1)n−1 , j r r n−r X (−1)j−1 j=1 n n−j n = . j r r Let now s ∈ N+ and n, r ∈ N+ 0 with 0 ≤ r ≤ n < s. Then n X n−j (−1) j=r s j s s−r−1 = . j r r n−r These identities can be derived from the definition of binomial coefficients and other well known binomial identities. For more information on that topic we refer to Chapter 5 of [38]. For convenience we define M0,l = (2k + 1 − l)! l h m0,l , (2k + 1)! M1,l = (2k + 1 − l)! l h m1,l , (2k + 1)! l = 0, . . . , k, and get ∆l c0 = M0,l and ∆l c2k+1−l = M1,l for l = 0, . . . , k and the following, simple equations for the coefficients of q. Lemma 8.2 cl = l X l i=0 i M0,i , c2k+1−l l X l = (−1) M1,i , i i=0 i l = 0, . . . , k. (8.3) Proof. We will first show the formula for cl . Observe that c0 = ∆0 c0 = M0,0 and that for l > 0 from l X l M0,l = ∆l c0 = (−1)l−j cj j j=0 104 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION it follows that l−1 X cl = M0,l + l−j+1 (−1) j=0 l cj . j Now using induction we can prove the first equation, cl = M0,l + (−1)l+1 l−1 X M0,i l−1 X i=0 (−1)j j=i l l j L.8.1 X l M0,i . = i j i i=0 The formula for c2k+1−l can be proved similarly by starting at c2k+1 = M1,0 and using the second of the binomial identities in Lemma 8.1 for c2k+1−l , l > 0. 2 In addition to the values of ∆l c0 and ∆l c2k+1−l for l = 0, . . . , k we also need their values for l = k + 1, . . . , 2k + 1. Using (8.3) in (8.2) and Lemma 8.1 yields ∆l c0 = k X (−1)l−j j=0 l X l l cj + (−1)l−j c2k+1−(2k+1−j) j j j=k+1 = (−1)k+l k X αl,r M0,r + βl,r M1,r , r=0 where αl,r , βl,r ∈ N are given by αl,r = l l−r−1 , r k−r βl,r = l X (−1)k+r−j j=k+1 l 2k + 1 − j . j r For ∆l c2k+1−l we get ∆l c2k+1−l = k X (−1)j+1 j=2k+1−l = (−1)k k X l 2k + 1 − j cj + k X (−1)j j=0 l c2k+1−j j (−1)r βl,r M0,r + (−1)r αl,r M1,r . r=0 By applying some binomial identities one can show that α2k+1,r = (−1)r+1 β2k+1,r and thus both equations are identical for l = 2k + 1. Knowing all ∆l c0 and ∆l c2k+1−l enables us to compute the energy Z E= 0 h 2 q (k+1) (x) dx 8.3. EXISTENCE AND UNIQUENESS 105 of q. We apply integration by parts k + 1 times, using the fact that q (2k+2) = 0. This yields E= k X h ih (−1)k−s q (s) (x)q (2k+1−s) (x) 0 s=0 = k X k X (2k + 1 − r)! h2k+1−s−r s! r=0 s=0 1 α2k+1−s,r m0,r m0,s + (−1)r−s m1,r m1,s + β2k+1−s,r m1,r m0,s + (−1)r−s m0,r m1,s . (8.4) The energy E of q has the following important property. Lemma 8.3 If m1,r = 0 for all r = 0, . . . , k then either 1. E is decreasing in h or 2. E = 0 for all h > 0. Proof. With m1,r = 0 we get E= k k X X (2k + 1 − r)! (2k + 1 − s)! r=0 s=0 (2k + 1 − s − r) k! k! k k m0,r m0,s 2k+1−s−r h r s 1 and differentiating with respect to h yields k X (2k + 1 − r)! 1 dE k =− m 0,r k+1−r dh k! h r r=0 !2 . Thus dE/dh ≤ 0, showing that E is non-increasing in h. For dE/dh to be zero for certain h 6= 0 we must have ! k X (2k + 1 − r)! k m0,r hr = 0. k! r r=0 As this is a polynomial in h it can either be zero for atmost k distinct values of h or it is zero for all h. In the first case we must have E h1 > E h2 for two values 0 < h1 < h2 , so E is decreasing in h. In the latter the whole polynomial is zero and hence its coefficients must be zero, from which follows that m0,r = 0 for all r = 0, . . . , k and thus q = 0 and E = 0 for all h > 0. 2 8.3 Existence and uniqueness In this section we will derive an explicit formula for the energy E(τ ) and use Lemma 8.3 to show that the resulting pointwise radial minimizing function g exists and is unique at all 106 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION points x ∈ Rn \∂Ω. The polynomial τ can be expressed using the following multi-index notation i ai = ai1 ,i2 ,...,in , x = xi11 xi22 · · · xinn , kik = n X ij , ij ∈ N+ 0 for j = 1, . . . , n. j=1 On multi-indicies the operations addition, subtraction and factorial are defined as i ± j = (i1 ± j1 , i2 ± j2 , · · · , in ± jn ), n Y i! = ij ! . j=1 The j-th partial derivative of xi is defined by ∂ j xi = ∂ kjk ∂xj11 ∂xj22 · · · ∂xjnn xi = Ai,j xi−j , (8.5) with ( Ai,j = i! (i−j)! if il ≥ jl for all l = 1, . . . , n, 0 else, and the l-th directional derivative is given by the following Lemma. Lemma 8.4 Let f : Rn → R be smooth enough. Then Dvl f (x) = X kjk! vj ∂ j f (x) j! and Dvl xi = kjk=l X kjk! Ai,j vj xi−j . j! kjk=l Proof. We show the first equality by induction on l. The second follows by simply applying 0 0 (8.5). Observe that Dv0 f (x) = f (x) = k0k! 0! v ∂ f (x). Let ei = (0, . . . , 0, 1, 0, . . . , 0) be the unit index with eii = 1 and eij = 0 for all j 6= i. For l > 0 we get Dvl f (x) = X kjk=l−1 kjk! j v Dv ∂ j f (x) = j! = n X X kjk! j+er j+er v ∂ f (x) j! r=1 kjk=l−1 X kjk=l vj ∂ j f (x) n X kj − er k! . j − er ! r=1 jr >0 The last sum can be simplified to n n X kjk! kj − er k! X kjk − 1 ! jr = = , j! j! j − er ! r=1 r=1 jr >0 which finishes the proof. 2 8.3. EXISTENCE AND UNIQUENESS 107 By expressing the polynomial τ in multi-index notation with ai ∈ R and defining γl,v,i , ( X l! vi if kik = l, i ai (y − x) , τ (y) = γl,v,i = 0 else, kik≤k and as (x − x)i−j = 0 if i 6= j, we get relative simple directional derivatives of τ at y = x, X X X Dvl τ (x) = ai Dvl (y − x)i y=x = ai kik! vi = ai γl,v,i , 0 ≤ l ≤ k. kik≤k kik=l kik≤k Let η be the number of coefficients in τ and let i1 , i2 , . . . , iη be some ordering of all i with kik ≤ k. The energies P Ev,j can be expressed in matrix notation by using equation (8.4) and setting m0,r = kik≤k ai γr,v,i and m1,r = Dvr f (p(x, v)) for r = 0, . . . , k. We get T Ev,j (τ ) = aT Mv,j a + Nv,j a + Pv,j , (8.6) where aT = ai1 ai2 ··· aiη , and Mv,j is a η × η matrix and Nv,j a η-dimensional vector. With the shorthand p := pj (x, v) and ρ := ρj (x, v) the entries of Mv,j , Nv,j and the value Pv,j are (Mv,j )ζ,ξ = = (Nv,j )ζ = k k X X (2k + 1 − r)! 1 ρ2k+1 ρ r=0 s=0 kiξ k+kiζ k s! λkiζ k,kiξ k viζ +iξ , ρ2k+1 k k 1 X X (2k + 1 − r)! ρ2k+1 r=0 s=0 s! ρs+r α2k+1−s,r γr,v,iζ γs,v,iξ ρs+r β2k+1−s,r Dvr f (p) γs,v,iζ + (−1)r+s Dvs f (p) γr,v,iζ = k ρkiζ k viζ X r ρ σkiζ k,r Dvr f (p), ρ2k+1 r=0 with λr,s , σr,s ∈ N for r, s = 0, . . . , k defined as λr,s = (2k + 1 − r)! (2k + 1 − s)! (2k + 1 − r − s) (k − r)! (k − s)! σr,s = (2k + 1 − s)! β2k+1−r,s + (−1)r+s (2k + 1 − r)! r! β2k+1−s,r s! and Pv,j = 1 ρ2k+1 k X k X r=0 s=0 (−1)r+s (2k + 1 − r)! r+s ρ α2k+1−s,r Dvr f (p)Dvs f (p). s! 108 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION Substituting (8.6) into (8.1) now gives E(τ ) = aT M a + N T a + P, where M is the matrix µ(x,v) Z X M= S̃x (−1)j−1 Mv,j dv j=0 and similarly for N and P , and integrating a matrix means integrating each element. The Matrix M is clearly symmetric and Theorem 8.5 shows that it also is positive definite. Hence there exists a unique minimum of E which satisfies the linear system 1 M a = − N, 2 (8.7) and g(x) = τ (x) = a0 . Theorem 8.5 The Matrix M is positive definite for all x ∈ Rn \∂Ω. Proof. This proof is based on the same ideas as the one in [29] for the cubic case and points inside the boundary. We will first show that aT M a ≥ 0. Let f = 0, then N = 0, P = 0 and aT M a = E(τ ). Since qv,j (ρj (x, v))(l) = 0 (8.8) for l = 0, . . . , k, it follows from Lemma 8.3 that Ev,j is non-increasing and Ev,j (τ ) − Ev,j+1 (τ ) ≥ 0 for all v ∈ S̃x . If x ∈ Ωc , then µ(x, v) is even for all v in S̃x and we have Z E(τ ) ≥ Ev,µ(x,v)−1 (τ ) − Ev,µ(x,v) (τ ) dv ≥ 0. S̃x For x ∈ Ω the number µ(x, v) is odd for all v in S̃x and Z E(τ ) ≥ Ev,µ(x,v) (τ ) dv ≥ 0. S̃x Thus aT M a ≥ 0 for all a ∈ Rη . Further, suppose aT M a = 0. We let f be zero again. Then for x ∈ Ωc we have Z 0 = E(τ ) ≥ Ev,µ(x,v)−1 (τ ) − Ev,µ(x,v) (τ ) dv ≥ 0. S̃x For x ∈ Ω we get Z 0 = E(τ ) ≥ Ev,µ(x,v) (τ ) dv ≥ 0. S̃x 8.4. POLYNOMIAL PRECISION 109 For the first case it follows from Lemma 8.3 and for the second it is obvious, that for all v ∈ S̃x we must have ρµ (x,v) Z Ev,µ (τ ) = 2 (k+1) qv,µ (r) = 0. 0 Therefore qv,µ must be of degree ≤ k for each v, and by (8.8) we have qv,µ = 0 for all v ∈ S̃x . Hence a = 0. 2 8.4 Polynomial precision In this section we will show the polynomial precision of pointwise radial minimization. Theorem 8.6 Suppose that f : Rn → R is a polynomial of degree ≤ 2k + 1. Then g = f in Rn \∂Ω. Proof. Again this proof is based on the same ideas as the one in [29] for cubic precision and points inside the boundary. Fix an arbitrary x ∈ Rn \∂Ω. Let Tf be the k-th order Taylor expansion of f around x. We will show that E(Tf ) ≤ E(τ ) for all τ ∈ πk (Rn ). From this follows that τ = Tf and g(x) = τ (x) = Tf (x) = f (x). Let ev,j : [0, ρj (x, v)] → R be the polynomial of degree ≤ 2k + 1 defined by ev,j (r) = qv,j (r) − f (x + rv). Then (k+1) qv,j ∂ k+1 (k+1) f (x + rv) + ev,j (r) ∂rk+1 (r) = and so ρj (x,v) Z Ev,j (τ ) = 0 Z ρj (x,v) 2 2 ∂ k+1 f (x + rv) dr+ ∂rk+1 (k+1) ev,j 0 Now ρj (x,v) Z 0 (r) ∂ k+1 f (x + rv) dr + ∂rk+1 Z ρj (x,v) (k+1) ev,j 2 (r) dr. 0 2 ∂ k+1 f (x + rv) dr = Ev,j (Tf ), ∂rk+1 and as ev,j is a polynomial of degree ≤ 2k + 1 and elv,j (ρj (x, v)) = 0, for l = 0, . . . , k it follows from Lemma 8.3 that µ(x,v) X j=1 (−1)j−1 Z ρj (x,v) (k+1) ev,j 0 2 (r) dr ≥ 0. (8.9) 110 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION Thus, E(τ ) ≥ E(Tf ) + K, where µ(x,v) Z X K=2 S (−1)j−1 Z ρj (x,v) (k+1) ev,j (r) 0 j=1 ∂ k+1 f (x + rv) dr dv. ∂rk+1 (8.10) We will show that K = 0, which will complete the proof. Observe that (l) ev,j (0) = Dvl τ (x) − Dvl f (x), for l = 0, . . . , k. We apply k + 1 times integration by parts to the inner integral in (8.10). In combination with (8.9) this yields Z ρj (x,v) (k+1) ev,j 0 (r) ∂ k+1 f (x + rv) dr = ∂rk+1 k X (−1)i+1 Dvk−i τ (x) − Dvk−i f (x) Dvk+1+i f (x). i=0 This integral is independent of j. Hence, if x ∈ Ωc , we get Z K = 2 0 dv = 0. S For x ∈ Ω we have K=2 k X i=0 (−1)i+1 Z Dvk−i τ (x) − Dvk−i f (x) Dvk+1+i f (x) dv. (8.11) S Note that both τ and f are infinitely smooth and that either k − i or k + 1 + i is odd whereas the other is even. Therefore k+1+i k−i k−i D−v τ (x) − D−v f (x) D−v f (x) = − Dvk−i τ (x) − Dvk−i f (x) Dvk+1+i f (x), and hence the integrals in (8.11) are zero, leading to K = 0. 8.5 2 Boundary integrals As observed in [44] the integrals over the unit sphere can be converted into boundary integrals if a parametric representation for ∂Ω is available. Following the notation of [13, 29], let s : D → ∂Ω be a regular, piecewise C 1 parametrization of the boundary. Thus for every point t ∈ D the vector s⊥ (t) = det D1 s(t), . . . , Dn s(t) 8.6. NUMERICAL EXAMPLES 111 is non-zero and orthogonal to the tangent space at s(t). Here Di s(t) means the first order partial derivative with respect to ti . With the convention that s⊥ (t) points outwards from Ω, we have (see [13, 29]) pj (x, v) = s(t), v= s(t) − x , ks(t) − xk ρj (x, v) = ks(t) − xk, dv = (s(t) − x) · s⊥ (t) dt. ks(t) − xkn This yields Z M = χx Z cw(x, t) dt M N = χx b w(x, t) dt, N D (8.12) D where (s(t) − x) · s⊥ (t) , w(x, t) = ks(t) − xkn+2k+1 χx = 1 if x ∈ Ω −1 if x ∈ Ωc and, with the shorthand s := s(t), cζ,ξ = λki k,ki k (s − x)iζ +iξ , M ζ ξ bζ = (s − x)iζ N k X r σkiζ k,r Ds−x f (s). r=0 8.6 Numerical examples Unfortunately we are currently not able to formally prove that the pointwise radial minimizing function satisfies the Hermite interpolation conditions. Due to numerical experiments we are however convinced that this is the case at least for domains in R2 and R3 . All examples are computed using adaptive numerical integration with a relative tolerance and an LDLT -solver for the linear system (8.7). As an LDLT -solver works for symmetric positive and negative definite matrices, it allows us to ignore the value of χx in (8.12). To numerically examine the interpolation behaviour, we compute the value of the minimizing function g along a line which intersects the boundary ∂Ω. The line is defined by a point y on the boundary and the unit vector v that is orthogonal to the tangent space of ∂Ω at y and that points inwards into Ω. The boundary data is taken from a function f which is defined over the whole R2 and R3 respectively. This allows us to compare the values and the derivatives of f and g along the line. The derivatives of g at a point x on the line are computed using the numerical approximations −g(x + 2hv) + 8g(x + hv) − 8g(x − hv) + g(x − 2hv) , 12h −g(x + 2hv) + 16g(x + hv) − 30g(x) + 16g(x − hv) − g(x − 2hv) Dv2 g(x) ≈ , 12h2 g(x + 2hv) − 2g(x + hv) + 2g(x − hv) − g(x − 2hv) Dv3 g(x) ≈ . 2h3 Dv1 g(x) ≈ 112 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION Figure 8.1: Left: Half of a Taijitu (Chinese symbol for yin and yang) as domain with y and ±v. Right: Approximated trefoil knot as domain with y and −v. y/10 y 1.5 4.7 0.75 0.0 0.0 −4.7 −0.75 x/10−2 −2.0 0.0 x/10−2 −9.4 −2.0 2.0 0.0 2.0 y/105 y/103 2.4 2.0 1.2 0.0 0.0 −2.0 −1.2 x/10−2 −4.0 −2.0 0.0 2.0 x/10−2 −2.0 0.0 2.0 Figure 8.2: Value and derivatives of the pointwise radial minimizing function with the half of a Taijitu as domain along the line illustrated in Figure 8.1 for third order boundary data. The top left shows the value, the top right the first, the bottom left the second and the bottom right the third derivative. The black line is the data from the function used for boundary conditions; the green line represents the minimizing function and the red line the difference between those two. The x-axis shows the distance to the boundary point with a negative x-value being outside and a positive one inside the domain. 8.6. NUMERICAL EXAMPLES 113 y/10−1 7.5 5.0 2.5 x/10−2 0.0 −5.0 0.0 5.0 y/10 y 3.5 4.0 0.0 0.0 −3.5 −4.0 −7.0 −8.0 x/10−2 −10 −5.0 0.0 5.0 x/10−2 −5.0 0.0 5.0 Figure 8.3: Value and derivatives of the pointwise radial minimizing function with the unit sphere as domain along the line illustrated in the top left for second order boundary data. The top right shows the value, the bottom left the first and the bottom right the second derivative. The black line is the data from the function used for boundary conditions; the green line represents the minimizing function and the red line the difference between those two. The x-axis shows the distance to the boundary point with a negative x-value being outside and a positive one inside the domain. 114 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION y/10−2 y/10−1 4.0 8.0 0.0 4.0 −4.0 0.0 −8.0 x/10−2 −8.0 −4.0 0.0 4.0 8.0 −4.0 x/10−2 −8.0 −4.0 0.0 4.0 8.0 Figure 8.4: The value (left) and the first derivative (right) of the pointwise radial minimizing function with the approximated trefoil knot as domain along the line illustrated in Figure 8.1 for first order boundary data. The black line is the data from the function used for boundary conditions; the green line represents the minimizing function and the red line the difference between those two. The x-axis shows the distance to the boundary point with a negative x-value being outside and a positive one inside the domain. In our first example the left half of a Taijitu (Chinese symbol for yin and yang) with a hole and a cusp as shown in Figure 8.1 is used as domain. Figure 8.1 also illustrates the vectors v and −v. The Hermite boundary data of order three is taken from the function f1 (x) = cos(20πx1 ) sin(15πx2 ). The resulting g and its derivatives close to the boundary point are plotted in Figure 8.2 and clearly indicate the satisfaction of the Hermite boundary conditions. The second example uses the unit sphere in R3 as domain and takesp the second order Hermite boundary data from the function f2 (x) = cos(10x3 + cos(4.5 2.25x21 + x22 )). Figure 8.3 presents the results. For an example with a non trivial boundary in R3 we use the approximated trefoil knot shown in Figure p 8.1 as domain. The Hermite boundary data of order one comes from f3 (x) = cos(2.5 x21 + 0.75x22 + 4x23 ) and the corresponding plots are shown in Figure 8.4. In both examples with Ω ⊂ R3 the numerical results indicate interpolation of the given boundary data. Figures 8.5 and 8.6 show examples of the minimizing function g for two three dimensional domains. This is achieved by cutting the domain along a plane and meshing the part of the plane lying inside the domain with triangles. The values of g are computed at the triangle vertices and a nearest neighbour interpolation is performed inside each triangle. The resulting values are then visualized using colour. In Figure 8.5 the unit sphere is used as domain and f2 determines the boundary data. The approximated trefoil knot is taken as domain in Figure 8.6 with the boundary conditions specified by f3 . 8.6. NUMERICAL EXAMPLES 115 Figure 8.5: Illustration of the pointwise radial minimizing function with the unit sphere in R3 as domain for first order boundary data at the top and second order at the bottom. In both cases the left shows the original function used for the boundary data, the middle the minimizing function and the right the difference between them. The same colour transfer function is used for the original and the minimizing function. 116 CHAPTER 8. PRM: EXISTENCE, UNIQUENESS, POLYNOMIAL PRECISION Figure 8.6: Illustration of the pointwise radial minimizing function with the approximated trefoil knot as domain for first order boundary data. The left shows the original function used for the boundary data, the middle the minimizing function and the right the difference between them. The same colour transfer function is used for the original and the minimizing function. 8.7 Future Work Pointwise radial minimization is a new method for Hermite interpolation of any order over an arbitrary domain. It yields a function which is smooth and well defined inside and outside the domain. Unfortunately a formal proof of the Hermite interpolation property is still missing. All numerical examples presented in this paper are computed using numerical integration. Although an adaptive method is used, the evaluation nevertheless involves the computation of several integrals for each point. This makes it a time consuming task when performed with high accuracy for a large number of points. If an explicit formula for a polytope boundary with the data given only at the vertices would be known one could probably achieve a faster approximation of the minimizing function by first approximating the boundary by a polytope and then applying the explicit formula. 9 Rational Hermite interpolation without poles Michael S. Floater and Christian Schulz Abstract Univariate interpolation is a fundamental problem in mathematics and geometric modelling. In the last 25 years several researchers noticed the favorable properties of the barycentric formula for the polynomial Lagrange interpolant. A similar barycentric form also exists for the general Hermite setting. Both forms easily extend to rational interpolants while maintaining their favorable properties. For the Lagrange case different interpolants have been developed by choosing certain weights in the barycentric formula. In this paper we examine some rational interpolants resulting from certain choices of weights in the barycentric formula for Hermite interpolation. These weights guarantee that the interpolants do not have any poles. In addition we will show that in the first order Hermite setting, the univariate version of the recently developed method of pointwise radial minimization really does interpolate the data and can be written in a barycentric-like formula. Keywords: Rational interpolation, Barycentric interpolation, Hermite interpolation, Pointwise radial minimization 9.1 Introduction The problem of interpolating a given set of data points is a fundamental part of mathematics and applications. It occurs in an abundance of situations like building approximations of complicated functions for further computations or numerical quadrature. 9.1.1 Lagrange interpolation The simplest interpolation problem is the Lagrange case, where given a number of distinct points y0 < . . . < yn one wants to find a function r that interpolates given values f (yi ), 117 118 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES i = 0, . . . , n at these points, r(yi ) = f (yi ), i = 0, . . . , n. It is well known, that there exists a unique polynomial of degree at most n which fulfils the interpolation conditions. One of many ways to represent this polynomial is the Newton form, r(x) = f (y0 ) + f [y0 , y1 ](x − y0 ) + f [y0 , y1 , y2 ](x − y0 )(x − y1 ) + . . . . Here f [y0 , . . . , yn ] denotes the divided difference which can be computed by the recurrence formula f [y0 , . . . , yn ] = f [y1 , . . . , yn ] − f [y0 , . . . , yn−1 ] y n − y0 with f [yi ] = f (yi ). A different possibility is to use the Lagrange form with the Lagrange polynomials Li (x), r(x) = n X f (yi )Li (x), Li (x) = i=0 n Y x − yj . yi − yj j=0 (9.1) j6=i This kind of representation is often associated with numerical instability and high evaluation costs, as a direct use of (9.1) consists of O(n2 ) operations. However, in a series of papers [8, 9, 39, 67, 80] different authors have reported on the advantages of the Lagrange form when written in a slightly different way, !, n ! n n X X wi X wi wi f (yi ) = f (yi ) , (9.2) r(x) = Ω(x) x − yi x − yi x − yi i=0 i=0 i=0 where wi = Y j=0 j6=i 1 , yi − y j Ω(x) = n Y (x − yi ). i=0 The first formula in (9.2) is called the first form and the other the second form of the barycentric formula for r. The second form is often also just called barycentric formula for r and has amongst others the advantage that it interpolates for any weight wi 6= 0 the given function value f (yi ) for all i [8, 67]. This provides numerical stability in the sense that the interpolation property is not destroyed by rounding errors in the computation of the wi ’s, as long as they stay nonzero. In terms of numerical stability with respect to the evaluation of the interpolating polynomial, Higham shows in [39] that the first form is backward stable, but concludes that the difference in accuracy for the second form is only significant for badly chosen points yi . The evaluation costs of either form in (9.2) are reduced to O(n) operations, as the weights wi can be precomputed like the divided differences in O(n2 ) operations. Moreover, the complexity of changing the weights due to the addition of one extra interpolation point is comparable to that for the divided differences, as shown in [80]. 9.1. INTRODUCTION 119 The choice of the weights wi in (9.2) ensures that r is a polynomial. However, as all nonzero weights lead to interpolation, the barycentric form lends itself to representing a rational interpolating function. In fact, any rational function interpolating the data with a denominator and a numerator of degree at most n can be represented in the barycentric form [8]. Polynomial interpolation is known to be ill conditioned for an unsuitable choice of points yi , leading to undesired high oscillations. Using a rational interpolant instead can lead to much more pleasing results. On the other hand, a rational function can have poles near or inside the interpolation interval. This can be a blessing if one wants to approximate a function that has poles, but a curse if one wants to avoid them. Moreover, it is not easy to control the location of those poles. In classical rational interpolation the objective is to find two polynomials p and q with r(x) = p(x)/q(x), where the degrees of p and q sum up to n. From p and q then the barycentric form might be derived. Alternatively one can use the barycentric formula directly by choosing suitable weights. In [7] Berrut suggests the weights wi = (−1)i , which in addition to interpolation ensure that r does not have any poles in R. In [26] Floater and Hormann introduce a rational interpolant by blending polynomials which interpolate a small part of the data, and give the formula for computing the corresponding weights in the barycentric form. They are able to prove that the interpolant has no poles in R and that it has a high convergence rate which depends on the degree of the polynomials. Moreover, it turns out that Berrut’s weights are a special case of this approach. A different approach to interpolating the data would be to use piecewise polynomials like splines with some continuity between the parts. This approach has a huge practical importance and is thus quite popular. However, rational interpolants can provide a higher convergence rate and better smoothness over the whole domain. 9.1.2 Hermite interpolation So far the above discussion covered the Lagrange case. In the more general setting of the Hermite interpolation problem, we do not only want to interpolate the function values but also derivatives up to some order. Let in addition to the yi the multiplicities κi ≥ 1 be given. We want to find a function r where r(j) (yi ) = f (j) (yi ), i = 0, . . . , n, j = 0, . . . , κi − 1. (9.3) Similar to the Lagrange case there exists a unique polynomial interpolating the data (see e.g. [11]), (k) κiX −j−1 n κX i −1 X 1 Ω(x) (x − yi )k (x − yi )κi (j) r(x) = f (yi ) (9.4) j! (x − yi )κi −j k! Ω(x) x=yi i=0 j=0 k=0 with Ω(x) = n Y i=0 (x − yi )κi . 120 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES (k) Here (. . .)x=yi means the k-th derivative of the term in brackets evaluated at yi . The interpolating polynomial can again be expressed by a barycentric formula. We reformulate (9.4) into r(x) = Ω(x) n κX i −1 X i=0 k=0 1 1 k+1 (x − yi ) (κi − 1 − k)! (x − yi )κi Ω(x) (κi −1−k) X k x=yi f (j) (yi ) (x − yi )j , j! j=0 use the uniqueness for f = 1, which gives 1 = Ω(x) n κX i −1 X i=0 k=0 1 1 k+1 (x − yi ) (κi − 1 − k)! (x − yi )κi Ω(x) (κi −1−k) , x=yi and get Xn r(x) = i=0 Xk f (j) (yi ) wi,k (x − yi )j k=0 (x − yi )k+1 j=0 j! Xn Xκi −1 wi,k Xκi −1 i=0 k=0 (9.5) (x − yi )k+1 with the weights wi,k = 1 (κi − 1 − k)! (x − yi )κi Ω(x) (κi −1−k) . (9.6) x=yi Similarly to the Lagrange case, the barycentric formula (9.5) provides interpolation as long as the weights wi,κi −1 6= 0 for all i = 0, . . . , n [68]. Thus the barycentric formula again lends itself to representing rational interpolants. A rational Hermite interpolant Pn ofthe form (9.5) is completely determined by the denominator of degree at most i=0 κi − 1. In [68] Schneider and Werner provide an efficient way to compute the corresponding weights of such a denominator given in Newton form. The same algorithm can be used to calculate 9.2. A SIMPLE BERRUT HERMITE INTERPOLANT 121 the weights (9.6), as using the formula directly is relatively expensive. ωi,k = 0, k = 0, . . . , κi − 1 i = 0, . . . , n, ω0,κ0 −1 = 1 for i = 0 to n − 1 do { for m = i + 1 to n do { a = 1/(yi − ym ) for k = 0 to κm − 1 do { (9.7) ωi,κi −1 = a ∗ ωi,κi −1 for j = 1 to κi − 1 do { ωi,κi −1−j = a ∗ (ωi,κi −1−j − ωi,κi −j ) } ωm,κm −1−k = ωm,κm −1−k − ωi,0 } } } Schneider and Werner also propose the choice of a certain denominator to avoid poles and yield pleasant results. 9.1.3 Contribution In rational Hermite interpolation literature surprisingly little work seems to be done using the barycentric formula directly by providing explicit formulas for the weights. The contribution of this paper splits into two parts. First we will study a Hermite extension of Berrut’s weights [7] and the Hermite case of Floater and Hormann’s [26] approach. The latter will lead to an explicit formula for the weights. As a second part we will study the first order univariate case of the recently developed transfinite interpolation method of pointwise radial minimization [29]. This study will lead to a barycentric-like formula and in addition enable us to prove the interpolation property of this new method in the chosen setting. 9.2 A simple Berrut Hermite interpolant Berrut’s weights in the Lagrange case provide an easy computable rational interpolant. One possible extension to the Hermite setting yields wi,k = 0, 0 ≤ k < κi − 1 and wi,κi −1 = (−1)si −κ0 , where s−1 = 0 and si = i X j=0 κj = si−1 + κi . 122 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES The −κ0 part in the exponent of the weights forces w0,κ0 −1 = 1. As all weights wi,κi −1 6= 0 the interpolation condition is fulfilled, and as wi+1,κi+1 −1 = (−1)κi+1 wi,κi −1 the weights also fulfill the necessary condition for a rational interpolant without poles given in [68]. In the case of constant multiplicity, meaning κi = K for all i, Proposition 9.1 shows that the resulting function r really does not have any poles in R. However, for the general case, meaning non-constant multiplicities, the function r might posses poles. We will show this by giving an example where the denominator in (9.5) is zero. Let n = 2 and y0 = −2/3, y1 = −1/2 and y2 = 4 with multiplicities κ0 = 2, κ1 = 1 and κ2 = 1. Choosing x = 0 then yields n κX i −1 X i=0 k=0 1 wi,k −1 1 = + = 0. 2 + (x − yi )k+1 x=0 x − 4 x=0 x + 21 x + 23 Proposition 9.1 Assume that all points have the same multiplicity κi = K > 0. Then the barycentric rational interpolant defined by (9.5) with weights wi,k = 0, 0≤k <K −1 and wi,K−1 = (−1)iK (9.8) has no poles in R. Proof. The weights wi,K−1 are nonzero for all i. Therefore, according to Corollary 2.2 in [68], the denominator of r is nonzero for x = yi for all i. In the following we can thus assume that x ∈ R\{y0 , . . . , yn }. We have n κX i −1 X i=0 k=0 n X (−1)iK wi,k = , k+1 (x − yi ) (x − yi )K i=0 hence for even K we obviously have a strictly positive denominator. For odd K we let α = −1 if x < y0 , α = n if x > yn and else α be such that x ∈ (yα , yα+1 ). This yields ! α n−1−α n X X X (−1)i (−1)i (−1)iK α = (−1) + , (9.9) (x − yi )K (x − yα−i )K (yα+1+i − x)K i=0 i=0 i=0 where an empty sum is considered to be zero. For α ≥ 0 we can rearrange the first sum into pairs, leading to α X i=0 α−1 X 1 1 (−1)i = − K K (x − yα−i )K (x − y ) (x − y α−i α−i−1 ) i=0 i even for odd α and α X i=0 α−2 X 1 1 1 (−1)i = + − K K (x − yα−i )K (x − y0 )K (x − y ) (x − y α−i α−i−1 ) i=0 i even 9.3. THE HERMITE FLOATER-HORMANN INTERPOLANT 123 for even α. As 0 < x − yα−i < x − yα−i−1 we have 1 1 − > 0. (x − yα−i )K (x − yα−i−1 )K This yields together with y0 < x that α X i=0 (−1)i > 0. (x − yα−i )K Similarly, for α < n we can write the second sum in (9.9) as n−1−α X i=0 n−2−α X (−1)i 1 1 = − K K (yα+1+i − x)K (y − x) (y α+1+i α+2+i − x) i=0 i even if n − 1 − α is odd and as n−1−α X i=0 n−3−α X 1 1 1 (−1)i = + − K K K (yα+1+i − x) (yn − x) (yα+1+i − x) (yα+2+i − x)K i=0 i even if n − 1 − α is even. With 0 < yα+1+i − x < yα+2+i − x this gives n−1−α X i=0 (−1)i > 0. (yα+1+i − x)K Hence the denominator of r is strictly positive for even α and strictly negative for odd α. 2 Given constant multiplicity at the points yi , the interpolant using Berrut’s weights (9.8) has precision K−1. This can be shown by observing that in the barycentric formula (9.5) the sum over j represents the k-th order Taylor expansion of f and thus reproduces polynomials of degree at most k. Hence, with f being a polynomial of degree at most K − 1, we have (−1)iK i=0 (x−yi )K Pn r(x) = 9.3 f (j) (yi ) (x j=0 j! Pn (−1)iK i=0 (x−yi )K PK−1 − yi )j (−1)iK i=0 (x−yi )K f (x) Pn (−1)iK i=0 (x−yi )K Pn = = f (x). The Hermite Floater-Hormann interpolant Our extension of Berrut’s weights to the general Hermite problem does not yield satisfactory results, as the resulting interpolant might have poles for non-constant multiplicities. In the Lagrange setting, Berrut’s weights are a special case of the interpolant introduced in [26] by Floater and Hormann. Instead of extending Berrut’s weights, let us consider Floater and Hormann’s interpolant in the general Hermite setting. 124 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES Let the points x0 , . . . , xN be given. The interpolant r is then defined as PN −d r(x) = i=0 λi (x)pi (x) . PN −d i=0 λi (x) (9.10) Here the polynomial pi of degree d interpolates the data given at the points xi , . . . , xi+d and (−1)i . λi (x) = (x − xi ) · · · (x − xi+d ) In the Lagrange setting the points xi are mutually distinct. However, it is quite common to represent the Hermite interpolation conditions (9.3) also by just letting the points xi coalesce. The understanding is that if a point appears k times, than the interpolating function interpolates derivatives of order up to k − 1 at this point. Thus defining xsj−1 = xsj−1 +1 = . . . = xsj −1 = yj (9.11) for j = 0, . . . , n yields N = sn − 1 and enables us to use (9.10) also in the general Hermite setting. 9.3.1 The barycentric form In [26] the barycentric formula is given for the Lagrange, but not for the Hermite case. In order to express (9.10) in barycentric form, we need to be able to represent each polynomial pi in the Hermite form (9.4). For this in turn it is necessary to compute the multiplicity mi,j of any point yj for each polynomial pi , where mi,j = 0 means that yj does not contribute to determining pi . From (9.11) follows, that 0 if sj ≤ i (a) s − i if s ≤ i < s ≤ i + d, (b) j j−1 j κj if i < sj−1 < sj ≤ i + d, (c) mi,j = (9.12) d+1 if sj−1 ≤ i ≤ i + d < sj , (d) i + d + 1 − sj−1 if i < sj−1 ≤ i + d < sj , (e) 0 if sj−1 > i + d. (f ) In (9.12) the different cases describe that the points xsj−1 , . . . , xsj −1 are (a) left of xi , . . . , xi+d . (b) partially left of xi , . . . , xi+d or contained within them for sj−1 = i. (c) contained in xi , . . . , xi+d , but without sj−1 = i or sj − 1 = i + d. (d) a superset of xi , . . . , xi+d or equal to them. (e) partially right of xi , . . . , xi+d or contained within them for sj − 1 = i + d. (f ) right of xi , . . . , xi+d . 9.3. THE HERMITE FLOATER-HORMANN INTERPOLANT 125 The value of mi,j can be determined by at most four comparisons. if sj ≤ i or sj−1 > i + d then mi,j = 0 elsif sj > i + d then { if sj−1 ≤ i then mi,j = d + 1 else mi,j = i + d + 1 − sj−1 } else { (9.13) if sj−1 ≤ i then mi,j = sj − i else mi,j = κj } This proves that all possible cases are considered in (9.12). Observe also that mi,j = 0 for the cases (a) and (f ), whereas 0 < mi,j ≤ κj for the cases (b) − (e). Thus we can define Ji = {j | mi,j > 0}, Ij = {i | mi,j > 0} = {i | 0 ≤ i ≤ N − d ∧ sj−1 − d ≤ i ≤ sj − 1}. The mi,j now enable us to express the polynomial pi in Hermite form. Let Y Ωi (x) = (x − yj )mi,j j∈Ji and vi,j,k = 1 (mi,j −1−k)! (mi,j −1−k) (x−yj )mi,j Ωi (x) if 0 ≤ k < mi,j x=yj 0 else, which yields pi (x) = Ωi (x) j −1 X κX j∈Ji k=0 k X f (l) (yj ) 1 v (x − yj )l . i,j,k (x − yj )k+1 l! l=0 Substituting this into the numerator in (9.10) gives N −d X λi (x)pi (x) = i=0 N −d X j −1 X κX i=0 j∈Ji k=0 = j −1 n κX X j=0 k=0 k X f (l) (yj ) (−1)i vi,j,k (x − yj )l k+1 (x − yj ) l! l=0 k X wj,k f (l) (yj ) (x − yj )l , (x − yj )k+1 l! l=0 where wj,k = X (−1)i vi,j,k . i∈Ij From 1 = Ωi (x) j −1 X κX j∈Ji k=0 1 vi,j,k (x − yj )k+1 126 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES follows also that N −d X λi (x) = i=0 N −d X j −1 j −1 n κX X X κX wj,k (−1)i vi,j,k = . k+1 (x − yj ) (x − yj )k+1 j=0 i=0 j∈Ji k=0 k=0 Algorithm (9.7) provides an efficient method for computing the vi,j,k and hence the wj,k . By computing the vi,j,k starting with i = 0 and then increasing it, one actually does not need to compute the multiplicities mi,j using algorithm (9.13). When i increases by one, only the first mi,j > 0, and either the last mi,j > 0 or the first mi,j = 0 after that, change. 9.3.2 Properties In [26] is shown that if κj = 1 for all points the interpolant will have no poles in R. This result carries over to the Hermite case under the condition that d ≥ max (κj ) − 1, (9.14) 0≤j≤n as shown in Proposition 9.2. Condition (9.14) makes sense as this is the minimal degree of a polynomial needed to be able to interpolate all given data at a point with maximal multiplicity. In fact, this condition determines whether r fulfills the Hermite interpolation conditions (9.3) or not, see Proposition 9.3. Proposition 9.2 The function r from (9.10) has under condition (9.14) no poles in R. Proof. By multiplying (9.10) with (−1)N −d Ω(x) the interpolant can be expressed as PN −d µi (x)pi (x) r(x) = i=0 (9.15) PN −d i=0 µi (x) with µi (x) = (−1)N −d Ω(x)λi (x) = i−1 Y j=0 (x − xj ) N Y (xk − x). k=i+d+1 We will show that the interpolant has no poles by showing that the denominator in (9.15) is strictly positive for all x ∈ R. Let first x = yα for some α, 0 ≤ α ≤ n and Jα := {i | 0 ≤ i ≤ N − d ∧ sα − 1 − d ≤ i ≤ sα−1 }. Due to (9.14) Jα is non-empty and µi (xα ) = 0 for all i 6∈ Jα and µi (xα ) > 0 for all i ∈ Jα and hence N −d X µi (xα ) > 0. i=0 For the other x ∈ R\{y0 , . . . , yn } the proof that the denominator in (9.15) is strictly positive by Floater and Hormann in [26] is still valid under condition (9.14) and hence 9.3. THE HERMITE FLOATER-HORMANN INTERPOLANT 127 carries over. However, note that there is a misprint in the proof in [26]. On page 320 in the first inequality from the top, it must be xi+d+1 − x > xi − x not xi+d+1 − x > xi+1 − x 2 from which follows that |µi (x)| > |µi+1 (x)| for all i where xi > x. Proposition 9.3 If condition (9.14) is fulfilled, the rational function r defined in (9.10) interpolates the given Hermite data, i.e. (9.3) is true. If (9.14) is not fulfilled, then all derivatives of the order max0≤j≤n (κj ) − 1 are unattainable. Proof. We will prove the interpolation property by showing that under condition (9.14) the weights wj,κj −1 are nonzero for all j. From Proposition 2.1 in [68] then follows that r interpolates the Hermite data. Let 0 ≤ j ≤ n be arbitrary, but fixed. Then if d = κj − 1 this yields wj,κj −1 = (−1)sj−1 vsj−1 ,j,κj −1 = (−1)sj−1 , which is clearly nonzero. For d > κj − 1 we can for all i where mi,j = κj write Ωi = i+d Y sj−1 −1 −1 (x − xi ), and vi,j,κ = (−1)i+d+1−sj j −1 k=i Y (yj − xk ) i+d Y (xl − yj ), l=sj k=i where an empty product is considered to be one. The weight wj,κj −1 then becomes X wj,κj −1 = (−1)i vi,j,κj −1 i mi,j =κj sj−1 −1 d+1−sj = (−1) X Y i mi,j =κj k=i (yj − xk ) i+d Y !−1 (xl − yj ) 6= 0. l=sj This is nonzero as in the first product yj − xk > 0 and in the second xl − yj > 0 and hence the whole sum is strictly positive. Setting d ≥ max0≤j≤n (κj ) − 1 then gives wj,κj −1 6= 0 for all j = 0, . . . , n. Let now d < max0≤j≤n (κj ) − 1 =: K. Then mi,j ≤ K and hence vi,j,K = 0 for all i, j. But then wj,K = 0 for all j where κj = K + 1. From the remarks to Proposition 2.1 in [68] follows that the given derivatives f (K) (yj ) are then unattainable. 2 The interpolant r has precision of degree d as for any polynomial f with degree at most d the polynomials pi reproduce f and hence PN −d PN −d λi (x) i=0 λi (x)pi (x) r(x) = PN −d = f (x) Pi=0 = f (x). N −d i=0 λi (x) i=0 λi (x) In [26] upper bounds on the approximation error of r to a sufficiently smooth function f are derived for d = 0 and d ≥ 1. If max0≤j≤n (κj ) > 1 then (9.14) ensures that d ≥ 1. The 128 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES d=1 d=2 K=2 d=3 d=4 d=2 K=3 d=3 d=4 k k k k k k k k =0 =1 =0 =1 =0 =1 =0 =1 k k k k k k k k k =0 =1 =2 =0 =1 =2 =0 =1 =2 δ∗,k 1 1 h , 0, 0, . . . , 0, 0, − h 1, 1, . . . , 1, 1 2 , 0, 0, . . . , 0, 0, − h2 h 1, 2, 2, . . . , 2, 2, 1 5 1 1 5 2h , 2h , 0, 0, . . . , 0, 0, − 2h , − 2h 1, 3, 3, . . . , 3, 3, 1 3 3 3 3 h , h , 0, 0, . . . , 0, 0, − h , − h 1, 5, 6, 6, . . . , 6, 6, 5, 1 2 4 4 4 4 2 h2 , h2 , h2 , . . . , h2 , h2 , h2 1 1 h , 0, 0, . . . , 0, 0, − h 1, 1, . . . , 1, 1 4 8 8 8 8 4 h2 , h2 , h2 , . . . , h2 , h2 , h2 , 2 2 h , 0, 0, . . . , 0, 0, − h 1, 2, 2, . . . , 2, 2, 1 13 27 14 14 14 14 27 13 2h2 , 2h2 , h2 , h2 , . . . , h2 , h2 , 2h2 , 2h2 3 3 h , 0, 0, . . . , 0, 0, − h 1, 3, 3, . . . , 3, 3, 1 (n ≥ 1) (n ≥ 1) (n ≥ 3) (n ≥ 3) (n ≥ 1) (n ≥ 1) (n ≥ 3) Table 9.1: The δj,k where wj,k = (−1)jK δj,k if all points yj have multiplicity K and are equidistant with yj+1 − yj = h. derivation of the bound for this case is still valid for coalescing points xi under condition (9.14). This leads to an approximation error of O(hd+1 ) if d ≥ 1 and O(h) if d = 0 and yj+1 − yj yj+1 − yj , max min 1≤j≤n−2 yj − yj−1 yj+2 − yj+1 bounded as h → 0, where h = max0≤j≤n−1 (yj+1 − yj ) [26]. 9.3.3 Some explicit weights Let the points be equidistant with h = yj+1 − yj and let them all have the same constant multiplicity κi = K. In this setting we are for relatively low d and K able to compute the weights wj,k explicitly. We will do so exemplary for the case of K = 2, d = 2. The computation for other d and K is similar and the resulting weights are shown in Table 9.1 for K = 2, 3 and degree d up to four. For the weights for K = 1 see [26]. We assume n ≥ 1. For K = 2 we have sj = 2(j + 1) which together with d = 2 yields N − d = 2n − 1 and m2j,j = 2 and m2j+1,j = 1 with j = 0, . . . , n − 1. This gives Ω2j (x) = (x − yj )2 (x − yj+1 ), Ω2j+1 (x) = (x − yj )(x − yj+1 )2 9.4. UNIVARIATE POINTWISE RADIAL MINIMIZATION 129 and ω0,0 = v0,0,0 − v1,0,0 , ωj,0 = v2(j−1),j,0 − v2(j−1)+1,j,0 + v2j,j,0 − v2j+1,j,0 , j = 1, . . . , n − 1, ωn,0 = v2(n−1),n,0 − v2(n−1)+1,n,0 , ω0,1 = v0,0,1 , ωj,1 = −v2(j−1)+1,j,1 + v2j,j,1 , j = 1, . . . , n − 1, ωn,1 = −v2(n−1)+1,n,1 . Computing the corresponding values of vi,j,k provides 1 1 = 2, v2(j−1),j,0 = (x − yj−1 )2 x=yj h −1 1 v2(j−1)+1,j,0 = = − 2, 2 (x − yj−1 ) x=yj h −1 1 v2j,j,0 = = − 2, (x − yj+1 )2 x=yj h 1 1 v2j+1,j,0 = = 2, 2 (x − yj+1 ) x=yj h 1 1 v2(j−1)+1,j,1 = = , x − yj−1 x=yj h 1 1 v2j,j,1 = =− , x − yj+1 x=yj h j = 1, . . . , n, j = 1, . . . , n, j = 0, . . . , n − 1, j = 0, . . . , n − 1, j = 1, . . . , n, j = 0, . . . , n − 1 resulting into the weights 2 , h2 1 =− , h 2 , h2 1 =− . h ω0,0 = − ωj,0 = 0, j = 1, . . . , n − 1, ωn,0 = ω0,1 2 ωj,1 = − , h j = 1, . . . , n − 1, ωn,1 As multiplying the weights by a constant factor does not change the interpolant, multiplying with −h yields the weights in Table 9.1. 9.4 Univariate pointwise radial minimization In the recent paper [29] the idea of pointwise radial minimization was introduced to compute a Hermite interpolant on an arbitrary, bounded domain. Unfortunately, the authors were not able to prove the interpolation property. We will now examine the simplest non-trivial case of using this approach in the univariate Hermite setting with κi = 2 for i = 0, . . . , n. From the analysis in [29] we know that for the case where n is odd, the resulting function is 130 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES unique, has no poles and cubic precision inside the domain. These results extend readily to the outside of the domain, but not easily, or not at all, to even n. Therefore we first consider these properties for general n which will lead us to the interpolation property of univariate pointwise radial minimization for first order Hermite data. Let x ∈ R\{y0 , . . . , xn } be fixed. In the given setting, the idea of pointwise radial minimization is to use for each point yi the unique cubic polynomial qi : [0, |x − yi |] → R which interpolates f (yi ) and f 0 (yi ) at |x − yi | and the unknown value qi (0) = a and derivative qi0 (0) = b at zero. Then for each i the energy Z Ei (a) = |x−yi | (qi00 (r))2 dr ≥ 0, a = (a, b)T 0 is defined. Let k be such that x ∈ (yk , yk+1 ) with k = −1 if x < y0 and k = n for x > yn . The total energy of a vector a is then defined by E(a) = E(a) + E(a), E(a) = k X (−1)k−i Ei , E(a) = i=0 n X (−1)k+1−i Ei , i=k+1 where an empty sum is considered to be zero. The value of the interpolating function is determined by finding the a∗ that minimizes the energy and setting r(x) = a∗ . 9.4.1 A barycentric-like form From Lemma 1 in [29] we know that Ei (a) can be expressed by Ei (a) = aT Mi a + NiT a + Pi where, with vi = −1 if i ≤ k and vi = 1 for i > k, 2 6 3(yi − x) , vi Mi = (yi − x)3 3(yi − x) 2(yi − x)2 4 −6f (yi ) + 3(yi − x)f 0 (yi ) vi Ni = , (yi − x)3 −3(yi − x)f (yi ) + (yi − x)2 f 0 (yi ) 4 vi Pi = 3f (yi )2 − 3(yi − x)f (yi )f 0 (yi ) + (yi − x)2 (f 0 (yi ))2 . 3 (yi − x) The resulting energy can be expressed similarly by E(a) = aT M a + N T a + P with k+1 M = (−1) n X i=0 (−1)i vi Mi (9.16) 9.4. UNIVARIATE POINTWISE RADIAL MINIMIZATION 131 and likewise for N and P . Minimizing the energy, or solving M a = −N/2, gives the univariate radial minimizing function r, r(x) = r1 (x) + r2 (x), P Pn n (−1)i r1 (x) = j 3(yj −yi )+(yj −x) j=0 (−1) (yi −x)(yj −x)2 i=0 (yi −x)2 (−1)i i=0 (yi −x)2 Pn 2(−1)i i=0 (yi −x)2 Pn r2 (x) = P n (−1)i i=0 (yi −x)2 P P f (yi ) + (x − yi )f 0 (yi ) n j 3(yj −yi )+(yj −x) j=0 (−1) (yi −x)(yj −x)2 n j (yj −yi ) j=0 (−1) (yj −x)2 P f 0 (yi ) n j 3(yj −yi )+(yj −x) j=0 (−1) (yi −x)(yj −x)2 (9.17) This form can be considered a barycentric-like form, but due to the double sum the evaluation costs are of order O(n2 ). 9.4.2 Unique and free of poles For the function r to be uniquely and well defined for all x ∈ R\{y0 , . . . , xn }, the matrix M in (9.16) must be non-singular. Proposition 9.4 shows that M is positive definite, which in addition means that the denominator of r in (9.17) is strictly positive for all x ∈ R\{y0 , . . . , xn }. Together with the interpolation property shown later, this means that r has no poles in R. Proposition 9.4 The matrix M is positive definite for all x ∈ R\{y0 , . . . , yn } and for all n ≥ 0. Proof. We will first show that aT M a ≥ 0 for all a ∈ R2 . For this, let f = 0. Then N = 0 = P and aT M a = E(a). From Lemma 2 in [29] we know that the Ei are non-increasing with increasing distance of yi from x. In other words, Ei ≤ Ei+1 for all i < k and Ei+1 ≤ Ei for all i > k. Hence E(a) ≥ 0 and E(a) ≥ 0 and thus aT M a = E(a) = E(a) + E(a) ≥ 0. Now suppose that aT M a = 0 and again let f = 0. If k ≥ 0 and even, then E(a) ≥ E0 (a) ≥ 0 and if k ≥ 0 and odd then E(a) ≥ E1 (a)−E0 (a) ≥ 0. Similar, if n−k > 0 and odd then E(a) ≥ En (a) ≥ 0 and for even n − k > 0 we have E(a) ≥ En−1 (a) − En (a) ≥ 0. As n ≥ 0 at least one of the conditions k ≥ 0 and n − k > 0 is true. From the proof of Lemma 2 in [29] also follows that if Ei (a) = Ei+1 (a) then Ei (a) = Ei+1 (a) = 0 for all i 6= k. This means that either Z |x−y0 | Z |x−yn | E0 (a) = (q000 (r))2 dr = 0 or En (τ ) = (qn00 (r))2 dr = 0 0 0 or both. Hence q0 and/or qn are linear and due to f (y0 ) = f 0 (y0 ) = f (yn ) = f 0 (yn ) = 0 is q0 = 0 and/or qn = 0. But then a = 0. 2 132 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES 9.4.3 Interpolation property To show that the function r really does interpolate the given data, Qn we reformulate r by multiplying the numerator and denominator with the polynomial l=0 (yl − x)4 , yielding Pn r1 (x) = i=0 Ui (x)(f (yi ) + (x − yi )f 0 (yi )) Pn , i=0 Ui (x) r2 (x) = Pn V (x)f 0 (yi ) i=0 Pn i , i=0 Ui (x) (9.18) where Ui (x) = n X Vi (x) = µi,j (x), n X νi,j (x), j=0 j=0 and µi,j (x) = n Q (yl − x)4 (−1)i+j (3(yj − yi ) + (yj − x))(yi − x)(yj − x)2 l=0 if i 6= j, n Q 4 l=0 (yl − x) if i = j, l6=i,j l6=i νi,j (x) = (−1)i+j 2(yj − yi )(yi − x)2 (yj − x)2 n Y (yl − x)4 . l=0 l6=i,j Let now x = yα for some α with 0 ≤ α ≤ n. Then for all i, j = 0, . . . , n µi,j (yα ) = νi,j (yα ) = n Q (yl − yα )4 6= 0 if i = j = α, 0 else, l=0 l6=α 0 νi,j (yα ) = 0, as well as µ0i,j (yα ) = 0 for i 6= α, leading to Uα (yα ) 6= 0, Ui6=α (yα ) = 0, Vi (yα ) = 0, Ui60=α (yα ) = 0, Vi0 (yα ) = 0. Simply using this in (9.18) and in the corresponding derivatives yields r1 (yα ) = f (yα ), r2 (yα ) = 0, r10 (yα ) = f 0 (yα ) r20 (yα ) = 0. This means that r1 already interpolates the given data and as r = r1 + r2 the function r does too. 9.5. NUMERICAL EXAMPLES 133 25 25 20 20 15 15 10 10 5 5 0 0 −5 0 5 −5 0 5 Figure 9.1: Univariate pointwise radial minimization for f (x) = x2 and on the left y0 = −2, y1 = −1, y2 = 1, y3 = 2, whereas on the right y0 = −2, y1 = −1, y2 = 0, y3 = 1, y4 = 2. The black line represents f , the red r whereas the green is r1 and the blue line is r2 . Clearly the cubic precision is lost for even n. 9.4.4 Precision The function r1 defined in (9.17) has linear precision. This can be easily observed from writing r1 as in (9.18). Letting f (x) = α + βx then yields Pn Pn (α + βx) i=0 Ui (x) i=0 Ui (x) α + βyi + (x − yi )β Pn Pn r1 (x) = = = α + βx. i=0 Ui (x) i=0 Ui (x) Observe also that νi,i (x) = 0 and that νi,j (x) + νj,i (x) = 0 for all x and i, j = 0, . . . , n and thus Pn Pn Pn Pn i=0 νii (x) + j=i+1 νi,j (x) + νj,i (x) i=0 j=0 νi,j (x)β Pn P =β = 0. r2 (x) = Pn Pn n µ (x) j=0 i,j j=0 µi,j (x) i=0 i=0 Hence the function r also has linear precision. In [29] a cubic precision for r is shown in the case of n being odd. However, as can be seen in Figure 9.1, this cubic precision does not extend to even n. 9.5 Numerical examples We finish the paper with several numerical examples to illustrate the behaviour of the discussed interpolants for equidistant data points with h = yi+1 − yi . All experiments are done in MATLAB using double precision floating point arithmetic. When evaluating an interpolant at a x which in floating point representation is identical to some yi , the value f (yi ) is used. For all other x we use the corresponding barycentric or barycentric-like formula. This method was introduced by Berrut and Trefethen in [9] and seems to be stable in practice. 134 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES Figures 9.2 to 9.6 show the interpolants for different f and n = 5, 10, 20, 40. The visible convergence in the figures is confirmed by the quantitative experiments shown in the different tables. For each function in the Tables 9.2 to 9.4 the first column shows the maximal absolute error and the second the corresponding estimated approximation order. Each error is computed numerically by evaluating the interpolant at 10,001 equidistant points between y0 and yn , comparing these values to the corresponding values of the interpolated function and finally taking the maximal absolute value of all differences. Similarly in Table 9.5 for each method the first column contains the maximal absolute error and the second the approximation order. For all functions the points yi , i = 0, . . . , n lie in the interval [−5, 5], except for the sine function, where yi ∈ [0, 8]. Table 9.2 examines the interpolant using Berrut’s weights (9.8). In columns 2 and 3 the interpolant is applied to Runge’s function 1/(1 + x2 ), which is known to diverge for Lagrange polynomial interpolation on equidistant data points. Despite the lack of a theoretical analysis of the approximation order, we would expect an order of O(hK ) due to the precision of K − 1. The experimental results indicate that this is true for odd K, but that for even K we only get an approximation order of O(hK−1 ). In the last column the interpolant 5 is applied to |x| 3 . The results suggest that the approximation order also depends on the smoothness of the function to be interpolated. For the Hermite Floater-Hormann interpolant the precision of degree d and the approximation order are known. The experiments listed in Table 9.3 confirm these results. In the 2 last column the interpolant is applied to |x| 3 which yields a lower approximation order than d+1 O(h ). This suggests that the approximation order really does depend on the smoothness condition mentioned in Theorem 2 in [26]. Although we have no theoretical analysis of the approximation order for the univariate pointwise radial minimization method, we would expect a quadratic one due to the linear precision of the method. This quadratic order can in fact be observed in the experiments shown in Table 9.4. Even if only odd n are used, for which we have cubic precision, the approximation order still remains quadratic. The higher errors of the odd n in column 3 compared to column 2 probably stem from missing the mid-point with the data points yi . Similar to Berrut’s and Hermite Floater-Hormann’s method, using a less smooth function seems to lead to a decrease in the approximation order. In Table 9.5 we compare the different methods applied to Runge’s function with multiplicities κi = 2, as all three methods are able to interpolate this kind of data. In addition we also list the errors and approximation order of the piecewise cubic interpolant to the given data. When using a degree of 3 for the Hermite Floater-Hormann interpolant, its approximation order matches the one for the piecewise cubic polynomial. However, the maximal absolute error seems to be of several magnitudes lower. 9.5. NUMERICAL EXAMPLES 135 25 25 20 20 15 15 10 10 5 5 0 0 −5 0 5 −5 25 25 20 20 15 15 10 10 5 5 0 0 −5 0 5 −5 0 5 0 5 Figure 9.2: Using Berrut’s weights to interpolate x2 with n = 5, 10, 20, 40 and K = 1 for the green, K = 2 for the red and K = 3 for the blue line. The black line represents x2 . n 10 20 40 80 160 320 640 1280 x2 K=2 1.2e-00 5.9e-01 1.1 2.9e-01 1.0 1.4e-01 1.0 7.0e-02 1.0 3.5e-02 1.0 1.7e-02 1.0 8.7e-03 1.0 Runge K=3 4.1e-02 1.8e-03 4.5 1.6e-06 10.2 2.5e-07 2.6 3.2e-08 3.0 4.1e-09 3.0 5.1e-10 3.0 6.4e-11 3.0 Runge K=4 1.2e-02 1.3e-05 9.9 1.9e-06 2.8 2.4e-07 2.9 3.1e-08 3.0 3.9e-09 3.0 4.9e-10 3.0 6.1e-11 3.0 sin(x) K=5 2.8e-05 9.4e-07 4.9 3.0e-08 5.0 9.5e-10 5.0 3.0e-11 5.0 9.3e-13 5.0 3.1e-14 4.9 4.2e-15 2.9 5 |x| 2 K=3 9.4e-02 1.7e-02 2.5 2.9e-03 2.5 5.2e-04 2.5 9.2e-05 2.5 1.6e-05 2.5 2.8e-06 2.5 4.9e-07 2.5 Table 9.2: Errors and estimated approximation orders for Berrut’s weights. 136 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 −5 0 5 0 −5 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0 5 0 5 0.1 0 −5 0 5 0 −5 Figure 9.3: Interpolating Runge’s function 1/(1 + x2 ) with the Hermite Floater-Hormann interpolant for n = 5, 10, 20, 40. The blue line uses κi = 1, d = 2, the green κi = 2, d = 1, the red κi = 3, d = 3 and the black line uses κ4i = 3, κ4i+1 = 1, κ4i+2 = 2, κ4i+3 = 1, d = 3. n 10 20 40 80 160 320 640 1280 Runge κi = 2, d = 2 6.3e-03 3.8e-05 3.3e-06 4.1e-07 5.2e-08 6.4e-09 8.1e-10 1.0e-10 7.4 3.5 3.0 3.0 3.0 3.0 3.0 Runge κi ∈ [1, 3], d=3 3.0e-03 1.6e-03 1.0 4.6e-06 8.4 4.7e-07 3.3 2.7e-10 10.7 3.9e-11 2.8 2.5e-12 4.0 1.5e-13 4.0 3 Runge κi = 2, d = 4 sin(x) κi = 3, d = 2 |x| 2 κi = 2, d = 3 6.1e-03 1.3e-05 8.8 4.6e-09 11.5 1.4e-10 5.1 4.2e-12 5.0 1.3e-13 5.0 8.0e-15 4.0 5.6e-15 0.5 2.0e-03 2.6e-04 3.2e-05 4.0e-06 5.0e-07 6.3e-08 7.9e-09 9.9e-10 3.9e-02 1.4e-02 4.9e-03 1.7e-03 6.1e-04 2.2e-04 7.7e-05 2.6e-05 3.0 3.0 3.0 3.0 3.0 3.0 3.0 1.5 1.5 1.5 1.5 1.5 1.5 1.5 Table 9.3: Errors and estimated approximation orders for Hermite Floater-Hormann’s weights. In column 2 the multiplicities are κ4i = 3, κ4i+1 = 1, κ4i+2 = 2 and κ4i+3 = 1. 9.5. NUMERICAL EXAMPLES 137 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.4 −0.6 −0.6 −0.8 −0.8 −1 −1 0 1 2 3 4 5 6 7 8 0 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.4 −0.6 −0.6 −0.8 −0.8 −1 0 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 −1 1 2 3 4 5 6 7 8 0 Figure 9.4: Comparing the rational interpolant for the sine function with κi = 2 for all i and n = 5, 10, 20, 40. The green line uses Berrut’s weights, the black Hermite FloaterHormann’s weights with d = 3 and the red line is the univariate pointwise radial minimizing function. n 10 20 40 80 160 320 640 1280 x2 2.7e-02 6.7e-03 1.7e-03 4.2e-04 1.1e-04 2.7e-05 6.7e-06 1.6e-06 Runge 2.0 2.0 2.0 2.0 2.0 2.0 2.1 2.5e-02 5.0e-04 1.6e-04 4.1e-05 1.0e-05 2.6e-06 6.6e-07 1.6e-07 5.6 1.7 1.9 2.0 2.0 2.0 2.0 Runge with n = n + 1 1.8e-02 1.3e-03 4.1 3.4e-04 2.0 8.9e-05 2.0 2.3e-05 2.0 5.7e-06 2.0 1.4e-06 2.0 3.6e-07 2.0 3 |x| 2 sin(x) 6.6e-03 1.8e-03 4.5e-04 1.1e-04 2.8e-05 7.1e-06 1.8e-06 4.5e-07 1.9 2.0 2.0 2.0 2.0 2.0 2.0 5.2e-02 1.8e-02 6.1e-03 2.1e-03 7.4e-04 2.6e-04 9.1e-05 3.2e-05 1.5 1.6 1.5 1.5 1.5 1.5 1.5 Table 9.4: Errors and estimated approximation orders for univariate pointwise radial minimization. 138 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 −5 0 5 0 −5 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 −5 0 5 0 −5 0 5 0 5 Figure 9.5: Comparing the rational interpolant for Runge’s function 1/(1 + x2 ) with κi = 2 for all i and n = 5, 10, 20, 40. The green line uses Berrut’s weights, the black Hermite Floater-Hormann’s weights with d = 3 and the red line is the univariate pointwise radial minimizing function. n 10 20 40 80 160 320 640 1280 Berrut K=2 3.6e-02 1.8e-02 1.0 9.5e-03 0.9 4.8e-03 1.0 2.4e-03 1.0 1.2e-03 1.0 6.1e-04 1.0 3.0e-04 1.0 HFH κi = 2, d = 1 3.3e-03 8.1e-04 2.0 2.2e-04 1.9 5.6e-05 2.0 1.4e-05 2.0 3.5e-06 2.0 8.8e-07 2.0 2.2e-07 2.0 HFH κi = 2, d = 3 6.1e-03 1.1e-05 9.1 1.4e-07 6.3 8.8e-09 4.0 5.4e-10 4.0 3.4e-11 4.0 2.1e-12 4.0 1.3e-13 4.0 uprm 2.5e-02 5.0e-04 1.6e-04 4.1e-05 1.0e-05 2.6e-06 6.6e-07 1.6e-07 5.6 1.7 1.9 2.0 2.0 2.0 2.0 piecewise cubic 1.3e-02 1.3e-03 3.4 1.9e-04 2.7 1.4e-05 3.7 9.4e-07 3.9 5.9e-08 4.0 3.7e-09 4.0 2.3e-10 4.0 Table 9.5: Comparison of the errors and estimated approximation orders of the different methods applied to Runge’s function. 9.5. NUMERICAL EXAMPLES 139 12 12 10 10 8 8 6 6 4 4 2 2 0 0 −5 0 5 −5 12 12 10 10 8 8 6 6 4 4 2 2 0 0 −5 0 5 −5 0 5 0 5 3 Figure 9.6: Comparing the rational interpolant for the function |x| 2 with κi = 2 for all i and n = 5, 10, 20, 40. The green line uses Berrut’s weights, the black Hermite FloaterHormann’s weights with d = 3 and the red line is the univariate pointwise radial minimizing function. 140 CHAPTER 9. RATIONAL HERMITE INTERPOLATION WITHOUT POLES Bibliography 141 Bibliography [1] Robert A. Adams. Calculus, a complete course. Pearson Education Canada, Toronto, Ontario, 6th edition, 2006. [2] Peter Alfeld. Scattered Data Interpolation in Three or More Variables. In Tom Lyche and Larry L. Schumaker, editors, Mathematical methods in computer aided geometric design, pages 1–33, San Diego, CA, USA, 1989. Academic Press Professional, Inc. [3] Giampietro Allasia and Cesare Bracco. Hermite and Birkhoff Interpolation to Multivariate Scattered Data. Quaderno N. 25, URL = http://hdl.handle.net/2318/435, 2008. [4] Michael Barton and Bert Jüttler. Computing roots of polynomials by quadratic clipping. Computer Aided Geometric Design, 24(3):125–141, April 2007. [5] Barycentric Coordinates and Transfinite Interpolation. clausthal.de/˜hormann/barycentric. URL=http://www2.in.tu- [6] Alexander Belyaev. On transfinite barycentric coordinates. In Konrad Polthier and Alla Sheffer, editors, SGP ’06: Proceedings of the fourth Eurographics symposium on Geometry processing, pages 89–99. Eurographics Association, 2006. [7] Jean-Paul Berrut. Rational functions for guaranteed and experimentally wellconditioned global interpolation. Computers & Mathematics with Applications, 15(1):1–16, 1988. [8] Jean-Paul Berrut, Richard Baltensperger, and Hans D. Mittelmann. Recent developments in barycentric rational interpolation. In Marcel G. de Bruin, Detlef. H. Mache, and József Szabados, editors, Trends and Applications in Constructive Approximation, volume 151 of International Series of Numercial Mathematics, pages 27–51, Basel, Switzerland, 2005. Birkhäuser Verlag. 143 144 BIBLIOGRAPHY [9] Jean-Paul Berrut and Lloyd N. Trefethen. Barycentric Lagrange interpolation. SIAM Review, 46(3):501–517, 2004. [10] Wolfgang Böhm. Inserting new knots into B-spline curves. Computer-Aided Design, 12(4):199–201, July 1980. [11] B. D. Bojanov, H. A. Hakopian, and A. A. Sahakian. Spline Functions and Multivariate Interpolations, volume 248 of Mathematics and Its Applications. Kluwer Academic Publishers, Dordrecht, The Netherlands, 1993. [12] I.N. Bronstein, K.A. Semendjajew, G. Musiol, and H. Mühlig. Taschenbuch der Mathematik. Verlag Harri Deutsch, Thun und Frankfurt am Main, 5th edition, 2001. [13] Solveig Bruvoll and Michael S. Floater. Transfinite mean value interpolation in general dimension. preprint. [14] Richard L. Burden and J. Douglas Faires. Numerical analysis. Thomson Brooks/Cole, 8th edition, 2005. [15] E. W. Cheney. Introduction to Approximation Theory. AMS Chelsea Publishing, Providence, Rhode Island, 2nd edition, 2000. [16] S. A. Coons. Surfaces for Computer-Aided Design of Space Forms. Project MAC, Technical Report MAC-TR-41, Massachusetts Institute of Technology, 1967. [17] Carl de Boor. A practical guide to splines, volume 27 of Applied mathematical sciences. Springer-Verlag, New York, 1978. [18] Paul de Faget de Casteljau. Formes à Pôles. Hermés, Paris, 1985. [19] Manfred P. do Carmo. Differential Geometry of Curves and Surfaces. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1976. [20] Tor Dokken. Aspects of Intersection Algorithms and Approximations. PhD-thesis, University of Oslo, 1997, revised 2000. [21] J. Duchon. Interpolation des fonctions de deux variables suivant le principe de la flexion des plaques minces. RAIRO Analyse Numérique, 10:5–12, 1976. [22] Christopher Dyken and Michael S. Floater. Transfinite mean value interpolation. Computer Aided Geometric Design, 26(1):117–134, 2009. [23] Gerald Farin. Curves and surfaces for CAGD: a practical guide. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 5th edition, 2002. [24] Gerald Farin. History of Curves and Surfaces in CAGD. In G. Farin, J. Hoschek, and M.-S. Kim, editors, Handbook of CAGD, pages 1–22. Elsevier, 2002. [25] Michael S. Floater. Mean value coordinates. Computer Aided Geometric Design, 20(1):19–27, 2003. BIBLIOGRAPHY 145 [26] Michael S. Floater and Kai Hormann. Barycentric rational interpolation with no poles and high rates of approximation. Numerische Mathematik, 107(2):315–331, August 2007. [27] Michael S. Floater, Kai Hormann, and Géza Kós. A general construction of barycentric coordinates over convex polygons. Advances in Computational Mathematics, 24(1– 4):311–331, January 2006. [28] Michael S. Floater, Géza Kós, and Martin Reimers. Mean value coordinates in 3d. Computer Aided Geometric Design, 22(7):623–631, October 2005. [29] Michael S. Floater and Christian Schulz. Pointwise radial minimization: Hermite interpolation on arbitrary domains. Computer Graphics Forum, 27(5):1505–1512, 2008. Special issue for Symposium on Geometric Processing. [30] Thomas A. Foley. Full Hermite Interpolation to Multivariate Scattered Data. In C. K. Chui, L. L. Schumaker, and J. D. Ward, editors, Approximation Theory IV, pages 465– 470, New York, 1983. Academic Press, Inc. [31] Richard Franke. Scattered Data Interpolation: Tests of Some Methods. Mathematics of Computation, 38(157):181–200, 1982. [32] Mariano Gasca and Thomas Sauer. On the history of multivariate polynomial interpolation. Journal of Computational and Applied Mathematics, 122(1-2):23–35, 2000. [33] Mariano Gasca and Thomas Sauer. Polynomial interpolation in several variables. Advances in Computational Mathematics, 12(4):377–410, March 2000. [34] Walter Gautschi. Numerical Analysis: An Introduction. Birkhäuser Boston, Cambridge, MA 02139, USA, 1997. [35] William J. Gordon. Blending-Function Methods of Bivariate and Multivariate Interpolation and Approximation. SIAM Journal on Numerical Analysis, 8(1):158–177, 1971. [36] William J. Gordon and James A. Wixom. Pseudo-harmonic interpolation on convex domains. SIAM Journal on Numerical Analysis, 11(5):909–933, October 1974. [37] William J. Gordon and James A. Wixom. Shepard’s Method of ”Metric Interpolation” to Bivariate and Multivariate Interpolation. Mathematics of Computation, 32(141):253–264, 1978. [38] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: A Foundation for Computer Science. Addison-Wesley Publishing Company, Inc., 2nd edition, 1994. [39] Nicholas J. Higham. The numerical stability of barycentric Lagrange interpolation. IMA Journal of Numerical Analysis, 24(4):547–556, 2004. 146 BIBLIOGRAPHY [40] Kai Hormann and Michael S. Floater. Mean value coordinates for arbitrary planar polygons. ACM Transactions on Graphics, 25(4):1424–1441, 2006. [41] Kai Hormann and N. Sukumar. Maximum Entropy Coordinates for Arbitrary Polytopes. Computer Graphics Forum, 27(5):1513–1520, July 2008. Special issue for Symposium on Geometric Processing. [42] Eugene Isaacson and Herbert Bishop Keller. Analysis of Numerical Methods. Dover Publications, Inc., Mineola, New York 11501, 1994. [43] Pushkar Joshi, Mark Meyer, Tony DeRose, Brian Green, and Tom Sanocki. Harmonic coordinates for character articulation. ACM Transactions on Graphics, 26(3), July 2007. Proceedings of the 2007 SIGGRAPH conference. [44] Tao Ju, Scott Schaefer, and Joe Warren. Mean value coordinates for closed triangular meshes. ACM Transactions on Graphics, 24(3):561–566, July 2005. [45] Tao Ju, Scott Schaefer, Joe Warren, and Mathieu Desbrun. A geometric construction of coordinates for convex polyhedra using polar duals. In Mathieu Desbrun and Helmut Pottman, editors, SGP ’05: Proceedings of the third Eurographics symposium on Geometry processing, pages 181–186. Eurographics Association, 2005. [46] Donald E. Knuth. Big Omicron and big Omega and big Theta. SIGACT News, 8(2):18– 24, 1976. [47] Jeffrey M. Lane and Richard F. Riesenfeld. A Theoretical Development for the Computer Generation and Display of Piecewise Polynomial Surfaces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2(1):35–46, 1980. [48] Torsten Langer, Alexander Belyaev, and Hans-Peter Seidel. Spherical barycentric coordinates. In Konrad Polthier and Alla Sheffer, editors, SGP ’06: Proceedings of the fourth Eurographics symposium on Geometry processing, pages 81–88. Eurographics Association, 2006. [49] Torsten Langer and Hans-Peter Seidel. Higher order barycentric coordinates. Computer Graphics Forum, 27(2):459–466, 2008. Special issue for EUROGRAPHICS. [50] Yaron Lipman, Johannes Kopf, Daniel Cohen-Or, and David Levin. GPU-assisted positive mean value coordinates for mesh deformation. to appear in SGP ’07: Proceedings of the fifth Eurographics symposium on Geometry processing, 2007. [51] R. A. Lorentz. Multivariate Hermite interpolation by algebraic polynomials: A survey. Journal of Computational and Applied Mathematics, 122(1-2):167–201, 2000. [52] Tom Lyche and Knut Mørken. Spline Methods, draft. Department of Informatics, University of Oslo, URL=http://heim.ifi.uio.no/knutm/komp04.pdf, 2004. [53] Mark Meyer, Haeyoung Lee, Alan Barr, and Mathieu Desbrun. Generalized barycentric coordinates on irregular polygons. Journal of Graphics Tools, 7(1):13–22, 2002. BIBLIOGRAPHY 147 [54] August Ferdinand Möbius. Der barycentische Calcul. Johann Ambrosius Barth, Leipzig, 1827. [55] Knut Mørken and Martin Reimers. An unconditionally convergent method for computing zeros of splines and polynomials. Mathematics of Computation, 76(258):845–865, 2007. [56] Knut Mørken and Martin Reimers. Second order multiple root finding. In progress, 2008. [57] Bernard Mourrain and Jean-Pascal Pavone. Subdivision methods for solving polynomial equations. Research report, INRIA Sophia Antipolis, 2005. [58] F. A. Potra. On Q-Order and R-Order of Convergence. Journal of Optimization Theory and Applications, 63(3):425–431, December 1989. [59] Lyle Ramshaw. Blossoming: A connect-the-dots approach to splines. Research Report 19, Compaq Systems Research Center, Palo Alto, CA, June 1987. [60] Ulrich Reif. Best bounds on the approximation of polynomials and splines by their control structure. Computer Aided Geometric Design, 17(6):579–589, 2000. [61] Robert J. Renka. Multivariate interpolation of large sets of scattered data. ACM Transactions on Mathematical Software, 14(2):139–148, 1988. [62] John W. Rutter. Geometry of curves. Chapman & Hall mathematics series, Boca Raton, Florida, 2000. [63] Malcolm Sabin. Transfinite Surface Interpolation. In Proceedings of the 6th IMA Conference on the Mathematics of Surfaces, pages 517–534, New York, NY, USA, 1996. Clarendon Press. [64] Thomas Sauer and Yuan Xu. On multivariate Hermite interpolation. Advances in Computational Mathematics, 4:207–259, 1995. [65] Thomas Sauer and Yuan Xu. On multivariate Lagrange interpolation. Mathematics of Computation, 64(211):1147–1170, 1995. [66] Scott Schaefer, Tao Ju, and Joe Warren. A unified, integral construction for coordinates over closed curves. Computer Aided Geometric Design, 24(8-9):481–493, 2007. [67] Claus Schneider and Wilhelm Werner. Some new aspects of rational interpolation. Mathematics of Computation, 47(175):285–299, 1986. [68] Claus Schneider and Wilhelm Werner. Hermite interpolation: the barycentric approach. Computing, 46(1):35–51, 1991. [69] Christian Schulz. Bézier clipping is quadratically convergent. Computer Aided Geometric Design, 26(1):61–74, January 2009. 148 BIBLIOGRAPHY [70] Larry L. Schumaker. Fitting surfaces to scattered data. In G. G. Lorentz, C. K. Chui, and Larry L. Schumaker, editors, Approximation Theory II, pages 203–268, New York, 1976. Academic Press, Inc. [71] Larry L. Schumaker. Spline Functions: Basic Theory. John Wiley & Sons, Inc., New York, 1981. [72] T. W. Sederberg and T. Nishita. Curve intersection using Bézier clipping. Computer Aided Design, 22(9):538–549, 1990. [73] Donald Shepard. A two-dimensional interpolation function for irregularly-spaced data. In Proceedings of the 1968 23rd ACM national conference, pages 517–524, New York, NY, USA, 1968. ACM. [74] Robin Sibson and G. Stone. Computation of Thin-Plate Splines. SIAM Journal on Scientific and Statistical Computing, 12(6):1304–1313, 1991. [75] SISL The SINTEF http://www.sintef.no/content/page1 Spline Library. 12043.aspx. URL = [76] James S. Vandergraft. Introduction to numerical computations. Academic press, Inc., New York, 1978. [77] Eugene L. Wachspress. A rational finite element basis, volume 114 of Mathematics in Science & Engineering. Academic Press, New York, 1975. [78] Joe Warren, Scott Schaefer, Anil H. Hirani, and Mathieu Desbrun. Barycentric coordinates for convex sets. Advances in Computational Mathematics, 27(3):319–338, October 2007. [79] Joe D. Warren. Barycentric coordinates for convex polytopes. Advances in Computational Mathematics, 6(1):97–108, 1996. [80] Wilhelm Werner. Polynomial Interpolation: Lagrange versus Newton. Mathematics of Computation, 43(167):205–217, 1984. [81] Wikipedia. URL = http://www.wikipedia.org. [82] Wolfram MathWorld. URL = http://mathworld.wolfram.com. [83] Alastair Wood. Introduction to Numerical Analysis. International Mathematics Series. Addison Wesley Longman Ltd., Singapore, 1999. [84] Chee K. Yap. Complete Subdivision Algorithms, I: Intersection of Bezier Curves. In SCG ’06: Proceedings of the twenty-second annual symposium on Computational geometry, pages 217–226, New York, NY, USA, 2006. ACM.