% и их погрешностей, методом равномерного разбиения и разбиения по Чебушеву
function main()
n = [2, 6, 14]; %кол-во узлов
x = [-1: 0.01: 1]; % x [-1,1]
for t = 1: 1: 3
subplot(2, 2, t);
y_fun = y_funFn(x);
y_pol_ravn = y_polFn(n(t), 1);
y_pol_cheb = y_polFn(n(t), 2);
%графики функции и полиномов и графики их погрешностей
plot(x, y_fun, '-b', x, y_pol_ravn, '-r', x, y_pol_cheb, '-g', x, y_fun - y_pol_ravn, ':r', x, y_fun - y_pol_cheb, ':g'), grid on;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
polFn.m
%Входные значения: rr_m
% x_razb – массив точек разбиения
% n – степень полинома
%
%Выходные значения: y_pol – массив значений интерполяционного полинома
function y_pol = polFn(rr_m, x_razb, n)
u = 0;
y_pol = zeros(1, 201);
for x = -1: 0.01: 1
u = u + 1;
for t = 1: 1: n + 1
r = 1;
for q = 1: 1: t - 1
r = r * (x - x_razb(q));
end
y_pol(u) = y_pol(u) + rr_m(t) * r;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
razbFn.m
%Входные значения: n – степень полинома
% razb – выбор разбиения
%
%Выходные значения: x_razb – массив точек разбиения
function x_razb = razbFn(n, razb)
xmin = -1;
xmax = 1;
if razb == 1
h = (xmax - xmin)/n;
for i = 1: 1: n + 1
x_razb(i) = xmin + h * (i - 1);
end
end
if razb == 2
for i = 1: 1: n + 1
x_razb(n + 2 - i) = cos(pi*(2*i - 1)/(2*(n + 1)));
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
RRFn.m
%Входные значения: y_fun - массив значений в точках
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.