Dear Biomch-Lers:
I have been trying to come up with a final "take-home message" from
the information contained in the responses to Neil Glossop on the use of
cubic spline. Here is where I got to:
The most frequent use of splines in Biomechanics is to smooth
location versus time data. They provide smooth location, velocity and
acceleration versus time values. Cubic and quintic spline are the most
used.
My own experience with cubic spline is with subroutine ICSSCU from
the IMSL package. I used this subroutine regularly about 15-20 years ago,
when I was a graduate student. With quintic spline, my experience is with
Les Jennings' program. It is what I have been using during the past 10-15
years. I made the switch to from cubic to quintic spline after seeing the
terrible 2nd derivative data produced by the ICSSCU cubic spline program in
an example of a known motion (vertical path of a dropped ball) --experiment
made by Kit Vaughan.
The ICSSCU version of cubic spline forces the 2nd derivative to be
zero at the endpoints, and that is the reason why the entire acceleration
curve gets messed up. Vaughan did not report his velocity-time and
location-time curves, but based on his acceleration-time curve, I am sure
that the velocity-time curve cannot have been very good. (The vertical
velocity-time graph of a dropping ball is supposed to be a straight line
with a constant negative slope of -9.8 m/s2. ICSSCU forces that graph to be
flat --zero acceleration-- at the beginning and at the end of the data set.
Vaughan's acceleration-time curve shows that with ICSSCU the slope of the
velocity-time curve had already shallowed to -5 m/s2 about 5 points prior to
the last point, so it is clear that the velocity-time pattern must have been
visibly affected in that part of the curve.) It is possible that the
**location**-time curve may have been acceptable: A zero 2nd derivative
implies a constant velocity, and therefore an (instantaneously) straight
location-time graph at the beginning and at the end of the data set; this
may allow the location-time curve pattern to look quite acceptable. But the
velocity pattern is probably not good, and the acceleration pattern is
certainly bad.
So the ICSSCU version of cubic spline may handle OK the location
data, but is very questionable for velocities, and completely unacceptable
for accelerations (especially near the end of the data set). The question
is, are there other cubic spline methods that can take care of this endpoint
problem? Several people have sent responses to Neil Glossop saying that
indeed there are ways to handle the endpoints with cubic spline other than
to assume that the second derivative is zero at the beginning and at the end
of the data set (as ICSSCU does).
I confess that some of the explanations given in the responses to
Neil Glossop were way over my head, and some were too "telegraphic" for me
to fully understand, and I am still left with the question of whether there
exists a good way to handle the endpoint question with cubic spline. It is
clear that forcing the second derivative to be zero (as ICSSCU does) is
obviously no good. But some of the solutions proposed in the responses to
Neil Glossop are also no good from a practical standpoint: In general, in
Biomechanics we can't go about setting the second derivative (nor any other
derivative) to a known value, because those values are generally unknown
(except in some isolated cases such as Kit Vaughn's dropping ball
experiment). Maybe if I plow through the references given by some of the
respondents, I would find a perfect answer to my question, but just in case
somebody out there has the "in a nutshell" answer, here is my question:
"Is there any version of cubic spline that will take location-versus-time
data, and produce good smoothed zeroeth, first and second derivative data,
including the endpoints, if we don't know "a priori" the value that any
derivative is supposed to have at the endpoints?"
This is the case that we are normally faced with in Biomechanics, and
therefore the one that we need to deal with! As I said above, maybe one or
more of the respondents to Neil Glossop has answered the question perfectly
already, but (dur!) it escaped me.
(One version of quintic spline that I think I may have "kind-of"
understood, and which may work, is a version of cubic spline that makes the
second derivative be constant in the interval between the last two
endpoints. If I understood correctly, in order to achieve this a **second**
degree polynomial --a parabola-- is fitted to the last interval --and to the
first one also. It seems that it does not force the second derivative to
any pre-specified value; it just makes it have the same (free) value in the
last two points. If this does not imply a biasing of the data, I think it
may be acceptable in most cases, although forcing the second derivative to
stay constant in the interval between the last two points makes it less
clean than quintic spline, which simply puts another 5th degree polynomial
in the last interval, like in any other interval.)
Apart from a saving in computer time (which van den Bogert pointed
out), I see little reason to use cubic instead of quintic, since all you
seem to get with cubic are extra problems and complications which may or may
not be solvable. When the original PC first came out, the speed of the
computer was an important factor in deciding what smoothing method should be
used. But with the speed of today's computers, I feel that I'd rather pay
the price of a few extra seconds in computation time rather than having to
deal with all the problems and questions associated with cubic spline.
An interesting point brought up by Glossop and van den Bogert (and a
possible fly in the above ointment) is that high order splines tend to
produce excessive oscillation when interpolated data are sought. I did not
know that. This could be a reason for using cubic instead of quintic in
some situations, but only IF quintic is of high enough order to produce this
problem. I personally have not noticed whether there is a difference
between cubic and quintic in this respect, but I have not gone out to
interpolate data both ways (with cubic and quintic) to check if there are
differences.
***I think that something that is very clear from all these
discussions about cubic spline is that nobody should take a cubic spline
program at face value and use it. It is crucial first to understand how
that particilar version of cubic spline handles the endpoint problem.***
Jesus Dapena
---
Jesus Dapena
Department of Kinesiology
Indiana University
Bloomington, IN 47405, USA
1-812-855-8407 (office phone)
dapena@valeri.hper.indiana.edu (email)
I have been trying to come up with a final "take-home message" from
the information contained in the responses to Neil Glossop on the use of
cubic spline. Here is where I got to:
The most frequent use of splines in Biomechanics is to smooth
location versus time data. They provide smooth location, velocity and
acceleration versus time values. Cubic and quintic spline are the most
used.
My own experience with cubic spline is with subroutine ICSSCU from
the IMSL package. I used this subroutine regularly about 15-20 years ago,
when I was a graduate student. With quintic spline, my experience is with
Les Jennings' program. It is what I have been using during the past 10-15
years. I made the switch to from cubic to quintic spline after seeing the
terrible 2nd derivative data produced by the ICSSCU cubic spline program in
an example of a known motion (vertical path of a dropped ball) --experiment
made by Kit Vaughan.
The ICSSCU version of cubic spline forces the 2nd derivative to be
zero at the endpoints, and that is the reason why the entire acceleration
curve gets messed up. Vaughan did not report his velocity-time and
location-time curves, but based on his acceleration-time curve, I am sure
that the velocity-time curve cannot have been very good. (The vertical
velocity-time graph of a dropping ball is supposed to be a straight line
with a constant negative slope of -9.8 m/s2. ICSSCU forces that graph to be
flat --zero acceleration-- at the beginning and at the end of the data set.
Vaughan's acceleration-time curve shows that with ICSSCU the slope of the
velocity-time curve had already shallowed to -5 m/s2 about 5 points prior to
the last point, so it is clear that the velocity-time pattern must have been
visibly affected in that part of the curve.) It is possible that the
**location**-time curve may have been acceptable: A zero 2nd derivative
implies a constant velocity, and therefore an (instantaneously) straight
location-time graph at the beginning and at the end of the data set; this
may allow the location-time curve pattern to look quite acceptable. But the
velocity pattern is probably not good, and the acceleration pattern is
certainly bad.
So the ICSSCU version of cubic spline may handle OK the location
data, but is very questionable for velocities, and completely unacceptable
for accelerations (especially near the end of the data set). The question
is, are there other cubic spline methods that can take care of this endpoint
problem? Several people have sent responses to Neil Glossop saying that
indeed there are ways to handle the endpoints with cubic spline other than
to assume that the second derivative is zero at the beginning and at the end
of the data set (as ICSSCU does).
I confess that some of the explanations given in the responses to
Neil Glossop were way over my head, and some were too "telegraphic" for me
to fully understand, and I am still left with the question of whether there
exists a good way to handle the endpoint question with cubic spline. It is
clear that forcing the second derivative to be zero (as ICSSCU does) is
obviously no good. But some of the solutions proposed in the responses to
Neil Glossop are also no good from a practical standpoint: In general, in
Biomechanics we can't go about setting the second derivative (nor any other
derivative) to a known value, because those values are generally unknown
(except in some isolated cases such as Kit Vaughn's dropping ball
experiment). Maybe if I plow through the references given by some of the
respondents, I would find a perfect answer to my question, but just in case
somebody out there has the "in a nutshell" answer, here is my question:
"Is there any version of cubic spline that will take location-versus-time
data, and produce good smoothed zeroeth, first and second derivative data,
including the endpoints, if we don't know "a priori" the value that any
derivative is supposed to have at the endpoints?"
This is the case that we are normally faced with in Biomechanics, and
therefore the one that we need to deal with! As I said above, maybe one or
more of the respondents to Neil Glossop has answered the question perfectly
already, but (dur!) it escaped me.
(One version of quintic spline that I think I may have "kind-of"
understood, and which may work, is a version of cubic spline that makes the
second derivative be constant in the interval between the last two
endpoints. If I understood correctly, in order to achieve this a **second**
degree polynomial --a parabola-- is fitted to the last interval --and to the
first one also. It seems that it does not force the second derivative to
any pre-specified value; it just makes it have the same (free) value in the
last two points. If this does not imply a biasing of the data, I think it
may be acceptable in most cases, although forcing the second derivative to
stay constant in the interval between the last two points makes it less
clean than quintic spline, which simply puts another 5th degree polynomial
in the last interval, like in any other interval.)
Apart from a saving in computer time (which van den Bogert pointed
out), I see little reason to use cubic instead of quintic, since all you
seem to get with cubic are extra problems and complications which may or may
not be solvable. When the original PC first came out, the speed of the
computer was an important factor in deciding what smoothing method should be
used. But with the speed of today's computers, I feel that I'd rather pay
the price of a few extra seconds in computation time rather than having to
deal with all the problems and questions associated with cubic spline.
An interesting point brought up by Glossop and van den Bogert (and a
possible fly in the above ointment) is that high order splines tend to
produce excessive oscillation when interpolated data are sought. I did not
know that. This could be a reason for using cubic instead of quintic in
some situations, but only IF quintic is of high enough order to produce this
problem. I personally have not noticed whether there is a difference
between cubic and quintic in this respect, but I have not gone out to
interpolate data both ways (with cubic and quintic) to check if there are
differences.
***I think that something that is very clear from all these
discussions about cubic spline is that nobody should take a cubic spline
program at face value and use it. It is crucial first to understand how
that particilar version of cubic spline handles the endpoint problem.***
Jesus Dapena
---
Jesus Dapena
Department of Kinesiology
Indiana University
Bloomington, IN 47405, USA
1-812-855-8407 (office phone)
dapena@valeri.hper.indiana.edu (email)