HOME

TheInfoList



OR:

In
mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ...
, a spline is a special function defined
piecewise In mathematics, a piecewise-defined function (also called a piecewise function, a hybrid function, or definition by cases) is a function defined by multiple sub-functions, where each sub-function applies to a different interval in the domain. P ...
by
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exampl ...
s. In
interpolating In the mathematics, mathematical field of numerical analysis, interpolation is a type of estimation, a method of constructing (finding) new data points based on the range of a discrete set of known data points. In engineering and science, one ...
problems,
spline interpolation In the mathematical field of numerical analysis, spline interpolation is a form of interpolation where the interpolant is a special type of piecewise polynomial called a spline. That is, instead of fitting a single, high-degree polynomial to all ...
is often preferred to
polynomial interpolation In numerical analysis, polynomial interpolation is the interpolation of a given data set by the polynomial of lowest possible degree that passes through the points of the dataset. Given a set of data points (x_0,y_0), \ldots, (x_n,y_n), with no ...
because it yields similar results, even when using low degree polynomials, while avoiding
Runge's phenomenon In the mathematical field of numerical analysis, Runge's phenomenon () is a problem of oscillation at the edges of an interval that occurs when using polynomial interpolation with polynomials of high degree over a set of equispaced interpolation ...
for higher degrees. In the
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
subfields of
computer-aided design Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve co ...
and
computer graphics Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great de ...
, the term ''spline'' more frequently refers to a piecewise polynomial ( parametric)
curve In mathematics, a curve (also called a curved line in older texts) is an object similar to a line, but that does not have to be straight. Intuitively, a curve may be thought of as the trace left by a moving point. This is the definition that ...
. Splines are popular curves in these subfields because of the simplicity of their construction, their ease and accuracy of evaluation, and their capacity to approximate complex shapes through
curve fitting Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data i ...
and interactive curve design. The term spline comes from the flexible spline devices used by shipbuilders and
draftsmen A drafter (also draughtsman / draughtswoman in British and Commonwealth English, draftsman / draftswoman or drafting technician in American and Canadian English) is an engineering technician who makes detailed technical drawings or plans for ...
to draw smooth shapes.


Introduction

The term "spline" is used to refer to a wide class of functions that are used in applications requiring data interpolation and/or smoothing. The data may be either one-dimensional or multi-dimensional. Spline functions for interpolation are normally determined as the minimizers of suitable measures of roughness (for example integral squared curvature) subject to the interpolation constraints. Smoothing splines may be viewed as generalizations of interpolation splines where the functions are determined to minimize a weighted combination of the average squared approximation error over observed data and the roughness measure. For a number of meaningful definitions of the roughness measure, the spline functions are found to be finite dimensional in nature, which is the primary reason for their utility in computations and representation. For the rest of this section, we focus entirely on one-dimensional, polynomial splines and use the term "spline" in this restricted sense.


Definition

We begin by limiting our discussion to polynomials in one variable. In this case, a spline is a
piecewise In mathematics, a piecewise-defined function (also called a piecewise function, a hybrid function, or definition by cases) is a function defined by multiple sub-functions, where each sub-function applies to a different interval in the domain. P ...
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exampl ...
function. This function, call it ''S'', takes values from an interval 'a'',''b''and maps them to \mathbb, the set of
real numbers In mathematics, a real number is a number that can be used to measure a ''continuous'' one-dimensional quantity such as a distance, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small variations. Every re ...
,
:S: ,bto \mathbb. We want ''S'' to be piecewise defined. To accomplish this, let the interval 'a'',''b''be covered by ''k'' ordered, disjoint subintervals, : _i, t_\mbox i = 0,\ldots, k-1 : ,b= _0,t_1) \cup [t_1,t_2) \cup \cdots \cup [t_,t_) \cup [t_,t_k) \cup [t_k/math> :a = t_0 \le t_1 \le \cdots \le t_ \le t_k = b On each of these ''k'' "pieces" of [''a'',''b''], we want to define a polynomial, call it ''P''''i''.
:P_i: [t_i, t_]\to \mathbb. On the ''i''th subinterval of [''a'',''b''], ''S'' is defined by ''P''''i'',
:S(t) = P_0 (t) \mbox t_0 \le t < t_1, :S(t) = P_1 (t) \mbox t_1 \le t < t_2, :\vdots :S(t) = P_ (t) \mbox t_ \le t \le t_k. The given ''k+1'' points ''t''''i'' are called knots. The vector =(t_0, \dots, t_k) is called a knot vector for the spline. If the knots are equidistantly distributed in the interval 'a'',''b''we say the spline is uniform, otherwise we say it is non-uniform. If the polynomial pieces ''P''''i'' each have degree at most ''n'', then the spline is said to be of degree \leq n (or of order ''n+1''). If S\in C^ in a neighborhood of ''t''''i'', then the spline is said to be of
smoothness In mathematical analysis, the smoothness of a function is a property measured by the number of continuous derivatives it has over some domain, called ''differentiability class''. At the very minimum, a function could be considered smooth if ...
(at least) C^ at ''t''''i''. That is, at ''t''''i'' the two polynomial pieces ''P''''i-1'' and ''P''''i'' share common derivative values from the derivative of order 0 (the function value) up through the derivative of order ''r''''i'' (in other words, the two adjacent polynomial pieces connect with loss of smoothness of at most ''n'' - ''r''''i'') :P_^(t) = P_^ (t) :P_^(t) = P_^ (t) :\vdots :P_^(t) = P_^ (t). A vector =(r_1, \dots, r_) such that the spline has smoothness C^ at ''t''''i'' for i = 1,\ldots, k-1 is called a smoothness vector for the spline. Given a knot vector , a degree ''n'', and a smoothness vector for , one can consider the set of all splines of degree \leq n having knot vector and smoothness vector . Equipped with the operation of adding two functions (pointwise addition) and taking real multiples of functions, this set becomes a real vector space. This spline space is commonly denoted by S^_n(). In the mathematical study of polynomial splines the question of what happens when two knots, say ''t''''i'' and ''t''''i''+1, are moved together has an easy answer. The polynomial piece ''P''''i''(''t'') disappears, and the pieces ''P''''i''−1(''t'') and ''P''''i''+1(''t'') join with the sum of the continuity losses for ''t''''i'' and ''t''''i''+1. That is, : S(t) \in C^
_i = t_ I, or i, is the ninth letter and the third vowel letter of the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''i'' (pronounced ), plural ...
where j_i = n - r_i This leads to a more general understanding of a knot vector. The continuity loss at any point can be considered to be the result of multiple knots located at that point, and a spline type can be completely characterized by its degree ''n'' and its extended knot vector : (t_0 , t_1 , \cdots , t_1 , t_2, \cdots , t_2 , t_3 , \cdots , t_ , t_ , \cdots , t_ , t_k) where ''t''''i'' is repeated ''j''''i'' times for i = 1, \dots , k-1. A
parametric curve In mathematics, a parametric equation defines a group of quantities as functions of one or more independent variables called parameters. Parametric equations are commonly used to express the coordinates of the points that make up a geometric obj ...
on the interval 'a'',''b'':G(t) = ( X(t), Y(t) ) \mbox t \in a , b /math> is a spline curve if both ''X'' and ''Y'' are spline functions of the same degree with the same extended knot vectors on that interval.


Examples

Suppose the interval 'a'',''b''is ,3and the subintervals are ,1 ,2 and ,3 Suppose the polynomial pieces are to be of degree 2, and the pieces on ,1and ,2must join in value and first derivative (at ''t''=1) while the pieces on ,2and ,3join simply in value (at ''t'' = 2). This would define a type of spline ''S''(''t'') for which :S(t) = P_0 (t) = -1+4t-t^2 \mbox 0 \le t < 1 :S(t) = P_1 (t) = 2t \mbox 1 \le t < 2 :S(t) = P_2 (t) = 2-t+t^2 \mbox 2 \le t \le 3 would be a member of that type, and also :S(t) = P_0 (t) = -2-2t^2 \mbox 0 \le t < 1 :S(t) = P_1 (t) = 1-6t+t^2 \mbox 1 \le t < 2 :S(t) = P_2 (t) = -1+t-2t^2 \mbox 2 \le t \le 3 would be a member of that type. (Note: while the polynomial piece 2''t'' is not quadratic, the result is still called a quadratic spline. This demonstrates that the degree of a spline is the maximum degree of its polynomial parts.) The extended knot vector for this type of spline would be (0, 1, 2, 2, 3). The simplest spline has degree 0. It is also called a
step function In mathematics, a function on the real numbers is called a step function if it can be written as a finite linear combination of indicator functions of intervals. Informally speaking, a step function is a piecewise constant function having onl ...
. The next most simple spline has degree 1. It is also called a linear spline. A closed linear spline (i.e, the first knot and the last are the same) in the plane is just a
polygon In geometry, a polygon () is a plane figure that is described by a finite number of straight line segments connected to form a closed '' polygonal chain'' (or ''polygonal circuit''). The bounded plane region, the bounding circuit, or the two ...
. A common spline is the natural cubic spline of degree 3 with continuity ''C''2. The word "natural" means that the second derivatives of the spline polynomials are set equal to zero at the endpoints of the interval of interpolation :S''(a) \, = S''(b) = 0. This forces the spline to be a straight line outside of the interval, while not disrupting its smoothness.


Algorithm for computing natural cubic splines

Cubic splines are of the form _ \left ( x \right ) = a_j + b_j \left ( x-x_j \right ) + c_j ^ + d_j ^.
Given set of coordinates C= \left \left ( _,_ \right ) , \left ( _,_ \right ) , .... , \left ( _,_ \right ) \right /math> we wish to find set of n \, splines _ \left ( x \right ) for i = 0 , \ldots , n-1. These must satisfy: * S_i \left (x_i \right) = y_i = S_\left (x_i \right ), i = 1 , \ldots , n-1. * S_\left (x_0 \right ) = y_0 . * S_\left (x_n \right ) = y_n . *_i \left (x_i \right) = _\left (x_i \right ), i = 1 , \ldots , n-1. *_i \left (x_i \right) = _\left (x_i \right ), i = 1 , \ldots , n-1. *_0 \left (x_0 \right) = _ \left (x_n \right ) =0. Let us define one cubic spline S \, as a 5-tuple (a,b,c,d,x_t) \, where a,b,c \, and d \, correspond to coefficients in the form shown earlier and x_t \, is equal to x_j. \, Algorithm for computing Natural Cubic Splines:
Input: set of coordinates C \,, with \left , C \right , =n+1
Output: set splines which is composed of ''n'' 5-tuples. # Create new array ''a'' of size ''n + 1'' and for i = 0 , \ldots , n set a_i = y_i \, # Create new arrays ''b'' and ''d'' each of size ''n''. # Create new array ''h'' of size ''n'' and for i = 0 , \ldots , n-1 set h_i = x_ - x_i \, # Create new array ''α'' of size ''n'' and for i = 1 , \ldots , n-1 set _= \frac \left ( _-_ \right ) - \frac \left ( _-_ \right ) . # Create new arrays ''c'', ''l'', ''μ'', and ''z'' each of size n+1 \,. # Set l_0 = 1, _0 = z_0 = 0 \, # For i = 1 , \ldots , n-1 \, ## Set _ =2 \left ( _-_ \right ) - __. ## Set _= \frac . ## Set _ = \frac . # Set l_n = 1; z_n = c_n = 0. \, # For j = n-1 , n-2 , \ldots , 0 ## Set c_j = z_j - _j c_ \, ## Set b_j = \frac - \frac ## Set d_j = \frac # Create new set Splines and call it output_set. Populate it with ''n'' splines ''S''. # For i = 0 , \ldots , n-1 ## Set ''S''''i'',''a'' = ''a''''i'' ## Set ''S''''i'',''b'' = ''b''''i'' ## Set ''S''''i'',''c'' = ''c''''i'' ## Set ''S''''i'',''d'' = ''d''''i'' ## Set ''S''''i'',''x'' = ''x''''i'' # Output output_set


Notes

It might be asked what meaning more than ''n'' multiple knots in a knot vector have, since this would lead to continuities like :S(t) \in C^ \mbox m > 0 at the location of this high multiplicity. By convention, any such situation indicates a simple discontinuity between the two adjacent polynomial pieces. This means that if a knot ''t''''i'' appears more than ''n'' + 1 times in an extended knot vector, all instances of it in excess of the (''n'' + 1)th can be removed without changing the character of the spline, since all multiplicities ''n'' + 1, ''n'' + 2, ''n'' + 3, etc. have the same meaning. It is commonly assumed that any knot vector defining any type of spline has been culled in this fashion. The classical spline type of degree ''n'' used in numerical analysis has continuity :S(t) \in \mathrm^ ,b\, which means that every two adjacent polynomial pieces meet in their value and first ''n'' - 1 derivatives at each knot. The mathematical spline that most closely models the
flat spline A spline consists of a long strip fixed in position at a number of points whose tension creates a smooth curve passing through those points, for the purpose of transferring that curve to another material. Before computers were used for creating ...
is a cubic (''n'' = 3), twice continuously differentiable (''C''2), natural spline, which is a spline of this classical type with additional conditions imposed at endpoints ''a'' and ''b''. Another type of spline that is much used in graphics, for example in drawing programs such as
Adobe Illustrator Adobe Illustrator is a vector graphics editor and design program developed and marketed by Adobe Inc. Originally designed for the Apple Macintosh, development of Adobe Illustrator began in 1985. Along with Creative Cloud (Adobe's shift to month ...
from
Adobe Systems Adobe Inc. ( ), originally called Adobe Systems Incorporated, is an American multinational computer software company incorporated in Delaware and headquartered in San Jose, California. It has historically specialized in software for the cre ...
, has pieces that are cubic but has continuity only at most :S(t) \in \mathrm^ ,b This spline type is also used in
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Do ...
as well as in the definition of some computer typographic fonts. Many computer-aided design systems that are designed for high-end graphics and animation use extended knot vectors, for example
Autodesk Maya Autodesk Maya, commonly shortened to just Maya ( ), is a 3D computer graphics application that runs on Windows, macOS and Linux, originally developed by Alias and currently owned and developed by Autodesk. It is used to create assets for interact ...
. Computer-aided design systems often use an extended concept of a spline known as a
Nonuniform rational B-spline Non-uniform rational basis spline (NURBS) is a mathematical model using basis splines (B-splines) that is commonly used in computer graphics for representing curves and surfaces. It offers great flexibility and precision for handling both analyt ...
(NURBS). If sampled data from a function or a physical object is available,
spline interpolation In the mathematical field of numerical analysis, spline interpolation is a form of interpolation where the interpolant is a special type of piecewise polynomial called a spline. That is, instead of fitting a single, high-degree polynomial to all ...
is an approach to creating a spline that approximates that data.


General Expression For a ''C''2 Interpolating Cubic Spline

The general expression for the ''i''th ''C''2 interpolating cubic spline at a point ''x'' with the natural condition can be found using the formula :S_i(x)= \frac +\frac+\left \frac-\frac\rightx-t_)+\left \frac-\frac\rightt_i-x) where * z_i = f^(t_i) are the values of the second derivative at the ''i''th knot. * h_i^ = t_i-t_ * f(t_i^) are the values of the function at the ''i''th knot.


Representations and Names

For a given interval 'a'',''b''and a given extended knot vector on that interval, the splines of degree ''n'' form a
vector space In mathematics and physics, a vector space (also called a linear space) is a set whose elements, often called '' vectors'', may be added together and multiplied ("scaled") by numbers called ''scalars''. Scalars are often real numbers, but can ...
. Briefly this means that adding any two splines of a given type produces spline of that given type, and multiplying a spline of a given type by any constant produces a spline of that given type. The
dimension In physics and mathematics, the dimension of a mathematical space (or object) is informally defined as the minimum number of coordinates needed to specify any point within it. Thus, a line has a dimension of one (1D) because only one coord ...
of the space containing all splines of a certain type can be counted from the extended knot vector: : a = t_0 < \underbrace_ < \cdots < \underbrace_ < t_ = b : j_i \le n+1 ~,~~ i=1,\ldots,k-2. The dimension is equal to the sum of the degree plus the multiplicities :d = n + \sum_^ j_i. If a type of spline has additional linear conditions imposed upon it, then the resulting spline will lie in a subspace. The space of all natural cubic splines, for instance, is a subspace of the space of all cubic ''C''2 splines. The literature of splines is replete with names for special types of splines. These names have been associated with: * The choices made for representing the spline, for example: ** using basis functions for the entire spline (giving us the name
B-spline In the mathematical subfield of numerical analysis, a B-spline or basis spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. Any spline function of given degree can be expresse ...
s) ** using
Bernstein polynomial In the mathematical field of numerical analysis, a Bernstein polynomial is a polynomial that is a linear combination of Bernstein basis polynomials. The idea is named after Sergei Natanovich Bernstein. A numerically stable way to evaluate pol ...
s as employed by Pierre Bézier to represent each polynomial piece (giving us the name Bézier splines) * The choices made in forming the extended knot vector, for example: ** using single knots for ''C''''n''-1 continuity and spacing these knots evenly on 'a'',''b''(giving us uniform splines) ** using knots with no restriction on spacing (giving us nonuniform splines) * Any special conditions imposed on the spline, for example: ** enforcing zero second derivatives at ''a'' and ''b'' (giving us natural splines) ** requiring that given data values be on the spline (giving us interpolating splines) Often a special name was chosen for a type of spline satisfying two or more of the main items above. For example, the
Hermite spline In the mathematical subfield of numerical analysis, a Hermite spline is a spline curve where each polynomial of the spline is in Hermite form. See also * Cubic Hermite spline *Hermite polynomials *Hermite interpolation In numerical analysis, Her ...
is a spline that is expressed using Hermite polynomials to represent each of the individual polynomial pieces. These are most often used with ''n'' = 3; that is, as
Cubic Hermite spline In numerical analysis, a cubic Hermite spline or cubic Hermite interpolator is a spline where each piece is a third-degree polynomial specified in Hermite form, that is, by its values and first derivatives at the end points of the correspondi ...
s. In this degree they may additionally be chosen to be only tangent-continuous (''C''1); which implies that all interior knots are double. Several methods have been invented to fit such splines to given data points; that is, to make them into interpolating splines, and to do so by estimating plausible tangent values where each two polynomial pieces meet (giving us Cardinal splines, Catmull-Rom splines, and Kochanek-Bartels splines, depending on the method used). For each of the representations, some means of evaluation must be found so that values of the spline can be produced on demand. For those representations that express each individual polynomial piece ''P''''i''(''t'') in terms of some basis for the degree ''n'' polynomials, this is conceptually straightforward: * For a given value of the argument ''t'', find the interval in which it lies t \in _i,t_/math> * Look up the polynomial basis chosen for that interval P_0, \ldots, P_ * Find the value of each basis polynomial at ''t'': P_0(t), \ldots, P_(t) * Look up the coefficients of the linear combination of those basis polynomials that give the spline on that interval ''c''0, ..., ''c''''k''-2 * Add up that linear combination of basis polynomial values to get the value of the spline at ''t'': :\sum_^{k-2} c_j P_j(t). However, the evaluation and summation steps are often combined in clever ways. For example, Bernstein polynomials are a basis for polynomials that can be evaluated in linear combinations efficiently using special recurrence relations. This is the essence of
De Casteljau's algorithm In the mathematical field of numerical analysis, De Casteljau's algorithm is a recursive method to evaluate polynomials in Bernstein form or Bézier curves, named after its inventor Paul de Casteljau. De Casteljau's algorithm can also be used to s ...
, which features in
Bézier curve A Bézier curve ( ) is a parametric curve used in computer graphics and related fields. A set of discrete "control points" defines a smooth, continuous curve by means of a formula. Usually the curve is intended to approximate a real-world shape ...
s and Bézier splines). For a representation that defines a spline as a linear combination of basis splines, however, something more sophisticated is needed. The
de Boor algorithm In the mathematical subfield of numerical analysis de Boor's algorithmC. de Boor 971 "Subroutine package for calculating with B-splines", Techn.Rep. LA-4728-MS, Los Alamos Sci.Lab, Los Alamos NM; p. 109, 121. is a polynomial-time and numerically st ...
is an efficient method for evaluating
B-spline In the mathematical subfield of numerical analysis, a B-spline or basis spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. Any spline function of given degree can be expresse ...
s.


History

Before computers were used, numerical calculations were done by hand. Although piecewise-defined functions like the
sign function In mathematics, the sign function or signum function (from '' signum'', Latin for "sign") is an odd mathematical function that extracts the sign of a real number. In mathematical expressions the sign function is often represented as . To avo ...
or
step function In mathematics, a function on the real numbers is called a step function if it can be written as a finite linear combination of indicator functions of intervals. Informally speaking, a step function is a piecewise constant function having onl ...
were used, polynomials were generally preferred because they were easier to work with. Through the advent of computers splines have gained importance. They were first used as a replacement for polynomials in interpolation, then as a tool to construct smooth and flexible shapes in computer graphics. It is commonly accepted that the first mathematical reference to splines is the 1946 paper by
Schoenberg Arnold Schoenberg or Schönberg (, ; ; 13 September 187413 July 1951) was an Austrian-American composer, music theorist, teacher, writer, and painter. He is widely considered one of the most influential composers of the 20th century. He was as ...
, which is probably the first place that the word "spline" is used in connection with smooth, piecewise polynomial approximation. However, the ideas have their roots in the aircraft and shipbuilding industries. In the foreword to (Bartels et al., 1987), Robin Forrest describes "
lofting Lofting is a drafting technique to generate curved lines. It is used in plans for streamlined objects such as aircraft and boats. The lines may be drawn on wood and the wood then cut for advanced woodworking. The technique can be as simple as bend ...
", a technique used in the British aircraft industry during
World War II World War II or the Second World War, often abbreviated as WWII or WW2, was a world war that lasted from 1939 to 1945. It involved the World War II by country, vast majority of the world's countries—including all of the great power ...
to construct templates for airplanes by passing thin wooden strips (called " splines") through points laid out on the floor of a large design loft, a technique borrowed from ship-hull design. For years the practice of ship design had employed models to design in the small. The successful design was then plotted on graph paper and the key points of the plot were re-plotted on larger graph paper to full size. The thin wooden strips provided an interpolation of the key points into smooth curves. The strips would be held in place at discrete points (called "ducks" by Forrest; Schoenberg used "dogs" or "rats") and between these points would assume shapes of minimum strain energy. According to Forrest, one possible impetus for a mathematical model for this process was the potential loss of the critical design components for an entire aircraft should the loft be hit by an enemy bomb. This gave rise to "conic lofting", which used conic sections to model the position of the curve between the ducks. Conic lofting was replaced by what we would call splines in the early 1960s based on work by J. C. Ferguson at
Boeing The Boeing Company () is an American multinational corporation that designs, manufactures, and sells airplanes, rotorcraft, rockets, satellites, telecommunications equipment, and missiles worldwide. The company also provides leasing and ...
and (somewhat later) by M.A. Sabin at
British Aircraft Corporation The British Aircraft Corporation (BAC) was a British aircraft manufacturer formed from the government-pressured merger of English Electric Aviation Ltd., Vickers-Armstrongs (Aircraft), the Bristol Aeroplane Company and Hunting Aircraft in 19 ...
. The word "spline" was originally an
East Anglian East Anglia is an area in the East of England, often defined as including the counties of Norfolk, Suffolk and Cambridgeshire. The name derives from the Anglo-Saxon kingdom of the East Angles, a people whose name originated in Anglia, in wh ...
dialect word. The use of splines for modeling automobile bodies seems to have several independent beginnings. Credit is claimed on behalf of de Casteljau at
Citroën Citroën () is a French automobile brand. The "Automobiles Citroën" manufacturing company was founded in March 1919 by André Citroën. Citroën is owned by Stellantis since 2021 and previously was part of the PSA Group after Peugeot acquired 8 ...
,
Pierre Bézier Pierre Étienne Bézier (1 September 1910 – 25 November 1999; ) was a French engineer and one of the founders of the fields of solid, geometric and physical modelling as well as in the field of representing curves, especially in computer-ai ...
at
Renault Groupe Renault ( , , , also known as the Renault Group in English; legally Renault S.A.) is a French multinational automobile manufacturer established in 1899. The company produces a range of cars and vans, and in the past has manufactured ...
, and Birkhoff, Garabedian, and de Boor at
General Motors The General Motors Company (GM) is an American Multinational corporation, multinational Automotive industry, automotive manufacturing company headquartered in Detroit, Michigan, United States. It is the largest automaker in the United States and ...
(see Birkhoff and de Boor, 1965), all for work occurring in the very early 1960s or late 1950s. At least one of de Casteljau's papers was published, but not widely, in 1959. De Boor's work at
General Motors The General Motors Company (GM) is an American Multinational corporation, multinational Automotive industry, automotive manufacturing company headquartered in Detroit, Michigan, United States. It is the largest automaker in the United States and ...
resulted in a number of papers being published in the early 1960s, including some of the fundamental work on
B-spline In the mathematical subfield of numerical analysis, a B-spline or basis spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. Any spline function of given degree can be expresse ...
s. Work was also being done at Pratt & Whitney Aircraft, where two of the authors of (Ahlberg et al., 1967) — the first book-length treatment of splines — were employed, and the David Taylor Model Basin, by Feodor Theilheimer. The work at
General Motors The General Motors Company (GM) is an American Multinational corporation, multinational Automotive industry, automotive manufacturing company headquartered in Detroit, Michigan, United States. It is the largest automaker in the United States and ...
is detailed nicely in (Birkhoff, 1990) and (Young, 1997). Davis (1997) summarizes some of this material.


References

* Ferguson, James C, ''Multi-variable curve interpolation,'' J. ACM, vol. 11, no. 2, pp. 221-228, Apr. 1964. * Ahlberg, Nielson, and Walsh, ''The Theory of Splines and Their Applications,'' 1967. * Birkhoff, Fluid dynamics, reactor computations, and surface representation, in: Steve Nash (ed.), ''A History of Scientific Computation'', 1990. * Bartels, Beatty, and Barsky, ''An Introduction to Splines for Use in Computer Graphics and Geometric Modeling,'' 1987. * Birkhoff and de Boor, Piecewise polynomial interpolation and approximation, in: H. L. Garabedian (ed.), ''Proc. General Motors Symposium of 1964,'' pp. 164–190. Elsevier, New York and Amsterdam, 1965. * Davis
B-splines and Geometric design
''SIAM News,'' vol. 29, no. 5, 1997. * Epperson

''NA Digest,'' vol. 98, no. 26, 1998. * Stoer & Bulirsch, Introduction to Numerical Analysis.
Springer-Verlag Springer Science+Business Media, commonly known as Springer, is a German multinational publishing company of books, e-books and peer-reviewed journals in science, humanities, technical and medical (STM) publishing. Originally founded in 1842 ...
. p. 93-106. ISBN 0387904204 * Schoenberg, Contributions to the problem of approximation of equidistant data by analytic functions, ''Quart. Appl. Math.,'' vol. 4, pp. 45–99 and 112–141, 1946. * Young, Garrett Birkhoff and applied mathematics, ''Notices of the AMS,'' vol. 44, no. 11, pp. 1446–1449, 1997. * Chapra, Canale, "Numerical Methods for Engineers" 5th edition.


External links

Theory
An Interactive Introduction to Splines
ibiblio.org Excel Function
XLL Excel Addin Function Implementation of cubic spline
Online utilities



Interactive simulation of various cubic splines
Symmetrical Spline Curves
an animation by
Theodore Gray Theodore W. "Theo" Gray is a co-founder of Wolfram Research, science author, and co-founder of app developer Touch Press. Education Theodore Gray was educated at the University of Illinois Laboratory High School. He would later graduate w ...
,
The Wolfram Demonstrations Project The Wolfram Demonstrations Project is an organized, open-source collection of small (or medium-size) interactive programs called Demonstrations, which are meant to visually and interactively represent ideas from a range of fields. It is hos ...
, 2007. Computer Code
Notes, PPT, Mathcad, Maple, Mathematica, Matlab
''Holistic Numerical Methods Institute''
various routines
NTCC
Sisl: Opensource C-library for NURBS
SINTEF
VBA Spline Interpolation
vbnumericalmethods.com Interpolation