ЛАБОРАТОРНАЯ РАБОТА 3. ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ
В лабораторной работе для вычисления интерполяционного полинома Ньютона используется функция, определенная в файле newt.m. function z = newt(x,f,t), где x, f – векторы одинаковой длины, содержащие соответственно абсциссы и ординаты узлов интерполяции; t - вектор точек, в которых вычисляются значения полинома, а результат z - массив значений полинома в точках t.
function yhat = newt(x,y,xhat)
n = length(y); if length(x)~=n, error('x and y are not compatible'); end
% --- Construct polynomial coefficients from diagonal of div.-diff. table
c = y(:); % First column is zeroth-order difference, f[x_i] = y_i
for j=2:n
for i=n:-1:j % Work backward to keep from overwriting unused data
c(i) = (c(i)-c(i-1))/(x(i)-x(i-j+1));
end
end
% --- Nested evaluation of the polynomial
yhat = c(n);
for i=n-1:-1:1
yhat = yhat.*(xhat-x(i)) + c(i); % Array op allows vector of xhats
end
Задания
-
Построение интерполяционного многочлена.
С помощью функции newt построить интерполяционный многочлен по заданным значениям функции yi в узлах интерполяции xi. Построить график многочлена по 100 точкам. Каков порядок многочлена? Можно ли оценить ошибку такой интерполяции?
-
Ошибка интерполяции по равноотстоящим узлам.
Для заданной преподавателем функции f(x) и отрезка интерполяции [a,b] построить интерполяционные полиномы Ln(x) порядков n=5 и n=8 по равноотстоящим узлам:
xi = a + i(b-a)/n, i = 0,1,…,n.
Построить графики функций ошибки интерполяции Rn(x)= f(x)-Ln(x) для значений аргумента x из [a;b] с шагом h (см. help plot). Для обоих полиномов выпишите в тетрадь: для какого значения аргумента x = t получилась наибольшая ошибка и величину этой ошибки.
Найти теоретические оценки ошибок интерполяции в точке x = t.
-
Ошибка интерполяции по оптимальным узлам.
Аналогично пункту 2 для n=5 и n=8 построить графики ошибок интерполяции и найти наибольшую ошибку, но интерполяционный полином строить по нулям многочлена Чебышева:
, i = 0,1,…,n (n - порядок интерполяционного полинома).
Сравнить значения наибольших ошибок со значениями, полученными в пункте 2.
Варианты
i |
0 |
1 |
2 |
3 |
xi |
0 |
2 |
3 |
5 |
yi |
1 |
3 |
2 |
5 |
-
f(x) = sin(x), a = 0, b = 2, h = /10.
-
f(x) = sqrt(x), a = 100, b = 400, h = 5.
-
f(x) = exp(2x), a = -1, b =1, h = 0.1.
-
f(x) = cos(x), a = 0, b = 2, h = /20.
-
f(x) = log(x), a = 1, b = 3, h = 0.1.