function [error_1, error_2] = Polynominal_Interopolation(f, a, b, n)
syms x;
f(x) = f;
x0 = a;
h = (b-a) / n; %段间距离
for i = 1 : (n+1)
X(i) = x0 + (i-1)*h;
Y(i) = f(X(i));
end
% 线性插值函数
for i = 1 : n
P1(i) = Y(i)*(x-X(i+1))/(X(i)-X(i+1)) + Y(i+1)*(x-X(i))/(X(i+1)-X(i));
end
sum_1 = 0;
for i = 1 : n
sum_1 = sum_1 + int((P1(i)-f(x))^2, X(i), X(i+1));
end
error_1 = double(sum_1);
% for i = 1 : n
% ezplot(P1(i), [X(i), X(i+1)]);
% hold on;
% end
% hold on
% plot(X, Y, 'r.');
% ezplot(P1(1), [X(1), X(1+1)]);
% hold on;
% ezplot(P1(2), [X(2), X(2+1)]);
%分段抛物插值
for i = 1 : 2 : n
P2(i) = Y(i)*(x-X(i+1))*(x-X(i+2))/((X(i)-X(i+1))*(X(i)-X(i+2))) + Y(i+1)*(x-X(i))*(x-X(i+2))/((X(i+1)-X(i))*(X(i+1)-X(i+2))) + Y(i+2)*(x-X(i))*(x-X(i+1))/((X(i+2)-X(i))*(X(i+2)-X(i+1)));
end
sum_2 = 0;
for i = 1 : 2 : n
sum_2 = sum_2 + int((P2(i)-f(x))^2, X(i), X(i+2));
end
error_2 = double(sum_2);
% ezplot(P2(i), [X(i), X(i+1)]);
% hold on;
% plot(X, Y, 'r.');