Homework Problems for Chapter 3
(a). Determine whether this function is a linear spline:
x, −1 ≤ x ≤ 0.5,
0.5 + 2(x − 0.5), 0.5 ≤ x ≤ 2,
x + 1.5, 2 ≤ x ≤ 4.
(b). Do there exist a, b, c and d so that the function
S(x) = (
ax3 + x
2 + cx, −1 ≤ x ≤ 0,
bx3 + x
2 + dx, 0 ≤ x ≤ 1,
is a natural cubic spline?
(c). Determine whether f is a cubic spline with knots -1, 0, 1 and 2:
1 + 2(x + 1) + (x + 1)3
, −1 ≤ x ≤ 0,
3 + 5x + 3x
, 0 ≤ x ≤ 1,
11 + (x − 1) + 3(x − 1)2 + (x − 1)3
, 1 ≤ x ≤ 2.
(d). Determine the values of a, b, c such that the following function is a linear spline.
x + 1, x ∈ [−2, −1),
a(x + 1) + bx, x ∈ [−1, 0),
cx + 3(x − 1), x ∈ [0, 1],
4, x ∈ [1, 2].
(e). Determine the values of a, b, c such that the following function is a linear spline.
x + 3, x ∈ [−2, −1),
a(x + 1) + bx, x ∈ [−1, 0),
cx + 2(x − 1), x ∈ [0, 1],
5, x ∈ [1, 2].
Problem 2: Constructing a linear and a cubic spline.
Given the data set:
ti 1.2 1.5 1.6 2.0 2.2
yi 0.4275 1.139 0.8736 −0.9751 −0.1536
a). Let L(x) be the linear spline that interpolates the data. Describe what L(x)
consists of, and what conditions it has to satisfy. Find L(x), and compute the
value for L(1.8).
b). Let C(x) be the natural cubic spline that interpolates the data. Describe what
C(x) consists of, and what conditions it has to satisfy. Find C(x), and compute
the value for C(1.8). The computation here can be time consuming, and you may
use Matlab to solve the linear system.
Problem 3: Linear Spline in Matlab.
Preparation. Read through the rest of “A Practical Introduction to Matlab” by Gockenbach, at the web site
Your task. Write a Matlab function that computes the linear spline interpolation for
a given data set. You might need to take a look at the file cspline_eval.m in Section
3.4 for some hints. Name your Matlab function lspline. This can be defined in the file
lspline.m, which should begin with:
% lspline computes the linear spline
% t: vector, contains the knots
% y: vector, contains the interpolating values at knots
% x: vector, contains points where the lspline function
% should be evaluated and plotted
% ls: vector, contains the values of lspline at points x
Use your Matlab function lspline on the given data set in Problem 2, plot the linear
spline for the interval [1.2, 2.2].
What to hand in: Hand in the Matlab file lspline.m, and your plots.
Problem 4: Natural cubic spline in Matlab
The goal of this problem is to draw mount Everest with the help of natural cubic splines.
We have a rather poor quality photo of the mountain profile, which is given below.
You need to set up a coordinate system, and select a set of knots along the edge of the
mountain, and find the coordinates for all these interpolating points. We are aware that
the mountain profiles are not very clear in that photo, so please use your imagination
when you find these approximate points. You may either print out the mountain picture
and work on it on a piece of paper, or send the image to some software and locate the
coordinates of the interpolating points. Make sure to select at least 20 points. You may
use more points if you see fit.
After you have generated your data set, you need to find a natural cubic spline interpolation. Use the functions cspline and cspline_eval , which are available in Section
3.4. Read these two functions carefully, try to understand them before using them.
Does it look like there is a smaller peak on the right? Does the peak look rather sharp?
How would you deal with this situation, knowing that a single cubic spline function will
generate a “smoothest” possible interpolation?
Figure 1: Natural cubic spline, for Mount Everest.
What you need to hand in: A Matlab script that contains your data set, compute
the spline functions, and draw the mountain. Also the plot of your mount Everest.
These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction
of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice.
Unethical use is strictly forbidden.