Polynomial cardinal functionsΒΆ
In Poor conditioning in polynomial interpolation and Piecewise polynomial interpolation we saw a big difference between polynomial interpolation and piecewise polynomial interpolation of some arbitrarily chosen data. The same effects can be seen clearly in the cardinal functions.
using FundamentalsNumericalComputation
n = 18
t = range(-1,stop=1,length=n+1)
y = [zeros(9);1;zeros(n-9)]; # data for 10th cardinal function
scatter(t,y,label="data")
S = FNC.spinterp(t,y)
plot!(S,-1,1,label="spline",
xlabel="x", ylabel="p(x)", title="Piecewise cubic cardinal function")
The piecewise cubic cardinal function is nowhere greater than one in absolute value. This happens to be true for all the cardinal functions, ensuring a good condition number for the interpolation. But the story for global polynomials is very different.
scatter(t,y,label="data")
p = fit(t,y,n)
x = LinRange(-1,1,1000) # force a lot of points
plot!(x,p.(x),label="polynomial",
xlabel="x", ylabel="p(x)", title="Polynomial cardinal function")
From the figure we can see that the condition number for polynomial interpolation on these nodes is at least 500.