Use Lagrange interpolating polynomial method and cubic spline interpolation to evaluate the function f(x) at 100 equally spaced points in the interval [0,5].
Show older comments
X1 = [0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5];
Y1 = [0 0.247466462 0.881373587 1.550157957 2.094712547 2.532068064 2.893443986 3.200334942 3.466711038 3.70191108 3.912422766];
xx = linspace(0,5,100);
yy = lagrange_self(X1,Y1,xx);
s = spline(X1,Y1,xx);
plot(X1,Y1,'o',xx,yy,'.',xx,s,'*')
legend('ORIGINAL','LAGRANGE-CUBIC','CUBIC-SPLINE')
Error_lagrange = sum(((yy-7*xx).^2).^0.5)
Error_spline = sum(((s-7*xx).^2).^0.5)
function v = lagrange_self(x,y,u)
n = 4;
v = zeros(size(u));
for k = 1:n
w = ones(size(u));
for j = [1:k-1 k+1:n]
w = (u-x(j))./(x(k)-x(j)).*w;
end
v = v+w*y(k)
end
end
1 Comment
Kutlu Yigitturk
on 25 Dec 2020
Answers (0)
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!