LAB 8: MARKET WEEKLY REPORTS AND CUBIC SPLINE INTERPOLATION
Mathematics:
Interpolation problems are problems of finding a curve that passes through specified points in the plane. Fitting a curve through points in the plane encounters commonly in analyzing experimental data, in ascertaining the relations among variables and in design work. This project exploits ideas of piecewise cubic spline interpolation for a presentation of market weekly data in the form of a smooth "well-behaved" curve. For the week of February 11-15, 2002, the market indices were registered at the closing bells as follow:
Toronto Stock
Exchange 300:
Day of Week |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Index Value |
7607.40 |
7544.60 |
7561.20 |
7526.40 |
7515.30 |
Nasdaq Index:
Day of Week |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Index Value |
1848.20 |
1836.50 |
1860.20 |
1843.40 |
1805.20 |
With the use of cubic splines, the data can be represented by a smooth curve as seen in the weekend news reports:
|
|
Suppose a set of (n+1) data points is given in the (x,y) plane:
(x1,y1);
(x2,y2); …; (xn,yn); (xn+1,yn+1)
In our case, n = 4. Also the
points are equally spaced in the x-direction, such that the distance between
the x-coordinates (step size) is:
h = x2 -x1
= x3 -x2 = … = xn+1 -xn
Let
y = S(x) denote a smooth interpolating curves that connects the
given data points. The cubic spline interpolant y = S(x) consists
of cubic polynomials y = Sj(x) that connect two
consecutive data points: (xj,yj) and
(xj+1,yj+1):
y = Sj(x) = aj
+ bj (x - xj ) +cj (x – xj)2
+ dj (x – xj)3, xj < x < xj+1
Coefficients
(aj,bj,cj,dj) are
found from the conditions that piecewise cubic spline interpolants y = Sj(x)
form a continuous curve with continuous first and second derivatives at
all points. Both the slopes and the curvatures of the interpolants y = Sj(x)
are matched continuously, so that the resulting interpolating curve y
= S(x) shows up as a smooth curve in viewer's eyes. Eyes of a viewer
cannot distinguish any sudden changes in third and higher derivatives of the
curve y = S(x).
Denote
mj = Sj''(xj) for j =
1,2,…,n,n+1. The coefficients (aj,bj,cj,dj)
of the cubic spline interpolants y = Sj(x) are
found from the values of mj as:
aj = yj
, bj = - h, cj
= , and dj =
The
values of mj are found from a system of (n-1) equations:
mj-1 + 4 mj
+ mj+1 = ( yj-1 – 2 yj + yj+1 ), j = 2,…,n
The
linear system is under-determined, since two values of mj are
still unknown and two more equations have to be added to the system of (n-1)
equations. There are several ways to specify the two additional conditions
required to obtain a unique cubic spline through the points: (i) natural
spline, (ii) parabolic runout spline, and (iii) cubic runout spline.
Objectives:
·
understand
the algorithm for setting cubic spline interpolants with different end-point
conditions
·
exploit
the cubic spline interpolation and achieve the best visualization of the market
weekly reports
The
natural cubic spline interpolation is prescribed by the end-point conditions:
m1 = 0; mn+1 = 0
The
natural spline conditions are equivalent to the conditions that the second
derivative of the cubic spline y = S(x) is zero at the end
points. Thus, the natural spline approaches to the end points x = x1
and x = xn+1 as a straight line. The natural
spline tends to flatten the interpolating curve at the end points, which may be
undesirable:
|
|
The
linear system for values of mj (j = 2,…,n) for natural
spline interpolation is set in the matrix form: A m = b, where
A = , m = , b =
Steps
in writing the MATLAB script:
Exploiting
the MATLAB script:
Compute the values of the cubic spline interpolant
in middle of Wednesday.
Answer: In the middle of Wednesday: TSE 300 = 7551.66; NASDAQ = 1848.57
The
parabolic runout spline interpolation is prescribed by the end-point
conditions:
m1 = m2; mn+1 = mn
The
parabolic runout spline conditions are equivalent to the conditions that the
spline y = S(x) reduces to a parabolic curve on the first and
last intervals. Thus, the parabolic runout spline approaches to the end points x
= x1 and x = xn+1 as a parabolic
curve. The parabolic runout spline is neither flat nor curved at the end
points, i.e. it may be a reasonable compromise for a better visualization of
the interpolating curve:
|
|
The
linear system for values of mj (j = 2,…,n) for
parabolic runout spline interpolation is set in the matrix form: A
m = b, where
A = , m = , b =
Steps
in writing the MATLAB script:
Exploiting
the MATLAB script:
Compute the values of the cubic spline interpolant
in middle of Wednesday.
Answer: In the middle of Wednesday: TSE 300 = 7552.95; NASDAQ = 1849.30
The
cubic runout spline interpolation is prescribed by the end-point conditions:
m1 = 2*m2 -m3; mn+1 = 2*mn -mn-1
The
cubic runout spline conditions are equivalent to the conditions that the spline
y = S(x) reduces to a single cubic curve on the first two and
last two intervals. Thus, the values of m1 and mn+1
are extrapolated from inside conditions that the first two cubic spline
interpolants y = S1(x),y = S2(x) and the
last two cubic spline interpolants y = Sn-1(x),y = Sn(x)
coincide identically. The cubic runout spline produces a curve with pronounced
curvature at the end points, which may be undesirable. The linear system for
values of mj (j = 2,…,n) for cubic runout spline
interpolation is set in the matrix form: A m = b, where
A = , m = , b =
Steps
in writing the MATLAB script:
Exploiting
the MATLAB script: