русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Методические указания


Дата добавления: 2015-07-23; просмотров: 2163; Нарушение авторских прав


Аппроксимация функций заключается в приближенной замене заданной функции f(x) некоторой функцией j (x) так, чтобы отклонение функции j(x) от f(x) в заданной области было наименьшим[2]. Функция j (х) при этом называется аппроксимирующей.

Аппроксимацию называется точечной (дискретной) или непрерывной (интегральной)в зависимости от того, как строится приближение – на дискретном наборе точек или на непрерывном их множестве (отрезке). Примером второго случая является разложение функции в степенной ряд Тейлора.

Одним из видов аппроксимации функций является задача интерполяции. Необходимость ее связана с тем, что для вычисления значений функции, ее производных в произвольных точках и величин интегралов необходимо аналитическое описание изучаемой функции, а оно либо достаточно сложно (случаи спецфункций – гамма-функция, эллиптическая функция и др.) либо вообще отсутствует (функция задана таблично).

Пусть на отрезке [a,b] задан дискретный набор точек , называемых узлами интерполяции, причем среди этих точек нет совпадающих, а также значения некоторой функции f(x) в этих точках:

f(x0) = y0, f(x1) = y1, . . ., f(xn) = yn.

Требуется построить функцию F(х) (интерполяционная функция), принадлежащую определенному классу (например, полиномов, дробно-рациональных или гармонических функций) и принимающую в узлах интерполяции те же значения, что и f(x), т.е. такую, что:

F(x0) = y0, F(x1) = y1, . . ., F(xn) = yn. (5.1)

Геометрически это означает, что нужно найти кривую y = F (х) определенного типа, проходящую через заданную систему точек M(xi, yi) (i = 0, 1, ..., n) (рис. 9). В такой общей постановке задача может иметь бесконечное множество решений или совсем не иметь их. Задача становится однозначной, если вместо произвольной функции F (х) искать полином j (х) степени не выше n интерполяционный полином, удовлетворяющий условиям (5.1).



Рис. 9. К пояснению понятия аппроксимации Рис. 10. Линейная интерполяция

 

Найдя интерполяционный полином, мы можем вычислить значения функции между узлами (провестиинтерполяцию в узком смысле слова), а также определить значение функции даже за пределами заданного интервала (провести экстраполяцию[3]). Если полином един для всей области интерполяции, то говорят о глобальной интерполяции, а если между различными узлами полиномы различны, то говорят о кусочной или локальной интерполяции.

Задача глобальной интерполяции обычно решается с помощью интерполяционной формулы Лагранжа:

. (5.2)

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

Простейшим видом локальной интерполяции является линейная интерполяция, заключающаяся в том, что заданные точки М(xi, yi) (i = 0, 1, ..., n)соединяются прямолинейными отрезками, и функция f(x) приближается ломаной с вершинами в данных точках (рис. 10). Задача линейной интерполяции в пакете MathCAD решается с помощью встроенной функции linterp(vx,vy,z), которая использует векторы данных vx и vy, чтобы возвратить интерполируемое значение, соответствующее третьему аргументу z. Аргументы vx и vy должны быть векторами одинаковой длины, и вектор vx должен содержать вещественные значения, расположенные по возрастания (если это не так, то их необходимо вначале упорядочить). Функция соединяет узловые точки отрезками прямых, создавая таким образом ломаную. Интерполируемое значение для конкретного z есть ордината у соответствующей точки ломаной.

Если величина x, расположена перед первой (или за последней) точкой в векторе vx, то MathCAD продолжает ломаную прямой линией, проходящей через первые две (последние две) точки данных. Пример проведения линейной интерполяции:

Усложнением метода линейной является квадратичная интерполяция – в качестве интерполяционной функции принимается квадратный трехчлен, причем интерполяция проводится по трем ближайшим точкам.

В настоящее время среди методов локальной интерполяции наибольшее распространение получила интерполяция кубическими сплайнами (от английского слова spline – гибкая линейка). Основные идеи теории сплайнов сформировались как результат математического описания поведения гибких реек из упругого материала (механические сплайны), которыми издавна пользовались чертежники при необходимости проведения через заданные точки достаточно

Рис. 11. Положение минимума энергии упругой рейки  

гладкой кривой. Известно, что рейка из упругого материала, закрепленная в некоторых точках и находящаяся в положении равновесия, принимает форму, при которой ее энергия является минимальной (рис. 11). Положение гибкой тонкой балки между двумя узлами достаточно хорошо описывается кубическим полиномом, и поскольку она не разрушается, то аппроксимирующая функция должна быть, по меньшей мере, непрерывно дифференцируемой. Это означает, что функции j (x), j'(x), j''(x) непрерывны на отрезке [a, b].

Кубическая сплайн-интерполяция позволяет провести кривую, которая образуется путем создания и последующей «состыковки» ряда кубических полиномов, проходящих через наборы из трех смежных точек.

На каждом интервале кубический интерполирующий сплайн S(x) (полином третьей степени):

,

удовлетворяет условиям (5.1). Если всего задано n узлов, то число интервалов – ( ). Значит, требуется определить неизвестных коэффициентов кубических полиномов. Условие (5.1) дает нам n уравнений. Условие непрерывности функции и ее первой и второй производных во внутренних узлах интервала дает дополнительно уравнений

Всего имеем различных уравнений. Два недостающих уравнения можно получить, задавая условия на краях интервала: при этом можно считать, что кривая сплайна приближается в граничных точках к прямой линии, или к параболе или же к кубической кривой. В пакете MathCAD имеется три сплайн-функции: lspline(vx,vy), pspline(vx,vy), cspline(vx,vy)каждая из которых соответствует заданию линейных, квадратичных (параболических) или кубических условий на границах интервала. Аргументы vx и vy удовлетворяют тем же требованиям, что и в случае линейной интерполяции. Сплайн-функции возвращают вектор коэффициентов вторых производных, обозначаемый vs. Этот вектор используется в функции interp(vs,vx,vy,z), которая возвращает интерполируемое значение, соответствующее аргументу z.

Для получения наилучших результатов zдолжно находится между самыми большими и самыми маленькими значениями vx - маловероятно, что будут полезны значения, вычисленные вне этого диапазона. Сплайны предназначены для интерполяции, а не для экстраполяции. Задача экстраполяции вперед[4](линейного предсказания) решается в пакете MathCAD с помощью функции predict(v,m,n), которая использует линейный алгоритм предсказания. Она полезна, когда экстраполируемая функция является гладкой и монотонной или осциллирующей, хотя не обязательно периодической. Функция возвращает n предсказанных значений, основанных на m последовательных последних значениях вектора данных v. Вначале вычисляются коэффициенты предсказания, а затем используются последние m точек чтобы предсказать координаты (m+1)- ой точки, т.е. фактически создается скользящее окно шириной в m точек.

Пример построения в пакете MathCAD кубических сплайнов через узловые точки приведены в следующем документе:

Пример использования функции predict дан в следующем документе:



<== предыдущая лекция | следующая лекция ==>
Задание на лабораторную работу | Задание к лабораторной работе


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 5.379 сек.