Carl de Boor Books
We list below books published by Carl de Boor. We note that the first edition of Elementary numerical analysis. An algorithmic approach is a single author work by S D Conte, so is not relevant to this list.
Click on a link below to go to that book
Click on a link below to go to that book
- Elementary numerical analysis. An algorithmic approach (Second Edition) (1972) with S D Conte
- A practical guide to splines (1978)
- Elementary numerical analysis. An algorithmic approach (Third Edition) (1980) with S D Conte
- Splinefunktionen (1990)
- Box splines (1993) with K Höllig and S Riemenschneider
- A practical guide to splines. Revised Edition (2001)
- Elementary numerical analysis. An algorithmic approach (Classics Edition) (2018) with S D Conte
1. Elementary numerical analysis. An algorithmic approach (Second Edition) (1972), by S D Conte and Carl de Boor
1.1. Review by: D W Arthur.
The Mathematical Gazette 59 (410) (1975), 295-296.
This book is an extensive revision of the first edition. Topics covered are Number systems and errors, Solution of nonlinear equations, Matrices and systems of linear equations, Interpolation and approximation, Differentiation and integration, and Solution of differential equations. The text is aimed at scientists and engineers at undergraduate level, with a basic calculus knowledge, although a fair exposure to matrices would be advantageous. This aim is reflected in the exercises, which are of a practical, rather than theoretical, nature.
The text is very carefully written, and I especially liked the combination of algorithms and computer programs. The programs are in FORTRAN which, although not ideally suited for numerical analysis, does have the advantage of being universally available. I did feel, however, that some parts of the theory of interpolation and approximation are a little too sophisticated for the readers at whom it is aimed.
I found about a dozen errors in the text, mostly trivial, the important ones being on p. 118, a division instead of a multiplication in a formula, p. 196, a misplaced Z, and p. 361, an erroneous Taylor expansion leading to mistakes in (6.71), (6.72). In addition, there are a few points on which I take issue with the authors, e.g. no solutions are given to the exercises, manipulation of absolute and relative error bounds is omitted, there is no mention of the advantages of symmetry in the matrix eigenvalue problem, Simpson's rule is written in an unusual way, and stability in the solution of differential equations is a little unclear because of reference to the "characteristic equation" for a "general differential equation".
In spite of these comments, I can recommend this book as a basic textbook for undergraduate applied numerical analysis.
2. A practical guide to splines (1978), by Carl de Boor.
The Mathematical Gazette 59 (410) (1975), 295-296.
This book is an extensive revision of the first edition. Topics covered are Number systems and errors, Solution of nonlinear equations, Matrices and systems of linear equations, Interpolation and approximation, Differentiation and integration, and Solution of differential equations. The text is aimed at scientists and engineers at undergraduate level, with a basic calculus knowledge, although a fair exposure to matrices would be advantageous. This aim is reflected in the exercises, which are of a practical, rather than theoretical, nature.
The text is very carefully written, and I especially liked the combination of algorithms and computer programs. The programs are in FORTRAN which, although not ideally suited for numerical analysis, does have the advantage of being universally available. I did feel, however, that some parts of the theory of interpolation and approximation are a little too sophisticated for the readers at whom it is aimed.
I found about a dozen errors in the text, mostly trivial, the important ones being on p. 118, a division instead of a multiplication in a formula, p. 196, a misplaced Z, and p. 361, an erroneous Taylor expansion leading to mistakes in (6.71), (6.72). In addition, there are a few points on which I take issue with the authors, e.g. no solutions are given to the exercises, manipulation of absolute and relative error bounds is omitted, there is no mention of the advantages of symmetry in the matrix eigenvalue problem, Simpson's rule is written in an unusual way, and stability in the solution of differential equations is a little unclear because of reference to the "characteristic equation" for a "general differential equation".
In spite of these comments, I can recommend this book as a basic textbook for undergraduate applied numerical analysis.
2.1. From the Preface.
This book is a reflection of my limited experience with calculations involving polynomial splines. It stresses the representation of splines as linear combinations of B-splines, provides proofs for only some of the results stated but offers many Fortran programs, and presents only those parts of spline theory that I found useful in calculations. The particular literature selection offered in the bibliography shows the same bias; it contains only items to which I needed to refer in the text for a specific result or a proof or additional information and is clearly not meant to be representative of the available spline literature. Also, while I have attached names to some of the results used, I have not given a careful discussion of the historical aspects of the field. Readers are urged to consult the books listed in the bibliography (they are marked with an asterisk) if they wish to develop a more complete and balanced picture of spline theory.
The following outline should provide a fair idea of the intent and content of the book.
The first chapter recapitulates material needed later from the ancient theory of polynomial interpolation, in particular, divided differences. Those not familiar with divided differences may find the chapter a bit terse. For comfort and motivation, I can only assure them that every item mentioned will actually be used later. The rudiments of polynomial approximation theory are given in Chapter II for later use, and to motivate the introduction of piecewise polynomial (or, pp) functions.
Readers intent upon looking at the general theory may wish to skip the next four chapters, as these follow somewhat the historical development, with piecewise linear, piecewise cubic, and piecewise parabolic approximation discussed, in that order and mostly in the context of interpolation. Proofs are given for results that, later on in the more general context of splines of arbitrary order, are only stated. The intent is to summarise elementary spline theory in a practically useful yet simple setting.
The general theory is taken up again starting with Chapter VII, which, along with Chapter VIII, is devoted to the computational handling of pp functions of arbitrary order. B-splines are introduced in Chapter IX. It is only in that chapter that a formal definition of "spline" as a linear combination of B-splines is given. Chapters X and XI are intended to familiarise the reader with B-splines.
The remaining chapters contain various applications, all (with the notable exception of taut spline interpolation in Chapter XVI) involving B-splines. Chapter XII is the pp companion piece to Chapter II; it contains a discussion of how well a function can be approximated by pp functions. Chapter XIII is devoted to various aspects of spline interpolation as a particularly simple, computationally efficient yet powerful scheme for spline approximation in the presence of exact data. For noisy data, the smoothing spline and least-squares spline approximation are offered in Chapter XIV. Just one illustration of the use of splines in solving differential equations is given, in Chapter XV, where an ordinary differential equation is solved by collocation. Chapter XVI contains an assortment of items, all loosely connected to the approximation of a curve. It is only here (and in the problems for Chapter VI) that the beautiful theory of cardinal splines, i.e., splines on a uniform knot sequence, is discussed. The final chapter deals with the simplest generalisation of splines to several variables and offers a somewhat more abstract view of the various spline approximation processes discussed in this book.
Each chapter has some problems attached to it, to test the reader's understanding of the material, to bring in additional material and to urge, at times, numerical experimentation with the programs provided. It should be understood, though, that Problem 0 in each chapter that contains programs consists of running those programs with various sample data in order to gain some first-hand practical experience with the methods espoused in the book.
The programs occur throughout the text and are meant to be read, as part of the text.
The book grew out of orientation lectures on splines delivered at Redstone Arsenal in September, 1976, and at White Sands Missile Range in October, 1977. These lectures were based on a 1973 MRC report concerning a Fortran package for calculating with B-splines, a package put together in 1971 at Los Alamos Scientific Laboratories around a routine (now called BSPLVB) that took shape a year earlier during a workshop at Oberlin organised by Jim Daniel. I am grateful for advice received during those years, from Fred Dorr, Cleve Moler, Blair Swartz and others.
During the writing of the book, I had the benefit of detailed and copious advice from John Rice who read various versions of the entire manuscript. It owes its length to his repeated pleas for further elucidation. I owe him thanks also for repeated encouragement. I am also grateful to a group at Stanford, consisting of John Bolstad, Tony Chan, William Coughran, Jr., Alphons Demmler, Gene Golub, Michael Heath, Franklin Luk, and Marcello Pagano that, through the good offices of Eric Grosse, gave me much welcome advice after reading an early version of the manuscript. The programs in the book would still be totally unreadable but for William Coughran's and Eric Grosse's repeated arguments in favour of comment cards. Dennis Jespersen read the final manuscript with astonishing care and brought a great number of mistakes to my attention. He also raised many questions, many of which found place among the problems at the end of chapters. Walter Gautschi, and Klaus Böhmer and his students, read a major part of the manuscript and uncovered further errors. I am grateful to them all.
Time for writing, and computer time, were provided by the Mathematics Research Center under Contract No. DAAG29-75-C-0024 with the U.S. Army Research Office. Through its visitor program, the Mathematics Re-search Center also made possible most of the helpful contacts acknowledged earlier. I am deeply appreciative of the mathematically stimulating and free atmosphere provided by the Mathematics Research Center.
Finally, I would like to thank Reinhold de Boor for the patient typing of the various drafts.
Carl de Boor
Madison, Wisconsin
February 1978
2.2. Summary of key ideas by Blinkist.
The Basics of Splines
In A Practical Guide to Splines, Carl de Boor starts by introducing the concept of splines, which are piecewise polynomial functions that are commonly used in computer-aided design, computer graphics, and numerical analysis. He explains the basic idea of how splines can be used to approximate other functions and highlights their importance in various applications.
De Boor then goes on to explain the different types of splines, such as polynomial splines, B-splines, and NURBS (Non-Uniform Rational B-Splines), and their respective properties. He discusses the advantages and disadvantages of each type, and how they are used in different scenarios.
Constructing and Using Splines
The author then delves into the practical aspects of constructing and using splines. He provides detailed explanations of the algorithms used to evaluate splines, both for uniform and non-uniform knot vectors. He also discusses the methods for constructing splines that interpolate given data points, and the techniques for controlling the shape of the resulting curve.
De Boor emphasises the importance of understanding the knot vector in spline construction, and how it influences the behaviour of the resulting curve. He provides practical advice on how to choose knot vectors and how to deal with issues such as knot insertion and removal.
Advanced Topics in Splines
In the later chapters of A Practical Guide to Splines, the author explores more advanced topics related to splines. He covers the mathematical properties of splines, such as continuity and differentiability, and how these properties can be controlled and guaranteed in spline construction.
De Boor also discusses the use of splines in higher dimensions, addressing the challenges and opportunities that arise when working with surfaces and volumes. He introduces the concept of tensor product splines and discusses their applications in representing and manipulating multi-dimensional data.
Implementing Splines in Practice
Throughout the book, de Boor provides numerous examples and practical advice on implementing splines in real-world applications. He discusses the use of splines in curve and surface modelling, as well as in data fitting and approximation. He also provides insights into the computational aspects of working with splines, such as efficient algorithms and numerical stability.
In conclusion, A Practical Guide to Splines serves as a comprehensive reference for anyone interested in understanding and using splines. It provides both theoretical foundations and practical insights, making it a valuable resource for mathematicians, engineers, and computer scientists working with splines in their respective fields.
2.3. Review by: Philip W Smith.
SIAM Review 22 (4) (1980), 520-521.
This book will be a necessity for anyone contemplating univariate spline computations. It is well written, and exposes the reader to the various philosophies which have combined to make the univariate B-spline indispensable in serious computing environments. The author has attempted to avoid unnecessary complications when presenting the material. Error estimates are derived for the sup norm only, and with one exception only polynomial splines are discussed. In order to appreciate this book the reader should be familiar with FORTRAN and should have at least a semester of numerical analysis. An advanced undergraduate could get quite a lot out of this book, and those students interested in computing as opposed to mathematics will be pleased to see that many of the more difficult theorems are stated without proof. Those readers who are more mathematically sophisticated will (rightly) protest that many of the "explanations" in the text are somewhat incomplete. For example, in the explanation of why polynomial interpolation at equally spaced points diverges when applied to on [-1, 1] we are told that the norm of the interpolation operator grows exponentially.
Many people will be tempted to use this book as a text in an upper-level numerical analysis course. I would suggest that some simple applications of collocation and least squares be introduced at the beginning and continued throughout the course, so that the interest doesn't wane as one develops all the properties of B-splines.
The problems are well chosen to illustrate and extend results in the text. In addition, many (well written) programs are included in the text with the understanding that the reader will experiment with all of them. The programming language is FORTRAN.
2.4. Review by: J R.
Mathematics of Computation 34 (149) (1980), 325-326.
Up to now, there has been no comprehensive source of sound, practical information on how to use splines. Many scientists and engineers have recognised the advantages of using splines and piecewise polynomials and then end up with awkward, unstable or inefficient implementations. This book is truly a "practical guide to splines" and the long missing comprehensive reference work for those who use splines. A strong point of the book is that all of the basic algorithms are presented in Fortran so that the accuracy or efficiency of the calculations need not be ruined by sloppy programming. The book is not, however, just a cookbook for using these algorithms. The underlying theory is carefully and concisely developed and even the expert will find new insights and understanding of piecewise polynomials. This book is essential reading for anyone involved in spline calculations.
The first two chapters present background information about polynomial approximation and interpolation. The shortcomings of classical polynomial approximation are presented. The next two chapters present piecewise linear and cubic polynomial interpolation and form a basis for understanding the power and subtleties of piecewise polynomials. Chapter 5 presents the basic theory of approximation for splines, and this is followed by a chapter on parabolic splines which illustrates how to handle the slightly more difficult situation of even degree splines. At the end of these six chapters the reader will have learned a lot about splines and their potential, but he will not yet know how to use them effectively.
The next three chapters address the central problem for applications: the representation of piecewise polynomials. This problem is neglected by theoreticians because they do not intend to use splines, and it is overlooked by most practitioners because they do not appreciate the possibilities and pitfalls inherent in the choice of a basis. Unfortunately, there is no representation which is uniformly superior; there are times when the splines should be represented redundantly by a collection of polynomials and associated domains. The B-spline representation is better, often essential, for most calculations of splines and piecewise polynomials. These topics are presented carefully with illuminating examples.
B-splines are somewhat mysterious at first, and it is not easy to see how to manipulate them effectively. This question is addressed in Chapter 10, and three key algorithms are presented for their stable and efficient manipulation. It is shown how B-splines are equally effective for general piecewise polynomials as for splines.
Chapter 11 presents the B-spline series and establishes the properties (well-conditioned, variation diminishing, etc.) of this series which make splines with this basis so effective in practice. The next chapter further explores the approximation theoretic properties of splines and introduces the important topic of knot placement. This line of investigation is continued in Chapter 13 where interpolation is studied in more depth. By this point all the machinery has been established for all the basic operations with splines.
The next three chapters present the more specialised topics of data smoothing, spline collocation for ordinary differential equations and special splines (taut, periodic and cardinal). Each of these chapters is a thorough development of the problem area complete with Fortran programs. The topics are developed carefully to illustrate how to accomplish things with the previously developed machinery, and they further illustrate the strengths and weaknesses of various ways to apply splines. These chapters contain a lot of original and important new material.
The final chapter introduces the important problem of surface approximation. Only tensor product methods are considered, but these are very important in applications. A very clever scheme is presented to take the tensor product of Fortran programs and thus easily extend 1-dimensional algorithms to several dimensions.
The book closes with a short discussion of "things not covered". We can hope that some day de Boor will cover these other important topics with the same elegant and penetrating manner that he used to introduce us to the use of splines.
2.5. Review by: Gerhard Merz.
Mathematical Reviews MR0507062 (80a:65027).
This book is intended as a thorough presentation of those items from the theory and application of spline functions which are in a state that permits them to be offered to a prospective user under the title the author has chosen for his present publication. At several places even the expert, however, will find things elucidated in a way new to him. There are some fifty FORTRAN (sub) programs throughout the book together with an abundance of worked-out examples and many helpful comments (also in the case of pitfalls in computation) which reflect the author's ample experience in calculating with splines. More than 120 (often quite interesting) problems are attached to the 17 chapters whose titles are as follows: 1. Polynomial interpolation; 2. Limitations of polynomial approximation; 3. Piecewise linear approximation; 4. Piecewise cubic interpolation; 5. Best approximation properties of complete spline interpolation and its error; 6. Parabolic spline interpolation; 7. A representation for piecewise polynomial functions; 8. The spaces and the truncated power basis; 9. The representation of pp (i.e. piecewise polynomial) functions by B-splines; 10. The stable evaluation of B-splines and splines; 11. The B-spline series; 12. Local spline approximation methods and the distance from splines; 13. Spline interpolation; 14. Smoothing and least-squares approximation; 15. The numerical solution of an ordinary differential equation by collocation; 16. Taut splines, periodic splines, cardinal splines and the approximation of curves; 17. Surface approximation by tensor products.
Unfortunately, the bibliography of 106 references seems to suffer from a certain degree of imperfection. This, however, does not lessen general merits of this unusually fine book.
3. Elementary numerical analysis. An algorithmic approach (Third Edition) (1980), by S D Conte and Carl de Boor.
This book is a reflection of my limited experience with calculations involving polynomial splines. It stresses the representation of splines as linear combinations of B-splines, provides proofs for only some of the results stated but offers many Fortran programs, and presents only those parts of spline theory that I found useful in calculations. The particular literature selection offered in the bibliography shows the same bias; it contains only items to which I needed to refer in the text for a specific result or a proof or additional information and is clearly not meant to be representative of the available spline literature. Also, while I have attached names to some of the results used, I have not given a careful discussion of the historical aspects of the field. Readers are urged to consult the books listed in the bibliography (they are marked with an asterisk) if they wish to develop a more complete and balanced picture of spline theory.
The following outline should provide a fair idea of the intent and content of the book.
The first chapter recapitulates material needed later from the ancient theory of polynomial interpolation, in particular, divided differences. Those not familiar with divided differences may find the chapter a bit terse. For comfort and motivation, I can only assure them that every item mentioned will actually be used later. The rudiments of polynomial approximation theory are given in Chapter II for later use, and to motivate the introduction of piecewise polynomial (or, pp) functions.
Readers intent upon looking at the general theory may wish to skip the next four chapters, as these follow somewhat the historical development, with piecewise linear, piecewise cubic, and piecewise parabolic approximation discussed, in that order and mostly in the context of interpolation. Proofs are given for results that, later on in the more general context of splines of arbitrary order, are only stated. The intent is to summarise elementary spline theory in a practically useful yet simple setting.
The general theory is taken up again starting with Chapter VII, which, along with Chapter VIII, is devoted to the computational handling of pp functions of arbitrary order. B-splines are introduced in Chapter IX. It is only in that chapter that a formal definition of "spline" as a linear combination of B-splines is given. Chapters X and XI are intended to familiarise the reader with B-splines.
The remaining chapters contain various applications, all (with the notable exception of taut spline interpolation in Chapter XVI) involving B-splines. Chapter XII is the pp companion piece to Chapter II; it contains a discussion of how well a function can be approximated by pp functions. Chapter XIII is devoted to various aspects of spline interpolation as a particularly simple, computationally efficient yet powerful scheme for spline approximation in the presence of exact data. For noisy data, the smoothing spline and least-squares spline approximation are offered in Chapter XIV. Just one illustration of the use of splines in solving differential equations is given, in Chapter XV, where an ordinary differential equation is solved by collocation. Chapter XVI contains an assortment of items, all loosely connected to the approximation of a curve. It is only here (and in the problems for Chapter VI) that the beautiful theory of cardinal splines, i.e., splines on a uniform knot sequence, is discussed. The final chapter deals with the simplest generalisation of splines to several variables and offers a somewhat more abstract view of the various spline approximation processes discussed in this book.
Each chapter has some problems attached to it, to test the reader's understanding of the material, to bring in additional material and to urge, at times, numerical experimentation with the programs provided. It should be understood, though, that Problem 0 in each chapter that contains programs consists of running those programs with various sample data in order to gain some first-hand practical experience with the methods espoused in the book.
The programs occur throughout the text and are meant to be read, as part of the text.
The book grew out of orientation lectures on splines delivered at Redstone Arsenal in September, 1976, and at White Sands Missile Range in October, 1977. These lectures were based on a 1973 MRC report concerning a Fortran package for calculating with B-splines, a package put together in 1971 at Los Alamos Scientific Laboratories around a routine (now called BSPLVB) that took shape a year earlier during a workshop at Oberlin organised by Jim Daniel. I am grateful for advice received during those years, from Fred Dorr, Cleve Moler, Blair Swartz and others.
During the writing of the book, I had the benefit of detailed and copious advice from John Rice who read various versions of the entire manuscript. It owes its length to his repeated pleas for further elucidation. I owe him thanks also for repeated encouragement. I am also grateful to a group at Stanford, consisting of John Bolstad, Tony Chan, William Coughran, Jr., Alphons Demmler, Gene Golub, Michael Heath, Franklin Luk, and Marcello Pagano that, through the good offices of Eric Grosse, gave me much welcome advice after reading an early version of the manuscript. The programs in the book would still be totally unreadable but for William Coughran's and Eric Grosse's repeated arguments in favour of comment cards. Dennis Jespersen read the final manuscript with astonishing care and brought a great number of mistakes to my attention. He also raised many questions, many of which found place among the problems at the end of chapters. Walter Gautschi, and Klaus Böhmer and his students, read a major part of the manuscript and uncovered further errors. I am grateful to them all.
Time for writing, and computer time, were provided by the Mathematics Research Center under Contract No. DAAG29-75-C-0024 with the U.S. Army Research Office. Through its visitor program, the Mathematics Re-search Center also made possible most of the helpful contacts acknowledged earlier. I am deeply appreciative of the mathematically stimulating and free atmosphere provided by the Mathematics Research Center.
Finally, I would like to thank Reinhold de Boor for the patient typing of the various drafts.
Carl de Boor
Madison, Wisconsin
February 1978
2.2. Summary of key ideas by Blinkist.
The Basics of Splines
In A Practical Guide to Splines, Carl de Boor starts by introducing the concept of splines, which are piecewise polynomial functions that are commonly used in computer-aided design, computer graphics, and numerical analysis. He explains the basic idea of how splines can be used to approximate other functions and highlights their importance in various applications.
De Boor then goes on to explain the different types of splines, such as polynomial splines, B-splines, and NURBS (Non-Uniform Rational B-Splines), and their respective properties. He discusses the advantages and disadvantages of each type, and how they are used in different scenarios.
Constructing and Using Splines
The author then delves into the practical aspects of constructing and using splines. He provides detailed explanations of the algorithms used to evaluate splines, both for uniform and non-uniform knot vectors. He also discusses the methods for constructing splines that interpolate given data points, and the techniques for controlling the shape of the resulting curve.
De Boor emphasises the importance of understanding the knot vector in spline construction, and how it influences the behaviour of the resulting curve. He provides practical advice on how to choose knot vectors and how to deal with issues such as knot insertion and removal.
Advanced Topics in Splines
In the later chapters of A Practical Guide to Splines, the author explores more advanced topics related to splines. He covers the mathematical properties of splines, such as continuity and differentiability, and how these properties can be controlled and guaranteed in spline construction.
De Boor also discusses the use of splines in higher dimensions, addressing the challenges and opportunities that arise when working with surfaces and volumes. He introduces the concept of tensor product splines and discusses their applications in representing and manipulating multi-dimensional data.
Implementing Splines in Practice
Throughout the book, de Boor provides numerous examples and practical advice on implementing splines in real-world applications. He discusses the use of splines in curve and surface modelling, as well as in data fitting and approximation. He also provides insights into the computational aspects of working with splines, such as efficient algorithms and numerical stability.
In conclusion, A Practical Guide to Splines serves as a comprehensive reference for anyone interested in understanding and using splines. It provides both theoretical foundations and practical insights, making it a valuable resource for mathematicians, engineers, and computer scientists working with splines in their respective fields.
2.3. Review by: Philip W Smith.
SIAM Review 22 (4) (1980), 520-521.
This book will be a necessity for anyone contemplating univariate spline computations. It is well written, and exposes the reader to the various philosophies which have combined to make the univariate B-spline indispensable in serious computing environments. The author has attempted to avoid unnecessary complications when presenting the material. Error estimates are derived for the sup norm only, and with one exception only polynomial splines are discussed. In order to appreciate this book the reader should be familiar with FORTRAN and should have at least a semester of numerical analysis. An advanced undergraduate could get quite a lot out of this book, and those students interested in computing as opposed to mathematics will be pleased to see that many of the more difficult theorems are stated without proof. Those readers who are more mathematically sophisticated will (rightly) protest that many of the "explanations" in the text are somewhat incomplete. For example, in the explanation of why polynomial interpolation at equally spaced points diverges when applied to on [-1, 1] we are told that the norm of the interpolation operator grows exponentially.
Many people will be tempted to use this book as a text in an upper-level numerical analysis course. I would suggest that some simple applications of collocation and least squares be introduced at the beginning and continued throughout the course, so that the interest doesn't wane as one develops all the properties of B-splines.
The problems are well chosen to illustrate and extend results in the text. In addition, many (well written) programs are included in the text with the understanding that the reader will experiment with all of them. The programming language is FORTRAN.
2.4. Review by: J R.
Mathematics of Computation 34 (149) (1980), 325-326.
Up to now, there has been no comprehensive source of sound, practical information on how to use splines. Many scientists and engineers have recognised the advantages of using splines and piecewise polynomials and then end up with awkward, unstable or inefficient implementations. This book is truly a "practical guide to splines" and the long missing comprehensive reference work for those who use splines. A strong point of the book is that all of the basic algorithms are presented in Fortran so that the accuracy or efficiency of the calculations need not be ruined by sloppy programming. The book is not, however, just a cookbook for using these algorithms. The underlying theory is carefully and concisely developed and even the expert will find new insights and understanding of piecewise polynomials. This book is essential reading for anyone involved in spline calculations.
The first two chapters present background information about polynomial approximation and interpolation. The shortcomings of classical polynomial approximation are presented. The next two chapters present piecewise linear and cubic polynomial interpolation and form a basis for understanding the power and subtleties of piecewise polynomials. Chapter 5 presents the basic theory of approximation for splines, and this is followed by a chapter on parabolic splines which illustrates how to handle the slightly more difficult situation of even degree splines. At the end of these six chapters the reader will have learned a lot about splines and their potential, but he will not yet know how to use them effectively.
The next three chapters address the central problem for applications: the representation of piecewise polynomials. This problem is neglected by theoreticians because they do not intend to use splines, and it is overlooked by most practitioners because they do not appreciate the possibilities and pitfalls inherent in the choice of a basis. Unfortunately, there is no representation which is uniformly superior; there are times when the splines should be represented redundantly by a collection of polynomials and associated domains. The B-spline representation is better, often essential, for most calculations of splines and piecewise polynomials. These topics are presented carefully with illuminating examples.
B-splines are somewhat mysterious at first, and it is not easy to see how to manipulate them effectively. This question is addressed in Chapter 10, and three key algorithms are presented for their stable and efficient manipulation. It is shown how B-splines are equally effective for general piecewise polynomials as for splines.
Chapter 11 presents the B-spline series and establishes the properties (well-conditioned, variation diminishing, etc.) of this series which make splines with this basis so effective in practice. The next chapter further explores the approximation theoretic properties of splines and introduces the important topic of knot placement. This line of investigation is continued in Chapter 13 where interpolation is studied in more depth. By this point all the machinery has been established for all the basic operations with splines.
The next three chapters present the more specialised topics of data smoothing, spline collocation for ordinary differential equations and special splines (taut, periodic and cardinal). Each of these chapters is a thorough development of the problem area complete with Fortran programs. The topics are developed carefully to illustrate how to accomplish things with the previously developed machinery, and they further illustrate the strengths and weaknesses of various ways to apply splines. These chapters contain a lot of original and important new material.
The final chapter introduces the important problem of surface approximation. Only tensor product methods are considered, but these are very important in applications. A very clever scheme is presented to take the tensor product of Fortran programs and thus easily extend 1-dimensional algorithms to several dimensions.
The book closes with a short discussion of "things not covered". We can hope that some day de Boor will cover these other important topics with the same elegant and penetrating manner that he used to introduce us to the use of splines.
2.5. Review by: Gerhard Merz.
Mathematical Reviews MR0507062 (80a:65027).
This book is intended as a thorough presentation of those items from the theory and application of spline functions which are in a state that permits them to be offered to a prospective user under the title the author has chosen for his present publication. At several places even the expert, however, will find things elucidated in a way new to him. There are some fifty FORTRAN (sub) programs throughout the book together with an abundance of worked-out examples and many helpful comments (also in the case of pitfalls in computation) which reflect the author's ample experience in calculating with splines. More than 120 (often quite interesting) problems are attached to the 17 chapters whose titles are as follows: 1. Polynomial interpolation; 2. Limitations of polynomial approximation; 3. Piecewise linear approximation; 4. Piecewise cubic interpolation; 5. Best approximation properties of complete spline interpolation and its error; 6. Parabolic spline interpolation; 7. A representation for piecewise polynomial functions; 8. The spaces and the truncated power basis; 9. The representation of pp (i.e. piecewise polynomial) functions by B-splines; 10. The stable evaluation of B-splines and splines; 11. The B-spline series; 12. Local spline approximation methods and the distance from splines; 13. Spline interpolation; 14. Smoothing and least-squares approximation; 15. The numerical solution of an ordinary differential equation by collocation; 16. Taut splines, periodic splines, cardinal splines and the approximation of curves; 17. Surface approximation by tensor products.
Unfortunately, the bibliography of 106 references seems to suffer from a certain degree of imperfection. This, however, does not lessen general merits of this unusually fine book.
3.1. From the Preface.
This is the third edition of a book on elementary numerical analysis which is designed specifically for the needs of upper-division undergraduate students in engineering, mathematics, and science including, in particular, computer science. On the whole, the student who has had a solid college calculus sequence should have no difficulty following the material. Advanced mathematical concepts, such as norms and orthogonality, when they are used, are introduced carefully at a level suitable for undergraduate students and do not assume any previous knowledge. Some familiarity with matrices is assumed for the chapter on systems of equations and with differential equations for Chapters 8 and 9. This edition does contain some sections which require slightly more mathematical maturity than the previous edition. However, all such sections are marked with asterisks and all can be omitted by the instructor with no loss in continuity.
This new edition contains a great deal of new material and significant changes to some of the older material. The chapters have been rearranged in what we believe is a more natural order. Polynomial interpolation (Chapter 2) now precedes even the chapter on the solution of nonlinear systems (Chapter 3) and is used subsequently for some of the material in all chapters. The treatment of Gauss elimination (Chapter 4) has been simplified. In addition, Chapter 4 now makes extensive use of Wilkinson's backward error analysis, and contains a survey of many well-known methods for the eigenvalue-eigenvector problem. Chapter 5 is a new chapter on systems of equations and unconstrained optimisation. It contains an introduction to steepest-descent methods, Newton's method for nonlinear systems of equations, and relaxation methods for solving large linear systems by iteration. The chapter on approximation (Chapter 6) has been enlarged. It now treats best approximation and good approximation by polynomials, also approximation by trigonometric functions, including the Fast Fourier Transforms, as well as least-squares data fitting, orthogonal polynomials, and curve fitting by splines. Differentiation and integration are now treated in Chapter 7, which contains a new section on adaptive quadrature. Chapter 8 on ordinary differential equations contains considerable new material and some new sections. There is a new section on step-size control in Runge-Kutta methods and a new section on stiff differential equations as well as an extensively revised section on numerical instability. Chapter 9 contains a brief introduction to collocation as a method for solving boundary-value problems.
This edition, as did the previous one, assumes that students have access to a computer and that they are familiar with programming in some procedure-oriented language. A large number of algorithms are presented in the text, and FORTRAN programs for many of these algorithms have been provided. There are somewhat fewer complete programs in this edition. All the programs have been rewritten in the FORTRAN 77 language which uses modern structured-programming concepts. All the programs have been tested on one or more computers, and in most cases machine results are presented. When numerical output is given, the text will indicate which machine (IBM, CDC, UNIVAC) was used to obtain the results.
The book contains more material than can usually be covered in a typical one-semester undergraduate course for general science majors. This gives the instructor considerable leeway in designing the course. For this, it is important to point out that only the material on polynomial interpolation in Chapter 2, on linear systems in Chapter 4, and on differentiation and integration in Chapter 7, is required in an essential way in subsequent chapters. The material in the first seven chapters (exclusive of the starred sections) would make a reasonable first course.
3.2. From the Introduction.
This book is concerned with the practical solution of problems on computers. In the process of problem solving, it is possible to distinguish several more or less distinct phases. The first phase is formulation. In formulating a mathematical model of a physical situation, scientists should take into account beforehand the fact that they expect to solve a problem on a computer. They will therefore provide for specific objectives, proper input data, adequate checks, and for the type and amount of output.
Once a problem has been formulated, numerical methods, together with a preliminary error analysis, must be devised for solving the problem. A numerical method which can be used to solve a problem will be called an algorithm. An algorithm is a complete and unambiguous set of procedures leading to the solution of a mathematical problem. The selection or construction of appropriate algorithms properly falls within the scope of numerical analysis. Having decided on a specific algorithm or set of algorithms for solving the problem, numerical analysts should consider all the sources of error that may affect the results. They must consider how much accuracy is required, estimate the magnitude of the round-off and discretisation errors, determine an appropriate step size or the number of iterations required, provide for adequate checks on the accuracy, and make allowance for corrective action in cases of nonconvergence.
The third phase of problem solving is programming. The programmer must transform the suggested algorithm into a set of unambiguous step-by-step instructions to the computer. The first step in this procedure is called flow charting. A flow chart is simply a set of procedures, usually in logical block form, which the computer will follow. It may be given in graphical or procedural statement form. The complexity of the flow will depend upon the complexity of the problem and the amount of detail included. However, it should be possible for someone other than the programmer to follow the flow of information from the chart. The flow chart is an effective aid to the programmer, who must translate its major functions into a program, and, at the same time, it is an effective means of communication to others who wish to understand what the program does. In this book we sometimes use flow charts in graphical form, but more often in procedural statement form. When graphical flow charts are used, standard conventions are followed, whereas all procedural statement charts use a self-explanatory ALGOL-like statement language. Having produced a flow chart, the programmer must transform the indicated procedures into a set of machine instructions. This may be done directly in machine language, in an assembly language, or in a procedure-oriented language. In this book a dialect of FORTRAN called FORTRAN 77 is used exclusively. FORTRAN 77 is a new dialect of FORTRAN which incorporates new control statements and which emphasises modern structured-programming concepts. While FORTRAN IV compilers are available on almost all computers, FORTRAN 77 may not be as readily available. However, conversion from FORTRAN 77 to FORTRAN IV should be relatively straightforward.
A procedure-oriented language such as FORTRAN or ALGOL is sometimes called an algorithmic language. It allows us to express a mathematical algorithm in a form more suitable for communication with computers. A FORTRAN procedure that implements a mathematical algorithm will, in general, be much more precise than the mathematical algorithm. If, for example, the mathematical algorithm specifies an iterative procedure for finding the solution of an equation, the FORTRAN program must specify (1) the accuracy that is required, (2) the number of iterations to be performed, and (3) what to do in case of nonconvergence. Most of the algorithms in this book are given in the normal mathematical form and in the more precise form of a FORTRAN procedure.
In many installations, each of these phases of problem solving is performed by a separate person. In others, a single person may be responsible for all three functions. It is clear that there are many interactions among these three phases. As the program develops, more information becomes available, and this information may suggest changes in the formulation, in the algorithms being used, and in the program itself.
4. Splinefunktionen (1990), by Carl de Boor.
This is the third edition of a book on elementary numerical analysis which is designed specifically for the needs of upper-division undergraduate students in engineering, mathematics, and science including, in particular, computer science. On the whole, the student who has had a solid college calculus sequence should have no difficulty following the material. Advanced mathematical concepts, such as norms and orthogonality, when they are used, are introduced carefully at a level suitable for undergraduate students and do not assume any previous knowledge. Some familiarity with matrices is assumed for the chapter on systems of equations and with differential equations for Chapters 8 and 9. This edition does contain some sections which require slightly more mathematical maturity than the previous edition. However, all such sections are marked with asterisks and all can be omitted by the instructor with no loss in continuity.
This new edition contains a great deal of new material and significant changes to some of the older material. The chapters have been rearranged in what we believe is a more natural order. Polynomial interpolation (Chapter 2) now precedes even the chapter on the solution of nonlinear systems (Chapter 3) and is used subsequently for some of the material in all chapters. The treatment of Gauss elimination (Chapter 4) has been simplified. In addition, Chapter 4 now makes extensive use of Wilkinson's backward error analysis, and contains a survey of many well-known methods for the eigenvalue-eigenvector problem. Chapter 5 is a new chapter on systems of equations and unconstrained optimisation. It contains an introduction to steepest-descent methods, Newton's method for nonlinear systems of equations, and relaxation methods for solving large linear systems by iteration. The chapter on approximation (Chapter 6) has been enlarged. It now treats best approximation and good approximation by polynomials, also approximation by trigonometric functions, including the Fast Fourier Transforms, as well as least-squares data fitting, orthogonal polynomials, and curve fitting by splines. Differentiation and integration are now treated in Chapter 7, which contains a new section on adaptive quadrature. Chapter 8 on ordinary differential equations contains considerable new material and some new sections. There is a new section on step-size control in Runge-Kutta methods and a new section on stiff differential equations as well as an extensively revised section on numerical instability. Chapter 9 contains a brief introduction to collocation as a method for solving boundary-value problems.
This edition, as did the previous one, assumes that students have access to a computer and that they are familiar with programming in some procedure-oriented language. A large number of algorithms are presented in the text, and FORTRAN programs for many of these algorithms have been provided. There are somewhat fewer complete programs in this edition. All the programs have been rewritten in the FORTRAN 77 language which uses modern structured-programming concepts. All the programs have been tested on one or more computers, and in most cases machine results are presented. When numerical output is given, the text will indicate which machine (IBM, CDC, UNIVAC) was used to obtain the results.
The book contains more material than can usually be covered in a typical one-semester undergraduate course for general science majors. This gives the instructor considerable leeway in designing the course. For this, it is important to point out that only the material on polynomial interpolation in Chapter 2, on linear systems in Chapter 4, and on differentiation and integration in Chapter 7, is required in an essential way in subsequent chapters. The material in the first seven chapters (exclusive of the starred sections) would make a reasonable first course.
3.2. From the Introduction.
This book is concerned with the practical solution of problems on computers. In the process of problem solving, it is possible to distinguish several more or less distinct phases. The first phase is formulation. In formulating a mathematical model of a physical situation, scientists should take into account beforehand the fact that they expect to solve a problem on a computer. They will therefore provide for specific objectives, proper input data, adequate checks, and for the type and amount of output.
Once a problem has been formulated, numerical methods, together with a preliminary error analysis, must be devised for solving the problem. A numerical method which can be used to solve a problem will be called an algorithm. An algorithm is a complete and unambiguous set of procedures leading to the solution of a mathematical problem. The selection or construction of appropriate algorithms properly falls within the scope of numerical analysis. Having decided on a specific algorithm or set of algorithms for solving the problem, numerical analysts should consider all the sources of error that may affect the results. They must consider how much accuracy is required, estimate the magnitude of the round-off and discretisation errors, determine an appropriate step size or the number of iterations required, provide for adequate checks on the accuracy, and make allowance for corrective action in cases of nonconvergence.
The third phase of problem solving is programming. The programmer must transform the suggested algorithm into a set of unambiguous step-by-step instructions to the computer. The first step in this procedure is called flow charting. A flow chart is simply a set of procedures, usually in logical block form, which the computer will follow. It may be given in graphical or procedural statement form. The complexity of the flow will depend upon the complexity of the problem and the amount of detail included. However, it should be possible for someone other than the programmer to follow the flow of information from the chart. The flow chart is an effective aid to the programmer, who must translate its major functions into a program, and, at the same time, it is an effective means of communication to others who wish to understand what the program does. In this book we sometimes use flow charts in graphical form, but more often in procedural statement form. When graphical flow charts are used, standard conventions are followed, whereas all procedural statement charts use a self-explanatory ALGOL-like statement language. Having produced a flow chart, the programmer must transform the indicated procedures into a set of machine instructions. This may be done directly in machine language, in an assembly language, or in a procedure-oriented language. In this book a dialect of FORTRAN called FORTRAN 77 is used exclusively. FORTRAN 77 is a new dialect of FORTRAN which incorporates new control statements and which emphasises modern structured-programming concepts. While FORTRAN IV compilers are available on almost all computers, FORTRAN 77 may not be as readily available. However, conversion from FORTRAN 77 to FORTRAN IV should be relatively straightforward.
A procedure-oriented language such as FORTRAN or ALGOL is sometimes called an algorithmic language. It allows us to express a mathematical algorithm in a form more suitable for communication with computers. A FORTRAN procedure that implements a mathematical algorithm will, in general, be much more precise than the mathematical algorithm. If, for example, the mathematical algorithm specifies an iterative procedure for finding the solution of an equation, the FORTRAN program must specify (1) the accuracy that is required, (2) the number of iterations to be performed, and (3) what to do in case of nonconvergence. Most of the algorithms in this book are given in the normal mathematical form and in the more precise form of a FORTRAN procedure.
In many installations, each of these phases of problem solving is performed by a separate person. In others, a single person may be responsible for all three functions. It is clear that there are many interactions among these three phases. As the program develops, more information becomes available, and this information may suggest changes in the formulation, in the algorithms being used, and in the program itself.
4.1. From the Preface.
These lecture notes are a transcript of a lecture given by Professor Carl de Boor in the summer semester of 1984 as part of the postgraduate programme in mathematics at the Swiss Federal Institute of Technology in Zurich. During this time, Professor de Boor was a guest at the Research Institute for Mathematics at ETH Zurich.
Fri Brigitte Knecht from the Department of Applied Mathematics carefully prepared the manuscript; without her tireless efforts, for which we would like to express our sincere thanks, the lecture notes would not be available to us in a readable form.
4.2. From the Introduction.
The term spline functions was introduced by I J Schoenberg in 1946. "Spline" is the name of a drawing device that solves interpolation problems mechanically. This device consists of a flexible rod, often several meters long, that rests on the drawing board and is held in place at specific points by weights. The shape the rod takes depends on its elastic properties.
4.3. Review by: E W Grafarend.
Mathematical Reviews MR1212083 (95k:41002).
This is an advanced text in which the constructive theory of B-splines is presented.
5. Box splines (1993), by C de Boor, K Höllig and S Riemenschneider.
These lecture notes are a transcript of a lecture given by Professor Carl de Boor in the summer semester of 1984 as part of the postgraduate programme in mathematics at the Swiss Federal Institute of Technology in Zurich. During this time, Professor de Boor was a guest at the Research Institute for Mathematics at ETH Zurich.
Fri Brigitte Knecht from the Department of Applied Mathematics carefully prepared the manuscript; without her tireless efforts, for which we would like to express our sincere thanks, the lecture notes would not be available to us in a readable form.
4.2. From the Introduction.
The term spline functions was introduced by I J Schoenberg in 1946. "Spline" is the name of a drawing device that solves interpolation problems mechanically. This device consists of a flexible rod, often several meters long, that rests on the drawing board and is held in place at specific points by weights. The shape the rod takes depends on its elastic properties.
4.3. Review by: E W Grafarend.
Mathematical Reviews MR1212083 (95k:41002).
This is an advanced text in which the constructive theory of B-splines is presented.
5.1. From the Preface.
Compactly supported smooth piecewise polynomial functions provide an efficient tool for the approximation of curves and surfaces and other smooth functions of one and several arguments. Since they are locally polynomial, they are easy to evaluate. Since they are smooth, they can be used when smoothness is required, as in the numerical solution of partial differential equations (in the Finite Element method) or the modelling of smooth surfaces (in Computer Aided Geometric Design). Since they are compactly supported, their linear span has the needed flexibility to approximate at all, and the systems to be solved in the construction of approximations are 'banded'.
The construction of compactly supported smooth piecewise polynomials becomes ever more difficult as the dimension, , of their domain , i.e., the number of arguments, increases. In the univariate case, there is only one kind of cell in any useful partition, namely, an interval, and its boundary consists of two separated points, across which polynomial pieces would have to be matched as one constructs a smooth piecewise polynomial function. This can be done easily, with the only limitation that the number of smoothness conditions across such a breakpoint should not exceed the polynomial degree (since that would force the two joining polynomial pieces to coincide). In particular, on any partition, there are (nontrivial) compactly supported piecewise polynomials of degree ≤ and in , of which the univariate B-spline is the most useful example. However, when , then a useful partition may contain cells of various types (simplices and perturbations of parallelepipeds being the most common), and the boundary of a cell is not only connected, but becomes an ever more important part of a cell as s increases (since its dimension differs from that of the cell itself only by 1). This makes the construction of low-degree compactly supported smooth piecewise polynomials impossible except on very special partitions.
In fact, for , the only general construction principle presently available is that of the so-called polyhedral splines (a.k.a. 'multivariate B-splines'), of which the box spline, the simplex spline, and the cone spline are the most striking examples. These are obtained as the -dimensional 'shadow' of an -dimensional polytope (e.g., the standard -cube, the standard -simplex, or the positive -orthant), are piecewise polynomial of degree , with support equal to the corresponding projection of the polytope into , and are in if the projector used is generic. In any case, since their partition is determined by just how the -dimensional polytope is projected into , it is usually not possible to prescribe the partition (in line with the fact that, for a generic partition, there are no compactly supported piecewise polynomials of degree in for close to ). However, it is possible to refine any triangulation to a partition for which sufficiently many (translated) smooth simplex splines are available to span a piecewise polynomial space of good approximation power. Alternatively, if the given partition is sufficiently uniform, then there are box splines available whose integer translates span a space of piecewise polynomials with that partition and of good approximation power. Such spaces are the multivariate equivalent of the univariate cardinal spline studied intensively by I J Schoenberg and others.
As with Schoenberg's cardinal splines, box splines give rise to an intriguing and beautiful mathematical theory, much more intricate and rich, hence less complete at present. The basic facts, however, have been available for several years, albeit in various papers only. Several of these papers are quite long, and are more devoted to the publication of specific new results than to a careful exposition of the theory. We wrote this book to remedy this.
We have not merely organised the available material in some cohesive way, but have also looked quite carefully at the available arguments and, in many cases, modified them considerably, in line with our goal to provide simple and complete proofs.
While we have endeavoured to provide an up-to-date bibliography of papers concerned with box splines, we have made no attempt to report here anything more than what we consider to be the basic box spline theory. In particular, we have included nothing about spaces generated by several box splines, since their theory is far from complete at present. Neither have we dealt with the promising theory of exponential box splines.
The book is organised in the following way. In chapter I, we give the various equivalent definitions of a box spline, and derive its basic properties. We urge readers unfamiliar with box splines to read ahead to the various detailed (bivariate) examples (and construct others of their own). The rest of the book is concerned with various aspects of the principal shift-invariant space generated by a box spline (a.k.a. a cardinal spline space). For this reason, only box splines with integer directions are considered after chapter I. The linear algebra of a cardinal spline space is the topic of chapter II. It highlights the results of Dahmen and Micchelli on linear independence and the kernels of certain related differential and difference operators. Chapter III brings the basic results on approximation order from a box spline space, and includes a discussion of the construction of quasi-interpolants which realise this order. In chapter IV, Schoenberg's beautiful theory of cardinal spline interpolation is discussed in the setting of box splines where it becomes necessary to devote much more effort to the singular case than in the univariate setting. Chapter V begins with a discussion of the convergence of cardinal splines as their degree tends to infinity and continues with the natural relation of cardinal splines to the multivariate Whittaker cardinal series and wavelets. The theory of discrete box splines is developed in chapter VI in close analogy to that of the (continuous) box spline. It provides the basis for the discussion of subdivision algorithms for the generation of box splines surfaces, in the final chapter.
We have left the attribution of results to the notes at the end of each chapter.
5.2. Review by: Charles K Chui.
Mathematical Reviews MR1243635 (94k:65004).
The theory of cardinal polynomial spline functions, intensively studied by the late I J Schoenberg [Cardinal spline interpolation, 1973] and some of his followers, provides a solid foundation for the analysis of the so-called box (or cube) splines, first recognised as a generalisation of Schoenberg's simplex spline (introduced by C de Boor [in Approximation theory II (1976)). Instead of taking repeated convolutions of the characteristic function of the unit interval, a box spline may be defined by taking convolutions along a given set of directions in higher dimensions, again by starting with the characteristic function of the unit cube. Hence, a box spline is a compactly supported, smooth piecewise multivariate polynomial function, with grid and size of its support determined by the direction set. For a nice regular grid that separates the polynomial pieces, only (multi-) integer directions can be used. Like cardinal splines, box splines also give rise to an intriguing and beautiful mathematical theory, but unlike in the case of cardinal splines, the theory of box splines is less complete, due to its complexity. In fact, although the rapid development of box splines already took place approximately fifteen years ago and several fairly comprehensive survey articles have been written once every three years since 1983, there has been no book, with the exception of one chapter and several other sections in a book by the reviewer [Multivariate splines, 1988], entirely devoted to the subject of box splines.
The monograph under review is very much worth waiting for. The authors have taken extreme care in preparing this book, giving complete and elegant proofs of all the results stated in the text (except those in the ``Notes'') and going to the trouble of describing some of the historical developments of the important topics in the Notes sections at the end of each chapter.
The reader who might not be used to the elegant and economical notations of the authors will find the five-page notation preview very helpful. Once he/she is familiar with the somewhat nonstandard notation, the reader will enjoy reading chapter after chapter without realising that this is not an easy subject at all, and that some of the results originally took many more journal pages to prove.
...
This is an excellent monograph for both research students and specialists. Although the mathematical analysis is sometimes quite involved and is not easily followed by non-specialists, an abundance of examples, particularly the standard Zwart-Powell element used over and over again for different purposes, as well as over fifty beautifully drawn illustrations, should greatly help the reader in understanding the definitions and several analytical steps. For students with a good knowledge of univariate spline functions, this book should be an excellent text for a one-semester graduate course in mathematics or computer science departments.
6. A practical guide to splines. Revised Edition (2001), by Carl de Boor.
Compactly supported smooth piecewise polynomial functions provide an efficient tool for the approximation of curves and surfaces and other smooth functions of one and several arguments. Since they are locally polynomial, they are easy to evaluate. Since they are smooth, they can be used when smoothness is required, as in the numerical solution of partial differential equations (in the Finite Element method) or the modelling of smooth surfaces (in Computer Aided Geometric Design). Since they are compactly supported, their linear span has the needed flexibility to approximate at all, and the systems to be solved in the construction of approximations are 'banded'.
The construction of compactly supported smooth piecewise polynomials becomes ever more difficult as the dimension, , of their domain , i.e., the number of arguments, increases. In the univariate case, there is only one kind of cell in any useful partition, namely, an interval, and its boundary consists of two separated points, across which polynomial pieces would have to be matched as one constructs a smooth piecewise polynomial function. This can be done easily, with the only limitation that the number of smoothness conditions across such a breakpoint should not exceed the polynomial degree (since that would force the two joining polynomial pieces to coincide). In particular, on any partition, there are (nontrivial) compactly supported piecewise polynomials of degree ≤ and in , of which the univariate B-spline is the most useful example. However, when , then a useful partition may contain cells of various types (simplices and perturbations of parallelepipeds being the most common), and the boundary of a cell is not only connected, but becomes an ever more important part of a cell as s increases (since its dimension differs from that of the cell itself only by 1). This makes the construction of low-degree compactly supported smooth piecewise polynomials impossible except on very special partitions.
In fact, for , the only general construction principle presently available is that of the so-called polyhedral splines (a.k.a. 'multivariate B-splines'), of which the box spline, the simplex spline, and the cone spline are the most striking examples. These are obtained as the -dimensional 'shadow' of an -dimensional polytope (e.g., the standard -cube, the standard -simplex, or the positive -orthant), are piecewise polynomial of degree , with support equal to the corresponding projection of the polytope into , and are in if the projector used is generic. In any case, since their partition is determined by just how the -dimensional polytope is projected into , it is usually not possible to prescribe the partition (in line with the fact that, for a generic partition, there are no compactly supported piecewise polynomials of degree in for close to ). However, it is possible to refine any triangulation to a partition for which sufficiently many (translated) smooth simplex splines are available to span a piecewise polynomial space of good approximation power. Alternatively, if the given partition is sufficiently uniform, then there are box splines available whose integer translates span a space of piecewise polynomials with that partition and of good approximation power. Such spaces are the multivariate equivalent of the univariate cardinal spline studied intensively by I J Schoenberg and others.
As with Schoenberg's cardinal splines, box splines give rise to an intriguing and beautiful mathematical theory, much more intricate and rich, hence less complete at present. The basic facts, however, have been available for several years, albeit in various papers only. Several of these papers are quite long, and are more devoted to the publication of specific new results than to a careful exposition of the theory. We wrote this book to remedy this.
We have not merely organised the available material in some cohesive way, but have also looked quite carefully at the available arguments and, in many cases, modified them considerably, in line with our goal to provide simple and complete proofs.
While we have endeavoured to provide an up-to-date bibliography of papers concerned with box splines, we have made no attempt to report here anything more than what we consider to be the basic box spline theory. In particular, we have included nothing about spaces generated by several box splines, since their theory is far from complete at present. Neither have we dealt with the promising theory of exponential box splines.
The book is organised in the following way. In chapter I, we give the various equivalent definitions of a box spline, and derive its basic properties. We urge readers unfamiliar with box splines to read ahead to the various detailed (bivariate) examples (and construct others of their own). The rest of the book is concerned with various aspects of the principal shift-invariant space generated by a box spline (a.k.a. a cardinal spline space). For this reason, only box splines with integer directions are considered after chapter I. The linear algebra of a cardinal spline space is the topic of chapter II. It highlights the results of Dahmen and Micchelli on linear independence and the kernels of certain related differential and difference operators. Chapter III brings the basic results on approximation order from a box spline space, and includes a discussion of the construction of quasi-interpolants which realise this order. In chapter IV, Schoenberg's beautiful theory of cardinal spline interpolation is discussed in the setting of box splines where it becomes necessary to devote much more effort to the singular case than in the univariate setting. Chapter V begins with a discussion of the convergence of cardinal splines as their degree tends to infinity and continues with the natural relation of cardinal splines to the multivariate Whittaker cardinal series and wavelets. The theory of discrete box splines is developed in chapter VI in close analogy to that of the (continuous) box spline. It provides the basis for the discussion of subdivision algorithms for the generation of box splines surfaces, in the final chapter.
We have left the attribution of results to the notes at the end of each chapter.
5.2. Review by: Charles K Chui.
Mathematical Reviews MR1243635 (94k:65004).
The theory of cardinal polynomial spline functions, intensively studied by the late I J Schoenberg [Cardinal spline interpolation, 1973] and some of his followers, provides a solid foundation for the analysis of the so-called box (or cube) splines, first recognised as a generalisation of Schoenberg's simplex spline (introduced by C de Boor [in Approximation theory II (1976)). Instead of taking repeated convolutions of the characteristic function of the unit interval, a box spline may be defined by taking convolutions along a given set of directions in higher dimensions, again by starting with the characteristic function of the unit cube. Hence, a box spline is a compactly supported, smooth piecewise multivariate polynomial function, with grid and size of its support determined by the direction set. For a nice regular grid that separates the polynomial pieces, only (multi-) integer directions can be used. Like cardinal splines, box splines also give rise to an intriguing and beautiful mathematical theory, but unlike in the case of cardinal splines, the theory of box splines is less complete, due to its complexity. In fact, although the rapid development of box splines already took place approximately fifteen years ago and several fairly comprehensive survey articles have been written once every three years since 1983, there has been no book, with the exception of one chapter and several other sections in a book by the reviewer [Multivariate splines, 1988], entirely devoted to the subject of box splines.
The monograph under review is very much worth waiting for. The authors have taken extreme care in preparing this book, giving complete and elegant proofs of all the results stated in the text (except those in the ``Notes'') and going to the trouble of describing some of the historical developments of the important topics in the Notes sections at the end of each chapter.
The reader who might not be used to the elegant and economical notations of the authors will find the five-page notation preview very helpful. Once he/she is familiar with the somewhat nonstandard notation, the reader will enjoy reading chapter after chapter without realising that this is not an easy subject at all, and that some of the results originally took many more journal pages to prove.
...
This is an excellent monograph for both research students and specialists. Although the mathematical analysis is sometimes quite involved and is not easily followed by non-specialists, an abundance of examples, particularly the standard Zwart-Powell element used over and over again for different purposes, as well as over fifty beautifully drawn illustrations, should greatly help the reader in understanding the definitions and several analytical steps. For students with a good knowledge of univariate spline functions, this book should be an excellent text for a one-semester graduate course in mathematics or computer science departments.
6.1. From the Preface.
The present version differs from the original in the following respects. The book is now typeset (in plain TEX; thank you, Don Knuth!), the Fortran programs now make use of FORTRAN 77 features, the figures have been redrawn with the aid of MATLAB (thank you, Cleve Moler and Jack Little!), various errors have been corrected, and many more formal statements have been provided with proofs. Further, all formal statements and equations have been numbered by the same numbering system, to make it easier to find any particular item. A major change has occurred in Chapters IX-XI where the B-spline theory is now developed directly from the recurrence relations without recourse to divided differences (except for the derivation of the recurrence relations themselves). This has brought in knot insertion as a powerful tool for providing simple proofs concerning the shape-preserving properties of the B-spline series.
I gratefully acknowledge support from the Army Research Office and from the Division of Mathematical Sciences of the National Science Foundation.
Special thanks are due to Peter de Boor, Kirk Haller, and S Nam for their substantial help, and to Reinhold de Boor for the protracted final editing of the TEX files and for all the figures.
Carl de Boor
Madison, Wisconsin
October 2000
6.2. Review by: Gerlind Plonka.
Mathematical Reviews MR1900298 (2003f:41001).
The present book is a revised version of the original. It is now typeset in TeX and the programs make use of FORTRAN 77 features. Further, various errors are corrected and many more statements are provided with proofs. Major changes occur in chapters IX-XI, where the theory of B-splines is now developed directly from recurrence relations and without divided differences. This approach provides simple proofs for the shape-preserving properties of B-spline series.
This book is a classic reference in spline theory. It will be of great benefit to students as an introduction to the subject as well as to experts in the field.
7. Elementary numerical analysis. An algorithmic approach (Classics Edition) (2018), by S D Conte and Carl de Boor.
The present version differs from the original in the following respects. The book is now typeset (in plain TEX; thank you, Don Knuth!), the Fortran programs now make use of FORTRAN 77 features, the figures have been redrawn with the aid of MATLAB (thank you, Cleve Moler and Jack Little!), various errors have been corrected, and many more formal statements have been provided with proofs. Further, all formal statements and equations have been numbered by the same numbering system, to make it easier to find any particular item. A major change has occurred in Chapters IX-XI where the B-spline theory is now developed directly from the recurrence relations without recourse to divided differences (except for the derivation of the recurrence relations themselves). This has brought in knot insertion as a powerful tool for providing simple proofs concerning the shape-preserving properties of the B-spline series.
I gratefully acknowledge support from the Army Research Office and from the Division of Mathematical Sciences of the National Science Foundation.
Special thanks are due to Peter de Boor, Kirk Haller, and S Nam for their substantial help, and to Reinhold de Boor for the protracted final editing of the TEX files and for all the figures.
Carl de Boor
Madison, Wisconsin
October 2000
6.2. Review by: Gerlind Plonka.
Mathematical Reviews MR1900298 (2003f:41001).
The present book is a revised version of the original. It is now typeset in TeX and the programs make use of FORTRAN 77 features. Further, various errors are corrected and many more statements are provided with proofs. Major changes occur in chapters IX-XI, where the theory of B-splines is now developed directly from recurrence relations and without divided differences. This approach provides simple proofs for the shape-preserving properties of B-spline series.
This book is a classic reference in spline theory. It will be of great benefit to students as an introduction to the subject as well as to experts in the field.
7.1. From the Publisher.
This book provides a thorough and careful introduction to the theory and practice of scientific computing at an elementary, yet rigorous, level, from theory via examples and algorithms to computer programs. The intended audience is upper-division undergraduates in engineering, mathematics, and the sciences, including computer science. The book has served well as a text book. The original FORTRAN programs have been rewritten in MATLAB and now appear in a new appendix and online, offering a modernised version of this classic reference for basic numerical algorithms.
7.2. From the Preface.
When, in the late 1980s, the publisher of Elementary Numerical Analysis: An Algorithmic Approach raised the question of a fourth edition, I was looking forward to rewriting the last two chapters, which in previous revisions I had not yet reached. I also looked forward to replacing FORTRAN with MATLAB, a language for scientific computing that had just become widely available but that I had used with great success in several numerical explorations.
However, the senior author and the publishers were dead set against that, so I lost my enthusiasm, and the project fell by the wayside.
Now, thanks to the editors of SIAM's Classics in Applied Mathematics series, the book contains MATLAB, albeit at the end of the book rather than interspersed in the text, but the anticipated revision of the last two chapters has not happened. The extensive list of errata and emendations will have to suffice.
This book provides a thorough and careful introduction to the theory and practice of scientific computing at an elementary, yet rigorous, level, from theory via examples and algorithms to computer programs. The intended audience is upper-division undergraduates in engineering, mathematics, and the sciences, including computer science. The book has served well as a text book. The original FORTRAN programs have been rewritten in MATLAB and now appear in a new appendix and online, offering a modernised version of this classic reference for basic numerical algorithms.
7.2. From the Preface.
When, in the late 1980s, the publisher of Elementary Numerical Analysis: An Algorithmic Approach raised the question of a fourth edition, I was looking forward to rewriting the last two chapters, which in previous revisions I had not yet reached. I also looked forward to replacing FORTRAN with MATLAB, a language for scientific computing that had just become widely available but that I had used with great success in several numerical explorations.
However, the senior author and the publishers were dead set against that, so I lost my enthusiasm, and the project fell by the wayside.
Now, thanks to the editors of SIAM's Classics in Applied Mathematics series, the book contains MATLAB, albeit at the end of the book rather than interspersed in the text, but the anticipated revision of the last two chapters has not happened. The extensive list of errata and emendations will have to suffice.
Last Updated December 2025