Процесс аппроксимации. Методы аппроксимации функций

АППРОКСИМАЦИЯ ФУНКЦИЙ

Информатика, кибернетика и программирование

Как упростить вычисление известной функции fx или же ее характеристик если fx слишком сложная Ответы на эти вопросы даются теорией аппроксимации функций основная задача которой состоит в нахождении функции y=x близкой т. Обоснование способов нахождения удачного вида функциональной зависимости и подбора параметров составляет задачу теории аппроксимации функций. В зависимости от способа подбора параметров получают различные методы аппроксимации; наибольшее распространение среди них получили интерполяция и среднеквадратичное...

ТЕМА 3. АППРОКСИМАЦИЯ ФУНКЦИЙ

3.1. Зачем нужна аппроксимация функций?

В окружающем нас мире все взаимосвязано, поэтому одной из наиболее часто встречающихся задач является установление характера зависимости между различными величинами, что позволяет по значению одной величины определить значение другой. Математической моделью зависимости одной величины от другой является понятие функции y=f(x) .

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

1. Как установить вид функции y=f(x), если она неизвестна? Предполагается при этом, что задана таблица ее значений, которая получена либо из экспериментальных измерений, либо из сложных расчетов.

2. Как упростить вычисление известной функции f(x) или же ее характеристик, если f(x) слишком сложная?

Ответы на эти вопросы даются теорией аппроксимации функций, основная задача которой состоит в нахождении функции y=  (x) , близкой (т.е. аппроксимирующей) в некотором нормированном пространстве к исходной функции y=f(x). Функцию  (x) при этом выбирают такой, чтобы она была максимально удобной для последующих расчетов.

Основной подход к решению этой задачи заключается в том, что  (x) выбирается зависящей от нескольких свободных параметров, т.е. , значения которых подбираются из некоторого условия близости f(x) и  (x) .

Обоснование способов нахождения удачного вида функциональной зависимости и подбора параметров составляет задачу теории аппроксимации функций .

В зависимости от способа подбора параметров получают различные методы аппроксимации; наибольшее распространение среди них получили интерполяция и среднеквадратичное приближение, частным случаем которого является метод наименьших квадратов.

Наиболее простой, хорошо изученной и нашедшей широкое применение в настоящее время является линейная аппроксимация , при которой выбирают функцию, линейно зависящую от параметров, т.е. в виде обобщенного многочлена:

. (3.1)

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

Приведем хорошо известные и часто используемые системы. При интерполяции обычно используется система линейно независимых функций. Для среднеквадратичной аппроксимации удобнее в качестве брать ортогональные на интервале [ 1, 1] многочлены Лежандра:

Заметим, что если функция задана на отрезке [ a, b ] , то при использовании этой системы необходимо предварительно осуществить преобразование координат, приводящее интервал к интервалу.

Для аппроксимации периодических функций используют ортогональную на [ a, b ] систему тригонометрических функций. В этом случае обобщенный многочлен (3.1) записывается в виде.

3.2. Что такое интерполяция?

Интерполяция является одним из способов аппроксимации функций. Суть ее состоит в следующем. В области значений x a, b ], где функции f и  должны быть близки, выбирают упорядоченную систему точек (узлов) (обозначим), число которых равно количеству искомых параметров. Далее параметры подбирают такими, чтобы функция совпадала с f(x) в этих узлах, (рис.3.1), для чего решают полученную систему из n алгебраических в общем случае нелинейных уравнений.

В случае линейной аппроксимации (3.1) система для нахождения коэффициентов линейна и имеет следующий вид:

(3.2)

Система базисных функций, используемых для интерполяции, должна быть чебышевской , т.е. такой, чтобы определитель матрицы системы (3.2) был отличен от нуля и, следовательно, задача интерполяции имела единственное решение.

Для большинства практически важных приложений при интерполяции наиболее удобны обычные алгебраические многочлены, ибо они легко обрабатываются.

Интерполяционным многочленом называют алгебраический многочлен степени n-1 , совпадающий с аппроксимируемой функцией в выбранных n точках.

Общий вид алгебраического многочлена

. (3.3)

Матрица системы (3.2) в этом случае имеет вид

, (3.4)

и ее определитель (это определитель Вандермонда) отличен от нуля, если точки x i разные. Поэтому задача (3.2) имеет единственное решение, т.е. для заданной системы различных точек существует единственный интерполяционный многочлен.

Погрешность аппроксимации функции f(x) интерполяционным многочленом степени, построенным по n точкам, можно оценить, если известна ее производная порядка n, по формуле

(3.5)

Из (3.5) следует, что при h  0 порядок погрешности p (см. подразд. 1.4) при интерполяции алгебраическим многочленом равен количеству выбранных узлов p=n. Величина  может быть сделана малой как за счет увеличения n, так и уменьшения h. В практических расчетах используют, как правило, многочлены невысокого порядка (n  6 ) , в связи с тем что с ростом n резко возрастает погрешность вычисления самого многочлена из-за погрешностей округления.

3.3. Какие бывают многочлены и способы интерполяции?

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

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

Интерполяционный многочлен Ньютона (PN)

. (3.6)

Здесь – текущая точка, в которой надо вычислить значение многочлена, – разделенные разности порядка k, которые вычисляются по следующим рекуррентным формулам:

Схема расчета многочлена Ньютона представлена на рис. 3.2.

Линейная (PNL) и квадратичная(PNS) интерполяция

Вычисления по интерполяционной формуле (3.6) для n > 3 используют редко. Обычно при интерполяции по заданной таблице из m>3 точек применяют квадратичную n=3 или линейную n=2 интерполяцию. В этом случае для приближенного вычисления значения функции f в точке x находят в таблице ближайший к этой точке i -узел из общей таблицы, строят интерполяционный многочлен Ньютона первой или второй степени по формулам

(3.7)

и за значение f(x) принимают (линейная интерполяция ) или (квадратичная интерполяция ). Схема расчета для линейной и квадратичной интерполяции приведена на рис. 3.3.

Интерполяционный многочлен Лагранжа (PL)

(3.8)

Многочлены выбраны так, что во всех узлах, кроме k -го, они обращаются в ноль, в k -м узле они равны единице:

Поэтому из выражения (3.8) видно, что.

Схема расчета интерполяционного многочлена Лагранжа представлена на рис. 3.4.

Интерполяция общего вида, использующая прямое решение системы (3.2) методом Гаусса (POG)

Следует отметить, что ввиду громоздкости многочлены Ньютона и Лагранжа уступают по эффективности расчета многочлену общего вида (3.3), если предварительно найдены коэффициенты.

Поэтому когда требуется производить много вычислений многочлена, построенного по одной таблице, оказывается выгодно вначале один раз найти коэффициенты и затем использовать формулу (3.3). Коэффициенты находят прямым решением системы (3.2) c матрицей (3.4), затем вычисляют его значения по экономно программируемой формуле (алгоритм Горнера)

. (3.9)

Схема расчета интерполяционного многочлена общего вида по формуле (3.9) с прямым решением системы (3.2) приведена на рис.3.5.

Интерполяция общего вида, использующая расчет коэффициентов многочлена (3.3) через многочлен Лагранжа (POL)

Находить коэффициенты многочлена (3.3) можно, не решая прямо систему (3.2), а используя разложение коэффициентов Лагранжа (3.8):

. (3.10)

Рекуррентные формулы для нахождения коэффициентов:

(3.11)

получаются из вида многочленов, если использовать очевидное представление

Схема алгоритма вычисления коэффициентов многочлена общего вида по формулам (3.10), (3.11) представлена на рис. 3.6.

3.4. Что такое среднеквадратичная аппроксимация?

Суть среднеквадратичной аппроксимации заключается в том, что параметры функции подбираются такими, чтобы обеспечить минимум квадрата расстояния между функциями f(x) и в пространстве (см. подразд. 1.3), т.е. из условия

. (3.12)

В случае линейной аппроксимации (3.1) задача (3.12) сводится к решению СЛАУ для нахождения необходимых коэффициентов:

(3.13)

Здесь – скалярные произведения в L 2.

Матрица системы (3.13) симметричная, и ее следует решать методом квадратного корня.

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

Тогда матрица СЛАУ (3.13) диагональная и параметры находятся по формуле

В этом случае представление (3.1) называется обобщенным рядом Фурье , а называются коэффициентами Фурье .

Метод наименьших квадратов (МНК)

МНК является частным случаем среднеквадратичной аппроксимации. При использовании МНК в области значений x , представляющей некоторый интервал [ a, b ] , где функции f и  должны быть близки, выбирают систему различных точек (узлов) x 1 , ..., x m , число которых обычно больше, чем количество искомых параметров, Далее, потребовав, чтобы сумма квадратов невязок во всех узлах была минимальна (рис. 3.7):

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

(3.14)

получаем систему n линейных уравнений относительно n неизвестных следующего вида:

Или. (3.15)

Здесь – векторы-таблицы функ-ций. Элементы матрицы G и вектора в (3.15) определяются выражениями

– скалярные произведения векторов.

Система (3.15) имеет симметричную матрицу G и решается методом квадратного корня.

При аппроксимации по МНК обычно применяют такие функции, которые используют особенности решаемой задачи и удобны для последующей обработки.

Схема расчета коэффициентов многочлена вида (3.3) по методу наименьших квадратов представлена на рис. 3.8.

Приведем пример аппроксимации по МНК. Предположим, что известна таблица значений f(x) : { x 1 = 1 , y 1 = 0.5 , x 2 = 2 , y 2 =1.2 , x 3 =3 , y 3 =0.8}, т.е. m =3. Требуется найти параметры аппроксимирующей функции вида, ( n =2).

Составляем сумму квадратов невязок

Условия минимума (3.1 4 ):

Приводя подобные члены, получим окончательно систему двух уравнений с симметричной матрицей относительно неизвестных c 1 и c 2 :

Решая ее, находим.

На рис. 3.9 приведена таблица функции f(x) и полученная по МНК функция  (x ).

Порядок расчета по МНК следующий. Вначале по исходной таблице формируется матрица G и рассчитываются коэффициенты (см. рис. 3.8) (в качестве j k (x ) здесь берется функция x k - 1 ). Затем, используя полученные коэффициенты, рассчитывается значение функции в искомой точке (см. рис. 3.5, б).

3.5. Варианты заданий

Во всех вариантах (табл. 3.1.) требуется аппроксимировать заданную исходную функцию f(x) многочленом на интервале [ a, b ] . Задано количество неизвестных параметров n , вид аппроксимации и m – количество точек, в которых задана функция. Таблица исходной функции y i = f (x i ) вычисляется в точках Используя полученную таблицу требуется вычислить значения функций и погрешность в точках, построить графики и проанализировать качество полученной аппроксимации.

Таблица 3 . 1

N вар.

Функция f(x)

Вид аппроксимации

МНК

Ньютона PN

Лагранжа PL

Общего вида POG

Общего вида POL

Линейная PNL

МНК

Квадратичная PNS

Ньютона PN

Лагранжа PL

Общего вида POG

Общего вида POL

МНК

Квадратичная PNS

Линейная PNL

3.6. Контрольные вопросы

1. Как ставится задача линейной аппроксимации функций?

2. Что такое интерполяция, ее геометрическая интерпретация?

3. Напишите интерполяционный многочлен Ньютона 2-го порядка.

4. Напишите интерполяционный многочлен Лагранжа 2-го порядка.

5. Как осуществляется аппроксимация по методу наименьших квадратов и его геометрическая интерпретация?

6. Выведите СЛАУ относительно коэффициентов функции по МНК для таблицы.

PAGE 30


А также другие работы, которые могут Вас заинтересовать

33218. Классификация режимов работы судового электрооборудования в зависимости от продолжительности рабочего цикла 83.58 KB
Судовое электрооборудование будет работать надежно, если оно не только правильно сконструировано, но и правильно используется. СЭО используется правильно, если оно соответствует условиям работы судового механизма, устройства и т.п.
33224. Электромагнитные измерительные приборы 13.15 KB
Магнитоэлектрический прибор измерительный прибор непосредственной оценки для измерения силы электрического тока напряжения или количества электричества в цепях постоянного тока Электри́ческая мо́щность физическая величина характеризующая скорость передачи или преобразования электрической энергии. Ток изменяющийся во времени по значению и направлению называется переменным. В практике применяют периодически изменяющийся по синусоидальному закону переменный ток.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО «ВГТУ», ВГТУ)

Факультет радиотехники и электроники

Кафедра высшей математики и физико-математического моделирования


КУРСОВАЯ РАБОТА

по дисциплине: Математика

Тема: «Методы аппроксимации функций»


Разработал студент группы КП-121

И.С. Кононученко

Руководитель Кострюков С.А


ЗАДАНИЕ на курсовую работу


Тема: «Методы аппроксимации функций».

Студент группы КП-121 Кононученко Илья Сергеевич

1. Методы аппроксимации функций.

1.1. Непрерывная аппроксимация.

2. Точечная аппроксимация.

3. Интерполяционный полином Лагранжа.

4. Интерполяционный полином Ньютона.

5. Погрешность глобальной интерполяции.

6. Метод наименьших квадратов.

7. Подбор эмпирических формул.

8. Кусочно-постоянная интерполяция

9. Кусочно-линейная интерполяция.

2. Практическая часть.

2.1. Построить интерполяционный многочлен для функции f(x)=lnx- по узлам х=2; 4; 6; 8; 10; 12. Вычислить приближенное значение логарифма от 5,75. Получить оценку погрешности остаточного члена.

2.2. Функцию f(x), заданную таблицей, аппроксимировать линейной зависимостью ??(х)=Ах2+Вх+С. Найти х, для которого f(x)=10.



1. Методы аппроксимации функций

1.1 Непрерывная аппроксимация

1.2 Точечная аппроксимация

4 Интерполяционный полином Ньютона

8 Кусочно-постоянная интерполяция

9 Кусочно-линейная интерполяция

Практическая часть

2.1 Построить интерполяционный многочлен для функции f(x)=lnx-по узлам х=2; 4; 6; 8; 10; 12. Вычислить приближенное значение логарифма от 5,75. Получить оценку погрешности остаточного члена

2.2 Функцию f(x), заданную таблицей, аппроксимировать линейной зависимостью ?(х)=Ах+В, квадратичной зависимостью ?(х)=Ах2+Вх+С. Найти х, для которого f(x)=10

Список литературы


1.МЕТОДЫ АППРОКСИМАЦИИ ФУНКЦИЙ


1.1Непрерывная аппроксимация


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

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

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

Наиболее употребительным является так называемое среднеквадратичное приближение, для которого наименьшее значение имеет величина

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


2 Точечная аппроксимация


Аппроксимация, при которой приближение строится на заданном дискретном множестве точек, называется точечной.

Для получения точечного среднеквадратичного приближения функции y=f(x), заданной таблично, аппроксимирующую функцию строят из условия минимума величины

где yi - значения функции f(x) в точках xi.

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

Другим видом точечной аппроксимации является интерполирование, при котором аппроксимирующая функция принимает в заданных точках xi, те же значения yi , что и функция f(x), т.е. .


Рисунок 1

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

На рис. 1 показаны качественные графики интерполяционной функции (сплошная линия) и результаты среднеквадратичного приближения (пунктирная линия). Точками отмечены табличные значения функции f(x).


3 Интерполяционный полином Лагранжа


Лагранж предложил строить интерполяционный полином в виде разложения



где li(x) - базисные функции.

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

) быть полином степени n

) удовлетворять условию

Лагранж показал, что функции, обладающие указанными свойствами, должны иметь следующий вид


С учетом этого выражения интерполяционный полином Лагранжа может быть записан в виде

В отличие от интерполяционного полинома в канонической форме для вычисления значений полинома Лагранжа не требуется предварительно определять коэффициенты полинома путем решения системы уравнений. Однако для каждого значения аргумента x полином Лагранжа приходится пересчитывать вновь, коэффициенты же канонического полинома вычисляются только один раз. Поэтому практическое применение полинома Лагранжа оправдано только в том случае, когда интерполяционная функция вычисляется в сравнительно небольшом количестве точек x.

Интерполяционный полином Лагранжа оказывается очень удобным для приближенного вычисления определенных интегралов. Если, например, некоторую функцию заменить интерполяционным полином Лагранжа, то определенный интеграл от нее может быть вычислен следующим образом



Значения интегралов от не зависят от f(x) и могут быть легко вычислены аналитически.


1.4 Интерполяционный полином Ньютона


Рассмотрим еще одну форму записи интерполяционного полинома


Требования совпадения значений полинома с заданными значения функции в узловых точках Ni(xi)=yi, i=0,1,…,n приводит к системе линейных уравнений с треугольной матрицей для неизвестных коэффициентов:



решить которую не составляет труда.

Интерполяционный полином называется полиномом Ньютона. Интересная особенность полинома Ньютона состоит в том, что каждая частичная сумма его первых (m+1) слагаемых представляет собой интерполяционный полином степени m, построенный по первым (m+1) табличным данным.


5 Погрешность глобальной интерполяции


Ошибка приближения функции f(x) интерполяционным полиномом n-й степени Ln(x) в точке x определяется разностью



Можно показать, что погрешность Rn(x) определяется следующим выражением


Здесь - производная (n+1) порядка функции f(x) в некоторой точке, а функция определена как

Если максимальное значение производной f (n+1)(x) равно



то для погрешности интерполяции следует оценка



Конкретная величина погрешности в точке x зависит, очевидно, от значения функции в этой точке. Качественный характер зависимости показан на рис. 2.


Рисунок 2

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


1.6 Метод наименьших квадратов


Пусть для исходных данных xi, fi, i=1,…,N (нумерацию лучше начинать с единицы), выбран вид эмпирической зависимости: y=?(a0,a1,…,am) с неизвестными коэффициентами a0,a1,…,am . Запишем сумму квадратов отклонений между вычисленными по эмпирической формуле и заданными опытными данными:


S(a0,a1,…,am)=(?(x1,a0,a1,…,am)-fi)2


Параметры a0,a1,…,am будем находить из условия минимума функции S(a0,a1,…,am). В этом состоит метод наименьших квадратов (МНК).

Известно, что в точке минимума все частные производные от S по равны нулю:

Рассмотрим применение МНК для частного случая, широко используемого на практике. В качестве эмпирической функции рассмотрим полином

?(x)=a0+a1x+a2x2+…+amxm


Формула (1) для определения суммы квадратов отклонений примет вид:

S(a0,a1,…,am)=(a0+a1x+a2x2+…+amxm-fi)2 (2)


Вычислим производные

Приравнивая эти выражения к нулю и собирая коэффициенты при неизвестных a0,a1,…,am , получим следующую систему линейных уравнений

Данная система уравнений называется нормальной. Решая эту систему линейных уравнений, получаем коэффициенты.

В случае полинома первого порядка m=1, т.е. , система нормальных уравнений примет вид


При m=2 имеем:

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


1.7 Подбор эмпирических формул


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

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

Рисунок 3


Тогда говорят о подборе эмпирических формул. Построение эмпирической формулы состоит из двух этапов подбора вида этой формулы, содержащей неизвестные параметры a0,a1,…,am, и определение наилучших в некотором смысле этих параметров. Вид формулы иногда известен из физических соображений (для упругой среды связь между напряжением и деформацией) или выбираются из геометрических соображений: экспериментальные точки наносятся на график и примерно угадывается общий вид зависимости путем сравнения полученной кривой с графиками известных функций. Успех здесь в значительной степени определяется опытом и интуицией исследователя.

Для практики важен случай аппроксимации функции многочленами, т.е. F(x)=a0+a1x+a2x2+…+amxm .

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


1.8 Кусочно-постоянная интерполяция


На каждом отрезке интерполяционный многочлен равен константе, а именно левому или правому значению функции.

Для левой кусочно-линейной интерполяции

F(x)= fi-1, если xi-1 ?x

Для правой кусочно-линейной интерполяции F(x)= fi-1, если xi-1

Легко понять, что условия интерполяция выполняются. Построенная функция является разрывной, что ограничивает ее применение. Для левой кусочно-линейной интерполяции имеем графическое представление


Рисунок 4


1.9 Кусочно-линейная интерполяция


На каждом интервале функция является линейной Fi(x)=kix+li. Значения коэффициентов находятся из выполнения условий интерполяции в концах отрезка: Fi(xi-1)=fi-1, Fi(xi-1)=fi . Получаем систему уравнений: kixi-1+ li= fi-1, kixi+ li= fi , откуда находим ki=li= fi- kixi .

Следовательно, функцию F(x) можно записать в виде:


F(x)= x+ fi- kixi , если, т.е.

Или F(x)=ki ·(x-xi-1)+fi-1, ki = (fi - fi-1) / (xi - xi-1), xi-1 ? x ? xi, i=1,2,...,N-1


При использовании линейной интерполяции сначала нужно определить интервал, в который попадает значение x, а затем подставить его в формулу.

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


Рисунок 5


2. ПРАКТИЧЕСКАЯ ЧАСТЬ


2.1 Построим интерполяционный многочлен для функции


f(x)=lnx- по узлам х=2; 4; 6; 8; 10; 12.


Формула для вычисления данного многочлена выглядит следующим образом:



где n- количество узлов.

Рассчитаем значения базисных полиномов.

Формула для расчета базисных полиномов:



Запишем значения узлов функции:

Вычислим значения функций f(x) в соответствующих узлах:

f(x0)==0.6931471805599453-1.5=-0.8068528194400547(x1)= =1.386294361119891-1.25=0.136294361119891(x2)= =1.791759469228055-1.1666666666666667=0.625092802561388(x3)= =2,079441541679835-1.125=0.954441541679835(x4)= =2.302585092994045-1.1=1.202585092994045(x5)= =2.484906649788-1.083333333333333=1.401573316454667


Рассчитаем значения соответствующих базисных полиномов:



Запишем формулу вычисления многочлена f(x)=lnx- по полученным данным:

L(x)=f(x0)·l0(x)+ f(x1)·l1(x)+ f(x2)·l2(x)+ f(x3)·l3(x)+ f(x4)·l4(x)+ f(x5)·l5(x).

Подставим в формулу полученные значения:

L(x)=((- 0.8068528194400547) ·(x-4)(x-6)(x-8)(x-10)(x-12)+ +0.136294361119891·5(x-2)(x-6)(x-8)(x-10)(x-12)- 0.625092802561388·10·

· (x-2)(x-4)(x-8)(x-10)(x-12)+ 0.954441541679835·10(x-2)(x-4)(x-6)(x-10)(x-12)-1.202585092994045·5(x-2)(x-4)(x-6)(x-8)(x-12)+ 1.401573316454667·

·(x-2)(x-4)(x-6)(x-8)(x-10)=0,000443792912875·x5-0.001895922201567·x4+

032520620421826·x3-0.289410042490318·x2+1.50294940468648·x-2.886362165898854

Рисунок 6

L(x)= 0.000443792912875·x5-0.001895922201567·x4+

032520620421826·x3-0.289410042490318·x2+

50294940468648·x-2.886362165898854

Из рисунка видно, что графики функций совпадают.

Вычислим приближенное значение логарифма от 5,75 с точностью до 0,001.

Воспользуемся разложением



Пользуясь формулой



посчитаем приближенное значение логарифма:

Получим оценку погрешности остаточного члена:

Формула нахождения остаточного члена в других точках:

Rn(x)=f(x)-Ln(x).

Подставим значения и вычислим остаточный член:

Rn(x)= -0.234721044665224-(-0.149875603361276)= 0.0122

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


0122374?9.9512361


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

Функцию f(x), заданную таблицей аппроксимируем линейной зависимостью ?(х)=Ах+В, квадратичной зависимостью ?(х)=Ах2+Вх+С.


x10151720f(x)371117Решение:

Для решения этой задачи воспользуемся методом наименьших квадратов.

Система нормальных уравнений для линейной зависимости (x)=Ax+B:

Учитывая, что n=4: ;

Решаем систему линейных уравнений:

Следовательно, линейная зависимость будет иметь вид:

Рассмотрим квадратичную зависимость?(х)=Ах2+Вх+С. Система нормальных уравнений имеет вид:


Найдем не подсчитанные суммы:

Следовательно, квадратичная зависимость будет иметь вид:


Рисунок 7

Функция, заданная таблицей.

Линейная зависимость

Квадратичная зависимость


По графику найдем значение х, для которого f(x)=10.

Список литературы


1. Кириллова С.Ю. Вычислительная математика/Кириллова С.Ю. Изд-во Владим. гос. ун-та, 2009. -102с.

2. Справочное пособие по приближенным методам решения задач высшей математики/ Л.И. Бородич, А.И. Герасимович, Н.П. Кеда и др.; под ред. Л.И. Бородич.- М.: Высшая школа, 1986. -189с.

3. Тюканов, А.С. Основы численных методов: учеб. пособие для студентов. Изд-во РГПУ им. А.И. Герцена, 2007. -226с.


Репетиторство

Нужна помощь по изучению какой-либы темы?

Наши специалисты проконсультируют или окажут репетиторские услуги по интересующей вас тематике.
Отправь заявку с указанием темы прямо сейчас, чтобы узнать о возможности получения консультации.

6.7.3. Технология решения задач аппроксимации функций средствами математических пакетов

6.7.3.1. Технология решения задач аппроксимации средствами MathCad

6.7.3.2. Технология решения задач аппроксимации функций в среде MatLab

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

Постановка задачи аппроксимации

Задача аппроксимации (приближения) функции заключается в замене некоторой функции y=f(x) другой функцией g(x, a 0 , a 1 , ..., a n) таким образом, чтобы отклонение
g(x, a0, a1, ..., an) от f(x) удовлетворяло в некоторой области (на множестве Х) определённому условию. Если множество Х дискретно (состоит из отдельных точек), то приближение называется точечным, если же Х есть отрезок , то приближение называется интегральным.

Если функция f(x)задана таблично, то аппроксимирующая функция
g(x, a 0 , a 1 , ..., a n) должна удовлетворять определённому критерию соответствия ее значений табличным данным.

Подбор эмпирических формул состоит из двух этапов – выбора вида формулы и определения содержащихся в ней коэффициентов.

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

Наиболее распространен способ выбора функции в виде многочлена:

где φ(x,a 0 ,a 1 ,...,a n)=a 0 φ 0 (x)+a 1 φ 1 (x)+...+a m φ m (x), а

φ 0 (x), φ 1 (x), ..., φ m (x) – базисные функции (m-степень аппроксимирующего полинома).

Один из возможных базисов – степенной: φ 0 (x)=1, φ 1 (x)=х, ..., φ m (x)=х m .

Обычно степень аппроксимирующего полинома m<e , то количество базисных функций выбирается так, чтобы . Здесь S – численное значение критерия близости аппроксимирующей функции φ(x, a 0 , a 1 , ..., a n) и табличных данных. Отклонения между опытными данными и значениями эмпирической функции

e i = φ(x i , a 0 , a 1 , ..., a m) – y i , i = 0,1,2,...,n.

Методы определения коэффициентов выбранной эмпирической функции различаются критерием минимизации отклонений.

Метод наименьших квадратов

Одним из способов определения параметров эмпирической формулы является метод наименьших квадратов. В этом методе параметры a 0 , a 1 , ..., a n определяются из условия минимума суммы квадратов отклонений аппроксимирующей функции от табличных данных.

Вектор коэффициентов a T определяют из условия минимизации

где (n+1) – количество узловых точек.

Условие минимума функции Е приводит к системе линейных уравнений относительно параметров a 0 , a 1 , ..., a m . Эта система называется системой нормальных уравнений, её матрица – матрица Грама . Элементами матрицы Грама являются суммы скалярных произведений базисных функций

Для получения искомых значений параметров следует составить и решить систему (m+1) уравнения

Пусть в качестве аппроксимирующей функции выбрана линейная зависимость y= a 0 +a 1 x . Тогда

Условия минимума:

Тогда первое уравнение имеет вид

Раскрывая скобки и разделив на постоянный коэффициент, получим

.

Первое уравнение принимает следующий окончательный вид:

.

Для получения второго уравнения,приравняем нулю частную производную по а1:

.

.

Система линейных уравнений для нахождения коэффициентов многочлена (линейная аппроксимация):

Введем следующие обозначения - средние значения исходных данных. Во введенных обозначениях решениями системы являются

.

В случае применения метода наименьших квадратов для определения коэффициентов аппроксимирующего многочлена второй степени y=a 0 +a 1 x+а 2 х 2 критерий минимизации имеет вид

.

Из условия получим следующую систему уравнений:

Решение этой системы уравнений относительно а 0 , а 1 , а 2 позволяет найти коэффициенты эмпирической формулы - аппроксимирующего многочлена 2-го порядка. При решении системы линейных уравнений могут быть применены численные методы.

В случае степенного базиса (степень аппроксимирующего полинома равна m) матрица Грама системы нормальных уравнений G и столбец правых частей системы нормальных уравнений имеют вид

G =

В матричной форме система нормальных уравнений примет вид:

Решение системы нормальных уравнений

найдется из выражения

В качестве меры уклонения заданных значений функции y 0 , y 1 , ..., y n от многочлена степени m - φ(x)=a 0 φ 0 (x)+a 1 φ 1 (x)+...+a m φ m (x) ,

принимается величина

(n+1) – количество узлов, m – степень аппроксимирующего многочлена, n+1>=m.

На рис.6.7.2-1 приведена укрупненная схема алгоритма метода наименьших квадратов.

Рис. 6.7.2-1. Укрупненная схема алгоритма метода наименьших квадратов

Данная схема алгоритма метода наименьших квадратов является укрупненной и отражает основные процессы метода, где n+1 – количество точек, в которых известны значения х i , y i ; i=0,1,…, n.

Блок вычисления коэффициентов предполагает вычисление коэффициентов при неизвестных с 0 , с 1 , …, с m и свободных членов системы из m+1 линейных уравнений.

Следующий блок – блок решения системы уравнений – предполагает вычисление коэффициентов аппроксимирующей функции с 0 , с 1 , …, с m .

Пример 6.7.2-1. Аппроксимировать следующие данные многочленом второй степени, используя метод наименьших квадратов.

x 0.78 1.56 2.34 3.12 3.81
y 2.50 1.20 1.12 2.25 4.28

Запишем в следующую таблицу элементы матрицы Грамма и столбец свободных членов:

i x x 2 x 3 x 4 y xy x 2 y
0.78 0.608 0.475 0.370 2.50 1.950 1.520
1.56 2.434 3.796 5.922 1.20 1.872 2.920
2.34 5.476 12.813 29.982 1.12 2.621 6.133
3.12 9.734 30.371 94.759 2.25 7.020 21.902
3.81 14.516 55.306 210.72 4.28 16.307 62.129
11.61 32.768 102.76 341.75 11.35 29.770 94.604

Система нормальных уравнений выглядит следующим образом

Решением этой системы являются:

а0 = 5.022; а1 =-4.014; а2=1.002.

Искомая аппроксимирующая функция

Сравним исходные значения yсо значениями аппроксимирующего многочлена, вычисленными в тех же точках:

Вычислим среднеквадратическое отклонение (невязку)

.


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

Пример 6.7.3-2. Осуществить аппроксимацию таблично заданной функции многочленом 1-й, 2-й и 3-й степени.

В этом примере рассмотрено использование функции linfit(x,y,f), где x,y- соответственно векторы значений аргументов и функции, а f – символьный вектор базисных функций. Использование этой функции позволяет определить вектор коэффициентов аппроксимации методом наименьших квадратов и далее невязку - среднеквадратическую погрешность приближения исходных точек к аппроксимирующей функции (сkо). Степень аппроксимирующего многочлена задается при описании символьного вектора f. В примере представлена аппроксимация таблично заданной функции многочленом 1-й, 2-й и 3-й степени. Вектор s представляет собой набор аппроксимирующих коэффициентов, что позволяет получить аппроксимирующую функцию в явном виде.

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

expfit(X,Y,g) Решение ОДУ 2-го порядка вида у”=F(x, y, z), где z=y’ также может быть получено методом Рунге-Кутты 4-го порядка. Ниже приведены формулы для решения ОДУ:

В этих функциях: х – вектор аргументов, элементы которого расположены в порядке возрастания; y – вектор значений функции; g – вектор начальных приближений коэффициентов a, b и с; t - значение аргумента, при котором определяется функция.

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

Пример 6.7.3-3. Найти аппроксимирующие полиномы первой, второй, третьей и четвертой степени и вычислить коэффициенты корреляции.

Помимо вычисления значений функций в пределах интервала данных все рассмотренные ранее функции могут осуществлять экстраполяцию (прогнозирование поведения функции за пределами интервала заданных точек) с помощью зависимости, основанной на анализе расположения нескольких исходных точек на границе интервала данных. В Mathcad имеется и специальная функция предсказания predict(Y, m, n), где Y – вектор заданных значений функции, обязательно взятых через равные интервалы аргумента, а m – число последовательных значений Y, на основании которых функция predict возвращает n значений Y.

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

Пример 6.7.3-4. Аппроксимировать функцию, заданную таблично, многочленом по МНК.

В этом примере рассмотрено использование функции p=polyfit(x,y,n), где x,y – соответственно векторы значений аргументов и функции, n – порядок аппроксимирующего полинома, а p – полученный в результате вектор коэффициентов аппроксимирующего полинома длинной n+1.

>> x=; >> x x = 1.2000 1.4000 1.6000 1.8000 2.0000 >> y=[-1.15,-0.506,0.236,0.88,1.256]; >> y y = -1.1500 -0.5060 0.2360 0.8800 1.2560 >> % >> % >> p1=polyfit(x,y,1); >> p1 p1 = 3.0990 -4.8152 >> y1=polyval(p1,x); >> y1 y1 = -1.0964 -0.4766 0.1432 0.7630 1.3828 >> cko1=sqrt(1/5*sum((y-y1).^2)); >> cko1 cko1 = 0.0918 >> plot(x,y,"ko",x,y1,"r-") >> p2=polyfit(x,y,2); >> p2 p2 = -1.1321 6.7219 -7.6229 >> y2=polyval(p2,x); >> y2 y2 = -1.1870 -0.4313 0.2338 0.8083 1.2922 >> cko2=sqrt(1/5*sum((y-y2).^2)); >> cko2 cko2 = 0.0518 >> plot(x,y,"ko",x,y2,"r-")

Пример 6.7.3-5. Аппроксимировать функцию, заданную таблично, многочленом по МНК.

Пример 6.7.3-5. Аппроксимировать функцию, заданную таблично, полиномами различной степени по МНК.


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

Аппроксимация – это

1) получение функции более простого вида, описывающей исходную с достаточной степенью точности

2) частный случай интерполяции

3) замена исходной функции функцией другого вида

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

Тема 6.7. Аппроксимация функций

6.7.1. Постановка задачи аппроксимации

6.7.2. Метод наименьших квадратов

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

При расчетах, связанных с обработкой полученных экспериментальных данных, вычислением f (x), разработкой вычислительных методов, встречаются следующие две ситуации: 1. Как установить вид функции y = f (x), если она неизвестна, а известны только некоторые ее значения (полученные из экспериментальных измерений, или из сложных расчетов). 2. Как упростить вычисление известной функции f (x) или ее характеристик, если f (x) имеет слишком сложный вид?

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

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

Наиболее простой является линейная аппроксимация, при которой выбирают функцию линейно зависящую от параметров ci (i = 1, 2, …, n) в виде многочлена: , (1) {φk (x) } – линейно независимые функции, в качестве которых выбирают элементарные функции (тригонометрические, экспоненты, логарифмические или их комбинации).

Интерполяция это один из способов аппроксимации функций. Суть ее в следующем. Для x на интервале , где функции f и должны быть близки, выбирают систему точек (узлов) x 1

В случае линейной аппроксимации (1) система для нахождения коэффициентов сi линейна и имеет следующий вид: (2) При интерполяции для расчетов наиболее удобны обычные алгебраические многочлены.

Интерполяционным многочленом называют алгебраический многочлен степени (n – 1), совпадающий с аппроксимируемой функцией в выбранных n точках (узлах). Общий вид алгебраического многочлена: (3)

Матрица системы (2) в этом случае имеет вид. (4) Ее определитель отличен от нуля, если точки xi разные. Поэтому задача (2) обязательно имеет решение.

При h 0 порядок погрешности интерполяции алгебраическим многочленом равен количеству выбранных узлов n. Величина может быть сделана малой как за счет увеличения n, так и уменьшения h. В практических расчетах обычно используют многочлены невысокого порядка (n 6), в связи с тем, что с ростом n возрастает погрешность вычисления самого многочлена из-за погрешностей округления.

Многочлены можно записать по-разному: P 1(x) = 1 – 2 x + x 2 = (x – 1)2. В зависимости от решаемых задач применяют различные виды представления многочлена и способы интерполяции. Наиболее часто используют интерполяционные многочлены Лагранжа и Ньютона. Их особенность в том, что не надо находить параметры сi , т. к. эти многочлены записаны через значения таблицы (узлы) { (xi, yi), i = 1, …, n }.

Параметрами этой функции являются: xt – текущая точка, в которой находится неизвестное значение функции по известным узлам; x и y – узлы, т. е. массивы известных значений (рекомендуется передавать по адресу); m – количество узлов (размер массивов x и y); Понятно, что циклы должны быть организованы от 0 и до значения, меньшего указанного, например первый цикл: for (i = 0; i

Src="https://present5.com/presentation/91940964_324663347/image-18.jpg" alt="Линейная и квадратичная интерполяция При интерполяции по заданной таблице (узлам) из m > 3"> Линейная и квадратичная интерполяция При интерполяции по заданной таблице (узлам) из m > 3 точек применяют квадратичную для n = 3 или линейную для n = 2 интерполяцию. В этом случае для приближенного вычисления значения функции f в точке x находят в таблице ближайший к этой точке i-й узел, строят интерполяционный многочлен Ньютона первой или второй степени по следующим формулам.

(1) где xi– 1 ≤ x. Т ≤ xi. За приближенное значение функции f (x. T) принимают N 1(x. T) – линейная интерполяция.

(2) где xi– 1 ≤ x. Т ≤ xi+1. За приближенное значение функции f (xt) принимают N 2(xt) – квадратичная интерполяция.

Параметрами функций в рассмотренных схемах линейной и квадратичной интерполяций являются значения, аналогичные рассмотренным в схеме функции расчета многочлена Ньютона. Результат линейной интерполяции yt = N 1(xt) (приближенное значение функции в точке xt) рассчитывается по формуле (1) и возвращается в точку вызова функции, а результат квадратичной интерполяции yt = N 2(xt) – по формуле (2).

Интерполяционный многочлен Лагранжа (8) Многочлены выбраны так, что во всех узлах, кроме k-го, они равны нулю, а в k-м узле – единице: Из выражения (8) видно, что Ln– 1(xi) = yi.

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

double Metod (double xt, double *x, int m) { int i, k; double e, yt = 0; for (k = 0; k

В данном случае массив табличных значений функции y не используется, т. к. функция f (x) реализована в виде функции пользователя: double fun (double x) { return «Вид функции f (x)» ; } Вместо блока yt = yt + e yk в схеме алгоритма используем вычисление yt += e * fun (x[k]);

Общий алгоритм аппроксимации функции В заданиях вид функции f (x) известен для того, чтобы можно было найти нужное количество узлов (значений таблицы) на отрезке и сравнить полученные результаты. Пусть на отрезке задана таблица из m известных узлов. Необходимо аппроксимировать f (x) в n точках, n ≥ m, т. е. найти по небольшому количеству известных значений m нужное количество n неизвестных значений функции.

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

Введение

Когда обрабатывается выборка экспериментальных данных, то они, чаще всего, представляются в виде массива, состоящего из пар чисел (x i ,y i ). Поэтому возникает задача аппроксимации дискретной зависимости y(x i ) непрерывной функцией f(x).

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

Функция f(x), в зависимости от специфики задачи, может отвечать различным требованиям.

  • Функция f(x) должна проходить через точки (x i ,y i ), т. е. f(x i )=y i ,i=1...n. В этом случае говорят об интерполяции данных функцией f(x) во внутренних точках между x i , или экстраполяции за пределами интервала, содержащего все x i .
  • Функция f(x) должна некоторым образом (например, в виде определенной аналитической зависимости) приближать y(x i ), не обязательно проходя через точки (x i ,y i ). Такова постановка задачи регрессии , которую во многих случаях также можно назвать сглаживанием данных.
  • Функция f(x) должна приближать экспериментальную зависимость y(x i ), учитывая, к тому же, что данные (x i ,y i ) получены с некоторой погрешностью, выражающей шумовую компоненту измерений. При этом функция f(x), с помощью того или иного алгоритма уменьшает погрешность, присутствующую в данных (x i ,y i ). Такого типа задачи называют задачами фильтрации. Сглаживание - частный случай фильтрации.

Критерии близости функций и могут быть различные.

В том случае, когда приближение строится на дискретном наборе точек, аппроксимацию называют точечной или дискретной.

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

Наиболее часто встречающим видом точечной аппроксимации является интерполяция (в широком смысле).

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

В качестве функции обычно выбирается полином, который называют интерполяционным полиномом .

В том случае, когда полином един для всей области интерполяции, говорят, что интерполяция глобальная .

В тех случаях, когда между различными узлами полиномы различны, говорят о кусочной или локальной интерполяции .

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

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

Рис. 1. Виды построения аппроксимирующей зависимости

Интерполяция и экстраполяция

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

Рис. 2. Построение интерполирующих и экстраполирующих зависимостей.

Когда искомое значение y(x) вычисляется в точке x, которая находится между каких-либо из узлов x i , говорят об интерполяции , а когда точка x лежит вне границ интервала, включающего все x i - об экстраполяции функции y(x).

На Рис. 2 по множеству точек (x i ,y i ), обозначенных кружками, построена как интерполирующая (при x>100), так и экстраполирующая их функция (при x<100). Интерполяция-экстраполяция показаны на рис. сплошной кривой.

Следует иметь в виду, что точность экстраполяции обычно очень невелика.

Для экстраполяции данных в отдельных версиях пакета применяется функция predict (v, m ,n) . Она формирует вектор предсказанных значений, построенный на m последовательных элементах вектора v .

Параметры функции predict (v, m ,n ) : v - вектор, чьи значения представляют выборки, принятые в равных интервалах, m и n - целые числа.

Таким образом «предсказывающаяся функция» predict (v, m ,n) использует существующие данные, чтобы предсказать новые данные, которые находящиеся за пределами задания. Она использует линейный алгоритм предсказания, который является достаточным, когда функции гладкие или знакопеременные, хотя не обязательно периодические.

Пример ниже иллюстрирует использование линейного предсказания.

7 .1 Локальная интерполяция

7 .1.1. Линейная интерполяция

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

Линейная интерполяции представляет искомую зависимость y(x) в виде ломаной линии. Интерполирующая функция у(x) состоит из отрезков прямых, соединяющих точки (x i ,y i ) (см. рис. 3).

Рис.3 Линейная интерполяция

Для построения линейной интерполяции достаточно на каждом из интервалов (x i ,x i+1 ) вычислить уравнение прямой, проходящей через эти две точки:

При кусочно-линейной интерполяции вычисления дополнительных точек выполняются по линейной зависимости. Графически это означает просто соединение узловых точек отрезками прямых. Линейная интерполяция на Mathcad ’е осуществляется с помощью встроенной функции linterp .

linterp (VX , VY , х)

Для заданных векторов VX и VY узловых точек и заданного аргумента х linterp возвращает значение функции при ее линейной интерполяции. При экстраполяции используются отрезки прямых, проведенных через две крайние точки.

Пусть требуется провести линейную интерполяцию функции sin( x ) на интервале , используя пять узлов интерполяции, и вычислить значения функции в четырех точках Xk :

Задаем интервал изменения x и число узловых точек

Определяем шаг изменения x :

Вычисляем координаты узлов и значения функции в них:

Проводим линейную интерполяцию:

Вычислим значение интерполяционной функции в заданных точках и сравним их с точными значениями

Как видно, результаты интерполяции отличаются от точных значений функции незначительно.

7 .1.2. Интерполяция сплайнами

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

В большинстве практических приложений желательно соединить экспериментальные точки (x i ,y i )не ломаной линией, а гладкой кривой. Лучше всего для этих целей подходит интерполяция у(x) квадратичными или кубическими сплайнами, т. е. отрезками квадратичных или кубических парабол (см. рис.4).

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

Рис.4 Сплайн-интерполяция

На каждом интервале интерполирующая функция является полиномом третьей степени

и удовлетворяет условиям.

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

Всего имеем различных уравнений. Два недостающих уравнения можно получить, задавая условия на краях интервала. В частности, можно потребовать нулевой кривизны функции на краях интервала, то есть. Задавая различные условия на концах интервала, можно получить разные сплайны.

Для осуществления сплайновой аппроксимации MathCAD предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:

cspIine(VX, VY) — возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному;

pspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам к параболической кривой;

lspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам прямой.

Наконец, четвертая функция

interp (VS , VX , VY , x)

возвращает значение у(х) для заданных векторов VS, VX, VY и заданного значения х.

Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью одной из функций cspline, pspline или lspline отыскивается вектор вторых производных функции у(х), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp.

Решим задачу об интерполяции синуса с помощью сплайнов через функцией interp(VS,x,y,z) . Переменные x и y задают координаты узловых точек, z является аргументом функции, VS определяет тип граничных условий на концах интервала.

Определим интерполяционные функции для трех типов кубического сплайна

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

Следует обратить внимание, что результаты интерполяции различными типами кубических сплайнов практически не отличаются во внутренних точках интервала и совпадают с точными значениями функции. Вблизи краев интервала отличие становится более заметным, а при экстраполяции за пределы заданного интервала различные типы сплайнов дают существенно разные результаты. Для большей наглядности результаты представлены на графиках (Рис.5) .

Рис.5 Сравнение сплайн-интерполяция

Аналогично можно убедиться, что первые и вторые производные сплайна непрерывны (Рис.6).

Рис.6 Сравнение производных (1-х и 2-х) сплайн-интерполяция

П роизводные более высоких порядков уже не являются непрерывными.

7.1.3. Интерполяция B-cплайнами

Рис.7 Интерполяция B-cплайнами

Чуть более сложный тип интерполяции – так называемая полиномиальная сплайн-интерполяция, или интерполяция B-сплайнами . В отличие от обычной сплайн-интерполяции, сшивка элементарных B-сплайнов производится не в точках (t i ,x i ), а в других точках, координаты которых обычно предлагается определить пользователю. Таким образом, требование равномерного следования узлов при интерполяции B-сплайнами отсутствует, и ими можно приближать разрозненные данные.

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

bspline (vx , vy , u , n ) Возвращает вектор, содержащий коэффициенты В- сплайна степени n для данных , которые находяться в векторах vx и vy (с учет ом значений узл ов, которые заданы в u ) . Возвращаемый вектор становится первым аргументом функции interp .

interp (vs , vx , vy , x ) Возвращает B - сплайн интерполированной величины vy в точке x , где vs – результат работы функции bspline .

Аргументы

vx x .

vy y vx .

U - действительный вектор с числом элементов n-1 меньшим, чем в vx (где n - 1, 2, или 3). Элементы u должны быть в порядке возрастания. Элементы содержат значения узлов для интерполяции. Первый элемент в u должен быть меньше чем или равняться первому элементу в vx . Последний элемент в u должен быть больше или равняться последнему элементу в x.

N - целое число, равняются 1, 2, или 3, указывая степень индивидуального кусочно-линейного (n=1) , - квадратичного (n=2) , или кубического (n=3) полиномиал соответственно.

vs - вектор, образованный bspline .

X - значения независимой переменной, по которой Вы хотите интерполировать результаты. Для лучших результатов она должна принадлежать интервалу задания исходных значений х.

B - spline интерполяция позволяет передавать кривую через набор точек. Эта кривая строится на трех смежных точках полиномами градуса степени n и проходит через эти точки. Эти полиномы сопрягаются вместе в узлах так, чтобы сформировать законченную кривую.

7 .2. Глобальная интерполяция

При глобальной интерполяции ищется единый полином для всего интервала. Если среди узлов { x i ,y i } нет совпадающих, то такой полином будет единственным, и его степень не будет превышать n .

Запишем систему уравнений для определения коэффициентов полинома

Определим матрицу коэффициентов системы уравнений

Решим систему уравнений матричным методом

Определим интерполяционный полином

Вычислим значения интерполяционного полинома в заданных точках и сравним их с точными значениями

Коэффициенты интерполяционного полинома следующие:

Для наглядности результаты представлены на графике (Рис.8).

Примечание.

Из-за накопления вычислительной погрешности (ошибок округления) при большом числе узлов (n>10) возможно резкое ухудшение результатов интерполяции. Кроме того, для целого ряда функций глобальная интерполяция полиномом вообще не дает удовлетворительного результата. Рассмотрим в качестве примера две таких функции. Для этих функций точность интерполяции с ростом числа узлов не увеличивается, а уменьшается.

Рис. 8 . Глобальная интерполяция полиномом функции sin (z ).

Следующим примером является функция. Для нее интерполяционный полином строится на интервале [–1;1], используется 9 точек.

Результаты представлены на графике Рис. 9.

Рис. 9 Глобальная интерполяция полиномом функции.

Для функция найдем интерполяционный полином, используя заданные выше точки.

Результаты представлены на графике Рис. 10.

Рис. 10 Глобальная интерполяция полиномом функции.

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

7 .3 Метод наименьших квадратов

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

Критерием близости в методе наименьших квадратов является требование минимальности суммы квадратов отклонений от аппроксимирующей функции до экспериментальных точек:

Таким образом, не требуется, чтобы аппроксимирующая функция проходила через все заданные точки, что особенно важно при аппроксимации данных, заведомо содержащих погрешности.

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

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

Применим метод наименьших квадратов для аппроксимации экспериментальных данных.

Данные считываются из файлов datax и datay

При использовании MathCAD имя файла следует заключать в кавычки и записывать его по правилам MS DOS, например, READPRN("c:\mylib\datax.prn").

Определяется количество прочитанных данных (число экспериментальных точек).

В дальнейшем используются встроенные функции slope и intercept для определения коэффициентов линейной регрессии (аппроксимация данных прямой линией).

Функция slope(vx , vy ) определяет угловой коэффициент прямой, а функция intercept(vx , vy ) – точку пересечения графика с вертикальной осью.

Mathcad 2000 предлагает для этих же целей использовать функцию line(vx , vy ) , которая образует вектор (первый элемент - угловой коэффициент прямой, второй - точку пересечения с вертикальной осью).

Аргументы

v x - вектор действительных значений данных в порядке возрастания. Они соответствуют значениям x .

vy - вектор действительных значений данных. Они соответствуют значениям y . Содержит тот же число элементов, что и vx .

Коэффициенты линейной регрессии –

Стандартное отклонение составляет:

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

7 .3.2. Аппроксимация полиномами.

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

Вводим степени полиномов:

Функция regress(vx , vy , k ) является вспомогательной, она подготавливает данные, необходимые для работы функции interp .

Аргументы

v x - вектор действительных значений данных в порядке возрастания. Они соответствуют значениям x .

vy - вектор действительных значений данных. Они соответствуют значениям y . Содержит тот же число элементов, что и vx ,

k - степень полинома .

Вектор vs содержит, в том числе, и коэффициенты полинома

Функция interp (vs , vx , vy , z ) возвращает полином интерполированной величины vy в точке z , где vs – результат работы функции regress .

Определяя новые функции f2, f3 , мы получаем возможность находить значение полинома в любой заданной точке:

а также коэффициенты:

Стандартные отклонения почти не отличают друг от друга, коэффициент при четвертой степени z невелик, поэтому дальнейшее увеличение степени полинома нецелесообразно и достаточно ограничиться только второй степенью.

Функция regress имеется не во всех версиях Matcad "а. Однако, провести полиномиальную регрессию можно и без использования этой функции. Для этого нужно определить коэффициенты нормальной системы и решить полученную систему уравнений, например, матричным методом.

Теперь попытаемся аппроксимировать экспериментальные данные полиномами степени m и m1, не прибегая к помощи встроенной функции regress .

Вычисляем элементы матрицы коэффициентов нормальной системы

и столбец свободных членов

Находим коэффициенты полинома, решая систему матричным методом,

Определяем аппроксимирующие функции

Коэффициенты полиномов следующие:

Рис. 12. Аппроксимация полиномами 2-й и 3-й степени.

Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек, т. е. глобально. Иногда полезна другая функция полиномиальной регрессии, дающая локальные приближения отрезками полиномов второй степени: loess(VX, VY, span ) — возвращает вектор VS , используемый функцией interp(VS, VX, VY, x) , дающей наилучшее приближение данных (с координатами точек в векторах VX и VY ) отрезками полиномов второй степени. Аргумент span > 0 указывает размер локальной области приближаемых данных (рекомендуемое начальное значение — 0,75). Чем больше span , тем сильнее сказывается сглаживание данных. При больших span эта функция приближается к regress(VX, VY, 2) .

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

По рисунку примера можно отметить, что при малом значении span = 0.05 отслеживаются характерные случайные колебания значений функции, тогда как уже при span = 0.5 кривая регрессии становится практически гладкой. К сожалению, из-за отсутствия простого описания аппроксимирующей функции в виде отрезков полиномов этот вид регрессии получил ограниченное применение.

Проведение многомерной регрессии

MathCAD позволяет выполнять также многомерную регрессию. Самый типичный случай ее — приближение поверхностей в трехмерном пространстве. Их можно характеризовать массивом значений высот z , соответствующих двумерному массиву Мху координат точек (х,у) на горизонтальной плоскости.

Новых функций для этого не задано. Используются уже описанные функции в несколько иной форме:

regress(Mxy, Vz, n ) — возвращает вектор, запрашиваемый функцией interp (VS, Мху, Vz, V) для вычисления многочлена n -й степени, который наилучшим образом приближает точки множества Мху и Vz . Мху — матрица т 2, содержащая координаты х и у. Vz — m -мер-ный вектор, содержащий z -координаты, соответствующие т точкам, указанным в Мху;

Loes(Mxy, Vz, span ) — аналогичен loes(VX, VY, span ), но в многомерном случае;

interp(VS, Мху, Vz, V) — возвращает значение z по заданным векторам VS (создается функциями regress или loess ) и Мху , Vz и V (вектор координат х и у заданной точки, для которой находится z ).

Пример многомерной интерполяции был приведен выше. В целом многомерная регрессия применяется сравнительно редко из-за сложности сбора исходных данных.

7 .3.3. Аппроксимация линейной комбинацией функций

Mathcad предоставляет пользователям встроенную функцию linfit для аппроксимации данных по методу наименьших квадратов линейной комбинацией произвольных функций.

Функция linfit(x , y , F ) имеет три аргумента:

  • вектор x – x –координаты заданных точек,
  • вектор y – y –координаты заданных точек,
  • функция F – содержит набор функций, который будет использоваться для построения линейной комбинации.

Задаем функцию F (аппроксимирующая функция ищется в виде:

Определяем аппроксимирующую функцию:

Вычисляем дисперсию:

Рис. 1 3 . Аппроксимация линейной комбинацией функций

8.3.4.

Теперь построим аппроксимирующую функцию дробно–

рационального типа . Для этого воспользуемся функцией genfit(x , y , v,F ) .

Функция имеет следующие параметры:

  • x, y – векторы, содержащие координаты заданных точек,
  • F – функция, задающая искомую функциональную n –параметрическую зависимость и частные производные этой зависимости по параметрам.
  • v – вектор, задающий начальные приближения для поиска параметров.

Поскольку нулевой элемент функции F содержит искомую функцию, определяем функцию следующим образом:

Вычисляем среднее квадратичное отклонение

Рис. 1 4 . Аппроксимация функцией произвольного вида

на основе genfit .

Функция genfit имеется не во всех реализациях Mathcad "а. Возможно, однако, решить задачу, проведя линеаризацию.

Заданная функциональная зависимость может быть линеаризована

введением переменных и. Тогда .

Определим матрицы коэффициентов нормальной системы.

Находим коэффициенты функции, решая систему матричным методом,

Определяем функцию:

Вычислим стандартное отклонение

Обратите внимание! Мы получили другие коэффициенты! Задача на нахождение минимума нелинейной функции, особенно нескольких переменных, может иметь несколько решений.

Стандартное отклонение больше, чем в случае аппроксимации полиномами, поэтому следует остановить свой выбор на аппроксимации полиномом.

Представим результаты аппроксимации на графиках

Рис. 1 5 . Аппроксимация функцией произвольного вида

на основе genfit .

В тех случаях, когда функциональная зависимость оказывается достаточно сложной, может оказаться, что самый простой способ нахождения коэффициентов – минимизация функционала Ф "в лоб".