Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


На основании первых m точек провести экстраполяцию (предсказание) значений n точек.



MathCad имеется три сплайн-функции:

· cspline( )

· pspline( )

· lspline( )

Эти функции возвращают вектор коэффициентов вторых производных, который мы будем называть S. Этот вектор обычно используется в функции interp( ), описанной ниже. Аргументы должны быть вещественными векторами одинаковой длины. Значения вектора должны быть расположены в порядке возрастания.

Эти три функции отличаются только граничными условиями:

· функция lspline( ) генерирует кривую сплайна, которая приближается к прямой линии в граничных точках;

· функция pspline( ) генерирует кривую сплайна, которая приближается к параболе в граничных точках.

· функция cspline( ) генерирует кривую сплайна, которая может быть кубическим полиномом в граничных точках.

· interpвозвращает интерполируемое значение, соответствующее аргументу .

Вектор вычисляется на основе векторов данных и одной из функций pspline( ), lspline( ) илиcspline( ).

 

Пример 6.3.6-4. Пусть значения функции, полученные в ходе эксперимента, представлены в виде таблицы:

 

X 1.2 1.4 1.6 1.8 2.0
y(x) -0.085 -0.462 0.128 3.546 2.654

Применить кубическую сплайн-интерполяцию, при которой экспериментальные точки соединяются отрезками кубических полиномов.

Для этого одновременно используются две функции: interp(s, x, y, t ) и cspline(x, y), где x – вектор значений аргументов, y – вектор значений функции, s – вектор вторых производных, создаваемый функцией cspline, t – значение аргумента, при котором вычисляется функция.

 

 

 

 

Технология интерполяции функций в среде 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) задача оптимизации

 

Узлы интерполяции – это

1) значения функции, заданной таблично

2) значения xi (i = 0, 1, 2, … n)

3) значения интерполяционного многочлена в точках xi (i = 0, 1, 2, … n)

4) в списке нет правильного ответа

 

Шаг интерполяции – это

1) шаг интегрирования

2) разность между соседними значениями функции

3) расстояние между узлами интерполяции

4) в списке нет правильного ответа

 

4. Основное условие интерполяции это

1) совпадение значений интерполируемой и интерполирующих функций во всех узлах интерполяции с заданной степенью точности

2) значения интерполируемой и интерполирующих функций в узлах интерполяции не должны совпадать

3) в списке нет правильного ответа

4) полное совпадение значений интерполируемой и интерполирующих функций во всех узлах интерполяции

 


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 596; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь