Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Аппроксимация и интерполяция функций




Пусть имеется набор узловых точек xk (где k=1,2,…,n) и значения функции y(xk) в этих точках, а также некоторая функция f(x,a1, a2, …,am), которая кроме аргумента х зависит еще и от параметров as (где s=1, 2, …m). Задача аппроксимации состоит в том, чтобы подобрать такие значения параметров as, что функция f(x, a1, a2, …am) наилучшим образом описывала бы исходную функцию. Как правило, m<<n, поэтому добиться, чтобы функция f(x, a1, a2, …am) давала точные результаты даже в узловых точках не удастся. Нужен критерий, который оценивает точность аппроксимации таблично заданной функции. Например, в методе наименьших квадратов в качестве такого критерия используется среднеквадратическое отклонение

.

Частным случаем задачи аппроксимации является задача интерполяции функции. В этом случае также имеем набор узловых точек xk (где k=1,2,…,n) и значения функции yk в этих точках. Однако, в соответствии с критерием интерполяции, требуется построить такую функцию f(x), которая в узловых точках x1, x2,…,xn принимала бы значения y1, y2, …,yn, то есть f(xk) = yk для всех k от 1 до n. Чаще всего функцию f(x) ищут в виде полинома, степень которого n-1. Поэтому задача сводится к определению коэффициентов интерполяционного полинома на основании значений функции в базовых точках.

На практике для решения задачи интерполяции (вычисления значений функции в точках, несовпадающих с узлами интерполяции) используются интерполяционные формулы Ньютона и формула Лагранжа [1].

Для выполнения полиномиальной аппроксимации в MatLab используется функция polyfit(). Эта функция предназначена для выполнения аппроксимации методом наименьших квадратов. Функция polyfit(x,y,n) возвращает вектор коэффициентов полинома степени n, который с наименьшей среднеквадратичной погрешностью аппроксимирует функцию, заданную таблично. Результатом является вектор ­строка длиной n+1, содержащий коэффициенты полинома в порядке уменьшения степеней. Аргументами функции являются список узловых точек, список значений интерполируемой функции в этих точках и степень интерполяционного полинома. Как правило, степень полинома много меньше количества узлов (m<<n). В качестве результата возвращается список коэффициентов аппроксимирующего полинома.

Ниже приведены пример линейной и кубической аппроксимации функции, заданной таблицей (рис. 2.2.1-1), и графики аппроксимирующих функций (рис. 2.2.1-2).

 

 

Рис. 2.2.1-1. Пример линейной и кубической аппроксимации функции

 

 

Рис. 2.2.1-2. Графики исходной и аппроксимирующих функций

 

Чтобы результатом выполнения функции Matlab polyfit() был именно интерполяционный полином, необходимо, чтобы степень этого полинома была на единицу меньше количества узловых точек.

Пример 2.2.1-1. Используя в качестве узлов интерполяции
x=-5,-4…5, построить полином, интерполирующий функцию
.

Выполняя команды Matlab в окне Command Window, получим таблицу значений функции и проведем ее интерполяцию с использованием функции Matlab polyfit() (рис. 2.2.1-3). Графики интерполяционных узлов и интерполяционного полинома приведены на рис. 2.2.1-4.Здесь для вычисления значений полинома в точках используется функция polival(p,z), где вектор z покрывает интервал интерполяции и даже выходит за его пределы.

 

Рис. 2.2.1-3. Интерполяция таблично заданной функции

с использованием функции Matlab polyfit()

 

 

Рис. 2.2.1-4. Графики интерполируемой и интерполирующей функций

 

 

При большом количестве базовых точек интерполяция полиномом может оказаться малопродуктивной, поэтому нередко используют интерполяцию сплайнами. Идея сплайн-интерполяции состоит в разбиении диапазона интерполирования на отрезки, в пределах которых используются разные функции одного вида (чаще всего алгебраические многочлены). Эта функция и ее несколько производных на всем диапазоне интерполяции непрерывны. В результате имеем кусочно-гладкую интерполяционную зависимость.

Сплайн-интерполяцию можно реализовать с помощью функции Matlab interp1(). В качестве аргументов функции передают: набор узловых точек аргумента, значения функции в этих точках, список значений точек, для которых вычисляется значения интерполяционной зависимости и, наконец (в апострофах), тип базового полинома (табл. 2.2.1-1).

 

Таблица 2.2.1-1

Имя функции Описание
nearest() Интерполяция полиномами нулевой степени – график имеет ступенчатый вид
linear() Интерполяция полиномами первой степени – базовые точки соединяются отрезками прямой
spline() Интерполяция полиномами третьей степени

 

Рассмотрим пример использования функции Matlab interp1().

x -1      
y(x)        




Поделиться с друзьями:


Дата добавления: 2016-10-30; Мы поможем в написании ваших работ!; просмотров: 1299 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2456 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.