Imp
Imp
MAT 460/560
Fall Semester 2009-10
Homework Assignment 8 Solution
Section 3.2
1. Write a MATLAB program that uses Newton’s interpolatory divided-difference formula to
construct interpolating polynomials of degree one, two, and three for the following data.
Approximate the specified value using each of the polynomials. Hint: the Lecture 9 Notes
will be helpful.
(a) 𝑓 (8.4) if 𝑓 (8.1) = 16.94410, 𝑓 (8.3) = 17.56492, 𝑓 (8.6) = 18.50515, 𝑓 (8.7) = 18.82091
Solution The following MATLAB function computes the coefficients of the Newton form
of all three interpolating polynomials 𝑝1 (𝑥), 𝑝2 (𝑥) and 𝑝3 (𝑥) by computing the necessary
divided differences, and then evaluates the polynomials at 𝑥 = 8.4.
% this function computes the interpolating polynomials
% for the given data, x and y, using Newton’s interpolatory
% divided-difference formula. The polynomials of degree
% 1, 2, ..., n are computed, where n is one less than the
% number of data points. The polynomials are then evaluated
% at x0.
function hw2prob321(x,y,x0)
% n is the maximum degree possible with this data
n=length(y)-1;
% initialize divided-difference table
d=y;
for i=1:n,
% compute divided differences, overwriting those
% we don’t need
for j=n+1:-1:i+1,
d(j)=(d(j)-d(j-1))/(x(j)-x(j-i));
end
% use nested multiplication to evaluate the
% polynomial at x0
y0=d(i+1);
for j=i:-1:1,
y0=d(j)+(x0-x(j))*y0;
end
1
% display coefficients of Newton form of interpolating
% polynomial, and the value at x0
disp(sprintf(’Degree %d:’,i))
Coefficients=d(1:i+1)
Value=y0
end
In the following MATLAB session, we use this function with the given data.
>> x=[ 8.1; 8.3; 8.6; 8.7 ];
>> y=[ 16.94410; 17.56492; 18.50515; 18.82091 ];
>> hw2prob321(x,y,8.4)
Degree 1:
Coefficients =
16.9441
3.1041
Value =
17.8753
Degree 2:
Coefficients =
16.9441
3.1041
0.0600
Value =
17.8771
Degree 3:
Coefficients =
16.9441
3.1041
2
0.0600
-0.0021
Value =
17.8771
From the above coefficients, we see that the interpolating polynomials are
Coefficients =
-0.1769
1.9070
Value =
0.3951
Degree 2:
Coefficients =
-0.1769
3
1.9070
0.9592
Value =
0.4527
Degree 3:
Coefficients =
-0.1769
1.9070
0.9592
-1.7857
Value =
0.4420
From the above coefficients, we see that the interpolating polynomials are
9. (a) Approximate 𝑓 (0.05) using the following data and the Newton forward divided-difference
formula:
𝑥 0.0 0.2 0.4 0.6 0.8
𝑓 (𝑥) 1.00000 1.22140 1.49182 1.82212 2.22554
Solution Recall the Newton forward-difference formula,
𝑛 ( )
∑ 𝑠
𝑝𝑛 (𝑥) = 𝑓 [𝑥0 ] + Δ𝑘 𝑓 (𝑥0 ).
𝑘
𝑘=1
4
Since the spacing ℎ is (0.8 − 0.0)/4 = 0.2, we have 𝑠 = (𝑥 − 0.0)/0.2 = 5𝑥. Computing
the forward differences Δ𝑘 𝑓 (𝑥0 ) for 𝑘 = 1, 2, 3, we obtain
It follows that
4 ( )
∑ 5𝑥
𝑝4 (𝑥) = 𝑓 [𝑥0 ] + Δ𝑘 𝑓 (𝑥0 )
𝑘
𝑘=1
1
= 𝑓 (𝑥0 ) + 5𝑥Δ𝑓 (𝑥0 ) + 5𝑥(5𝑥 − 1)Δ2 𝑓 (𝑥0 ) +
2
1 1
5𝑥(5𝑥 − 1)(5𝑥 − 2)Δ3 𝑓 (𝑥0 ) + 5𝑥(5𝑥 − 1)(5𝑥 − 2)(5𝑥 − 3)Δ4 𝑓 (𝑥0 )
6 24
0.04902 0.01086
= 1 + (0.22140)5𝑥 + 5𝑥(5𝑥 − 1) + 5𝑥(5𝑥 − 1)(5𝑥 − 2) +
2 6
0.00238
5𝑥(5𝑥 − 1)(5𝑥 − 2)(5𝑥 − 3)
24
= 1 + 1.107𝑥 + 0.61275𝑥(𝑥 − 0.2) + 0.22625𝑥(𝑥 − 0.2)(𝑥 − 0.4) +
0.061979𝑥(𝑥 − 0.2)(𝑥 − 0.4)(𝑥 − 0.6).
5
Solution Recall the Newton backward-difference formula,
𝑛 ( )
∑
𝑘 −𝑠
𝑝𝑛 (𝑥) = 𝑓 [𝑥𝑛 ] + (−1) ∇𝑘 𝑓 (𝑥𝑛 ).
𝑘
𝑘=1
Since the spacing ℎ is (0.8−0.0)/4 = 0.2, we have 𝑠 = (𝑥−0.8)/0.2 = 5𝑥−4. Computing
the backward differences Δ𝑘 𝑓 (𝑥3 ) for 𝑘 = 1, 2, 3, 4, we obtain
∇𝑓 (𝑥4 ) = 𝑓 (𝑥4 ) − 𝑓 (𝑥3 )
= 𝑓 (0.8) − 𝑓 (0.6)
= 2.22554 − 1.82212
= 0.40342,
2
∇ 𝑓 (𝑥4 ) = 𝑓 (𝑥4 ) − 2𝑓 (𝑥3 ) + 𝑓 (𝑥2 )
= 𝑓 (0.8) − 2𝑓 (0.6) + 𝑓 (0.4)
= 2.22554 − 2(1.82212) + 1.49182
= 0.07312,
3
∇ 𝑓 (𝑥4 ) = 𝑓 (𝑥4 ) − 3𝑓 (𝑥3 ) + 3𝑓 (𝑥2 ) − 𝑓 (𝑥1 )
= 𝑓 (0.8) − 3𝑓 (0.6) + 3𝑓 (0.4) − 𝑓 (0.2)
= 2.22554 − 3(1.82212) + 3(1.49182) − 1.22140
= 0.01324,
4
∇ 𝑓 (𝑥4 ) = 𝑓 (𝑥4 ) − 4𝑓 (𝑥3 ) + 6𝑓 (𝑥2 ) − 4𝑓 (𝑥1 ) + 𝑓 (𝑥0 )
= 𝑓 (0.8) − 4𝑓 (0.6) + 6𝑓 (0.4) − 4𝑓 (0.2) + 𝑓 (0.0)
= 2.22554 − 4(1.82212) + 6(1.49182) − 4(1.22140) + 1.00000
= 0.00238.
It follows that
4 ( )
∑
𝑘 4 − 5𝑥
𝑝4 (𝑥) = 𝑓 [𝑥4 ] + (−1) ∇𝑘 𝑓 (𝑥4 )
𝑘
𝑘=1
1
= 𝑓 (𝑥4 ) − (4 − 5𝑥)∇𝑓 (𝑥4 ) + (4 − 5𝑥)(3 − 5𝑥)∇2 𝑓 (𝑥4 ) −
2
1 1
(4 − 5𝑥)(3 − 5𝑥)(2 − 5𝑥)∇3 𝑓 (𝑥4 ) + (4 − 5𝑥)(3 − 5𝑥)(2 − 5𝑥)(1 − 5𝑥)∇4 𝑓 (𝑥4 )
6 24
0.07312
= 2.22554 − (0.40342)(4 − 5𝑥) + (4 − 5𝑥)(3 − 5𝑥) −
2
0.01324 0.00238
(4 − 5𝑥)(3 − 5𝑥)(2 − 5𝑥) + (4 − 5𝑥)(3 − 5𝑥)(2 − 5𝑥)(1 − 5𝑥)
6 24
= 2.22554 + 2.0171(𝑥 − 0.8) + 0.914(𝑥 − 0.8)(𝑥 − 0.6) +
0.27583(𝑥 − 0.8)(𝑥 − 0.6)(𝑥 − 0.4) + 0.061979(𝑥 − 0.8)(𝑥 − 0.6)(𝑥 − 0.4)(𝑥 − 0.2).
6
Evaluting this polynomial at 𝑥 = 0.65 yields 𝑝4 (0.65) = 1.91555.
and
𝑄(𝑥) = −1 + 4(𝑥 + 2) − 3(𝑥 + 2)(𝑥 + 1) + (𝑥 + 2)(𝑥 + 1)𝑥
both interpolate the data
𝑥 −2 −1 0 1 2
𝑓 (𝑥) −1 3 1 −1 3
Solution Substituting each of the given 𝑥-values into both 𝑃 (𝑥) and 𝑄(𝑥), we obtain
the corresponding values of 𝑓 (𝑥).
(b) Why does part (a) not violate the uniqueness property of interpolating polynomials?
Solution 𝑃 (𝑥) and 𝑄(𝑥) are the same polynomial, but they are written in the Newton
form using different centers.
19. Given
7
𝑓 (𝑥2 )−𝑓 (𝑥1 ) 𝑓 (𝑥1 )−𝑓 (𝑥0 )−𝑓 [𝑥0 ,𝑥1 ](𝑥2 −𝑥0 )
(𝑥2 −𝑥1 ) + (𝑥2 −𝑥1 )
=
(𝑥2 − 𝑥0 )
𝑓 [𝑥0 ,𝑥1 ](𝑥1 −𝑥0 )−𝑓 [𝑥0 ,𝑥1 ](𝑥2 −𝑥0 )
𝑓 [𝑥1 , 𝑥2 ] + (𝑥2 −𝑥1 )
=
(𝑥2 − 𝑥0 )
𝑓 [𝑥0 ,𝑥1 ](𝑥1 −𝑥2 )
𝑓 [𝑥1 , 𝑥2 ] + (𝑥2 −𝑥1 )
=
(𝑥2 − 𝑥0 )
𝑓 [𝑥1 , 𝑥2 ] − 𝑓 [𝑥0 , 𝑥1 ]
=
(𝑥2 − 𝑥0 )
= 𝑓 [𝑥0 , 𝑥1 , 𝑥2 ].