Impact-Site-Verification: dbe48ff9-4514-40fe-8cc0-70131430799e

## Search This Blog

MATLAB Program:

% Hermite interpolation
% Find the approximate value of f(1.5) from
% (x,y,y')= (0,1,1), (1,e,e), (2,e^2,e^2) & (3,e^3,e^3).

n = input('Enter n for (n+1) nodes, n:  ');
x = zeros(1,n+1);
q = zeros(2*n+2,2*n+2);

for i = 0:n
fprintf('Enter x(%d) and f(x(%d)), and f''(x(%d)) on separate lines:  \n', i, i, i);
x(i+1) = input(' ');
q(2*i+1,1) = input(' ');
q(2*i+2,2) = input(' ');
end

z = zeros(1,2*n+2);
for i = 0:n
z(2*i+1) = x(i+1);
z(2*i+2) = x(i+1);
q(2*i+2,1) = q(2*i+1,1);
if i ~= 0
q(2*i+1,2) = (q(2*i+1,1)-q(2*i,1))/(z(2*i+1)-z(2*i));
end
end

k = 2*n+1;
for i = 2:k
for j = 2:i
q(i+1,j+1) = (q(i+1,j)-q(i,j))/(z(i+1)-z(i-j+1));
end
end

fprintf('\nCoefficients of the Hermite polynomial are:\n ');
for i = 0:k
fprintf(' %11.8f \n', q(i+1,i+1));
end

fprintf('Now enter a point at which to evaluate the polynomial, x = \n');
xx = input(' ');
s = q(k+1,k+1)*(xx-z(k));
for i = 2:k
j = k-i+1;
s = (s+q(j+1,j+1))*(xx-z(j));
end
s = s + q(1,1);
fprintf('The interpolated value is:  %11.8f \n\n',s);

OUTPUT:

>> Hermite_interpolation
Enter n for (n+1) nodes, n:  3
Enter x(0) and f(x(0)), and f'(x(0)) on separate lines:
0
1
1
Enter x(1) and f(x(1)), and f'(x(1)) on separate lines:
1
2.7
2.7
Enter x(2) and f(x(2)), and f'(x(2)) on separate lines:
2
7.29
7.29
Enter x(3) and f(x(3)), and f'(x(3)) on separate lines:
3
19.68
19.68

Coefficients of the Hermite polynomial are:
1.00000000
1.00000000
0.70000000
0.30000000
0.07250000
0.05500000
-0.01694444
0.02185185
Now enter a point at which to evaluate the polynomial, x =
1.5
The interpolated value is:   4.43082031

>>