
%% по вариантам
clc;
clear all;
% Задание узлов интерполяции
x = -2:0.3:2;
y = 10 .* exp(-x) .* (x.^3 - 2 .* x + 1);
% Задание точек, в которых требуется найти значения интерполяционного полинома
xx = linspace(-2, 2, 100);
% Нахождение значений интерполяционного полинома с использованием функции Lagrange
yy = lagrange(x, y, xx);
% Построение графиков
figure('Color', 'w');
hold on;
% Вывод графика оригинальной функции
fplot(@(x) 10 .* exp(-x) .* (x.^3 - 2 .* x + 1), [-2, 2]); % Используем анонимную функцию для fplot
% Вывод графика полинома
plot(xx, yy, 'r');
% Вывод узлов интерполяции
plot(x, y, 'bo');
% Размещение легенды
legend('Оригинальная функция', 'Интерполяционный полином', 'Узлы интерполяции');
xlabel('x');
ylabel('y');
title('Интерполяция Лагранжа');
%% С помощью функций MATLAB
x1 = -2:0.3:2;
y1 = 10 .* exp(-x1) .* (x1.^3 - 2 .* x1 + 1); % Исправлена ошибка: заменен ':' на ';'
% Определение степени полинома
n = length(x) - 1; % Определяем степень полинома (n-1)
figure(2);
hold on;
% Использование polyfit для нахождения коэффициентов полинома
c = polyfit(x, y, n);
% Нахождение значений полинома в точках x1
y_ML = polyval(c, x1);
% Построение графиков
plot(x1, y_ML, 'g', x1, y1, 'b');
legend('Полином (polyfit)', 'Оригинальная функция');
xlabel('x');
ylabel('y');
title('Сравнение полинома и оригинальной функции');
grid on;
clc;
clear all;
% Задание узлов интерполяции
x = -2:0.3:2;
y = 10 .* exp(-x) .* (x.^3 - 2 .* x + 1);
% Задание точек, в которых требуется найти значения интерполяционного полинома
xx = linspace(-2, 2, 100);
% Нахождение значений интерполяционного полинома с использованием функции Lagrange
yy = lagrange(x, y, xx);
% Построение графиков
figure('Color', 'w');
hold on;
% Вывод графика оригинальной функции
fplot(@(x) 10 .* exp(-x) .* (x.^3 - 2 .* x + 1), [-2, 2]); % Используем анонимную функцию для fplot
% Вывод графика полинома
plot(xx, yy, 'r');
% Вывод узлов интерполяции
plot(x, y, 'bo');
% Размещение легенды
legend('Оригинальная функция', 'Интерполяционный полином', 'Узлы интерполяции');
xlabel('x');
ylabel('y');
title('Интерполяция Лагранжа');
%% С помощью функций MATLAB
x1 = -2:0.3:2;
y1 = 10 .* exp(-x1) .* (x1.^3 - 2 .* x1 + 1); % Исправлена ошибка: заменен ':' на ';'
% Определение степени полинома
n = length(x) - 1; % Определяем степень полинома (n-1)
figure(2);
hold on;
% Использование polyfit для нахождения коэффициентов полинома
c = polyfit(x, y, n);
% Нахождение значений полинома в точках x1
y_ML = polyval(c, x1);
% Построение графиков
plot(x1, y_ML, 'g', x1, y1, 'b');
legend('Полином (polyfit)', 'Оригинальная функция');
xlabel('x');
ylabel('y');
title('Сравнение полинома и оригинальной функции');
grid on;