Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Технология интерполяции функций в среде MatLab



Пример 6.3.6-5. Найти многочлен Лагранжа степени n, такой, что значения функции и многочлена в точках таблицы совпадают.

По таблице построим интерполяционный многочлен:

 

X -1
y(x)

 

= .

 

Пример 6.3.6-5
% Построить интерполяционный многочлен Лагранжа % Введём табличную функцию x = [-1 0 1 2]; y = [4 2 0 1]; % Построим интерполяционный многочлен (аппроксимация третьей степени) p = polyfit(x, y, 4); % Коэффициенты интерполяции \sum_{i=0}^n p(i) x^i p
  1.2500 -2.0000 -1.2500 2.0000

Пример 6.3.6-6.. Использование остаточного члена интерполяции.

Пусть требуется составить таблицу функции y=lnx на отрезке [1;10]. Какой величины должен быть шаг h, чтобы при линейной интерполяции значение функции восстанавливалось с погрешностью не меньшей ?

Запишем остаточный член интерполяции при линейной интерполяции

Так как , то Тогда . Следовательно,

 

Пример 6.3.6-6
% Интерполяция функции Рунге % Введём функцию Рунге f = inline('1./(1+25*x.^2)'); % Вычислим таблицу значений x = linspace(-1, 1, 10); y = f(x); % Проинтерполируем функцию Рунге многочленами Лагранжа p = polyfit(x, y, 10); xx = linspace(-1, 1, 100); yy = polyval(p, xx); axes('NextPlot', 'Add'); % Покажем, что глобальная аппроксимация плохо работает для функции Рунге plot(x, y); plot(xx, yy, 'Color', 'r');
Пример 6.3.6-6
% С увеличением узлов сетки, ситуация только ухудщается % Вычислим таблицу значений. 20 узлов сетки x = linspace(-1, 1, 20); y = f(x); % Проинтерполируем функцию Рунге многочленами Лагранжа p = polyfit(x, y, 20); xx = linspace(-1, 1, 100); yy = polyval(p, xx); figure axes('NextPlot', 'Add'); % Покажем, что глобальная аппроксимация плохо работает для функции Рунге plot(x, y); plot(xx, yy, 'Color', 'r');

 

Пример 6.3.6-6
% Кусочно-линейная интерполяция функции Рунге % Введём функцию Рунге f = inline('1./(1+25*x.^2)'); % Вычислим таблицу значений x = linspace(-1, 1, 10); y = f(x); % Начертим график кусочно-линейной аппроксимации plot(x, y);
Пример 6.3.6-6
% Построить интерполяцию сплайнами функции Рунге % Введём функцию Рунге f = inline('1./(1+25*x.^2)'); % Вычислим таблицу значений x = linspace(-1, 1, 10); y = f(x); % Вычислим сплайн-интерполяцию xx = linspace(-1, 1, 100); yy = spline(x, y, xx); % Начертим графики axes('NextPlot', 'Add'); plot(x, y, 'LineWidth', 2); % Красным на графике - аппроксимация, жирным - исходная функция. plot(xx, yy, 'Color', 'r');

 

 


6.3.7. Тестовые задания по теме
«Интерполяция функций»

1. Задача замены таблично заданной функции y = f(x) другой функцией g(x), такой, что g(xi) = f(xi) (i = 0, 1, 2, … n),это

1)задача интерполяции

2)задача аппроксимации

3)решение уравнения

4)задача оптимизации

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.