Аппроксимация нелинейной функции. Учебное пособие по Математическим методам в географии

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

х x 1 х 2 x n
f(x) y 1 у 2 y n

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

Задача аппроксимации функции одной переменной с самого начала обязательно учитывает характер поведения исходной функции на всем интервале наблюдений. Формулировка задачи выглядит следующим образом. Функция у= f(х) задана таблицей (1). Необходимо найти функцию заданного вида:

которая в точках x 1 , x 2 , …, x n принимает значения, как можно более близкие к табличным y 1 , y 2 , …, y n .

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

Рассмотрим рисунок 6.

На рисунке 6 изображены три ситуации:

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

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

Через имеющееся "облако" точек всегда можно попытаться провести линию установленного вида, которая является наилучшей в определенном смысле среди всех линий данного вида, то есть "ближайшей" к точкам наблюдений по их совокупности. Для этого определим вначале понятие близости линии к некоторому множеству точек на плоскости. Меры такой близости могут быть различными . Однако, любая разумная мера должна быть, очевидно, связана с расстоянием от точек наблюдения до рассматриваемой линии (задаваемой уравнением y=F(x) ).

Предположим, что приближающая функция F(x) в точках х 1 , x 2 , ..., x n имеет значения y 1 , y 2 , ..., y n . Часто в качестве критерия близости используется минимум суммы квадратов разностей наблюдений зависимой переменной y i и теоретических, рассчитанных по уравнению регрессии значений y i . Здесь считается, что y i и x i - известные данные наблюдений, а F - уравнение линии регрессии с неизвестными параметрами (формулы для их вычисления будут приведены ниже). Метод оценивания параметров приближающей функции, минимизирующий сумму квадратов отклонений наблюдений зависимой переменной от значений искомой функции, называется методом наименьших квадратов (МНК) или Least Squares Method (LS).

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

Рассмотрим метод нахождения приближающей функции в общем виде на примере аппроксимирующей функции с тремя параметрами:

(3)

Пусть F(x i , a, b, c) = y i , i=1, 2, ..., n. Сумма квадратов разностей соответствующих значений f и F будет иметь вид:

Эта сумма является функцией Ф(а, b, c) трех переменных (параметров a, b и c ). Задача сводится к отысканию ее минимума. Используем необходимое условие экстремума:

Получаем систему для определения неизвестных параметров a, b, c.

(5)

Решив эту систему трех уравнений с тремя неизвестными относительно параметров a, b, c, мы и получим конкретный вид искомой функции F(x, a, b, c). Как видно из рассмотренного примера, изменение количества параметров не приведет к искажению сущности самого подхода, а выразится лишь в изменении количества уравнений в системе (5).

Естественно ожидать, что значения найденной функции F(x, a, b, c) в точках х 1 , x 2 , ..., x n , будут отличаться от табличных значений y 1 , y 2 , ..., y n . Значения разностей y i -F(x i ,a, b, c)=e i (i=1, 2, ..., n) называются отклонениями измеренных значений y от вычисленных по формуле (3). Для найденной эмпирической формулы (2) в соответствии с исходной таблицей (1) можно, следовательно найти

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

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

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

Рассмотрим наиболее часто встречающиеся в практических исследованиях эмпирические зависимости.

3.3.1. Линейная функция (линейная регрессия). Начальным пунктом анализа зависимостей обычно является оценка линейной зависимости переменных. Следует при этом учитывать, однако, что "наилучшая" по методу наименьших квадратов прямая линия всегда существует, но даже наилучшая не всегда является достаточно хорошей. Если в действительности зависимость y=f(x) является квадратичной, то ее не сможет адекватно описать никакая линейная функция, хотя среди всех таких функций обязательно найдется "наилучшая". Если величины х и у вообще не связаны, мы также всегда сможем найти "наилучшую" линейную функцию y=ax+b для данной совокупности наблюдений, но в этом случае конкретные значения а и b определяются только случайными отклонениями переменных и сами будут очень сильно меняться для различных выборок из одной и той же генеральной совокупности.

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

Найдем частные производные по параметрам:

Подставим полученные соотношения в систему вида (5):

или, деля каждое уравнение на n:

Введем обозначения:

(7)

Тогда последняя система будет иметь вид:

(8)

Коэффициенты этой системы M x , M y , M xy , M x 2 - числа, которые в каждой конкретной задаче приближения могут быть легко вычислены по формулам (7), где x i , y i - значения из таблицы (1). Решив систему (8), получим значения параметров a и b , а следовательно, и конкретный вид линейной функции (6).

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

3.3.2. Квадратичная функция (квадратичная регрессия). Будем искать приближающую функцию в виде квадратного трехчлена:

Находим частные производные:

Составим систему вида (5):

После несложных преобразований получается система трех линейных уравнений с тремя неизвестными a, b, c . Коэффициенты системы, так же как и в случае линейной функции, выражаются только через известные данные из таблицы (1):

(10)

Здесь использованы обозначения (7), а также

Решение системы (10) дает значение параметров a, b и с для приближающей функции (9).

Квадратичная регрессия применяется, если все выражения вида у 2 -2y 1 + y 0 , y 3 -2 y 2 + y 1 , y 4 -2 y 3 + y 2 и т.д. мало отличаются друг от друга.

3.3.3. Степенная функция (геометрическая регрессия).Найдем теперь приближающую функция в виде:

(11)

Предполагая, что в исходной таблице (1) значения аргумента и значения функции положительны, прологарифмируем равенство (11) при условии а>0 :

Так как функция F является приближающей для функции f , функция lnF будет приближающей для функции lnf . Введем новую переменную u=lnx ; тогда, как следует из (12), lnF будет функцией от u : Ф(u) .

Обозначим

Теперь равенство (12) принимает вид:

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

1. по данной таблице (1) составить новую таблицу, прологарифмировав значения x и y в исходной таблице;

2. по новой таблице найти параметры А и В приближающей функции вида (14);

3. использовав обозначения (13), найти значения параметров a и m и подставить их в выражение (11).

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

3.3.4. Показательная функция. Пусть исходная таблица (1) такова, что приближающую функцию целесообразно искать в виде показательной функции:

Прологарифмируем равенство (15):

(16)

Приняв обозначения (13), перепишем (16) в виде:

(17)

Таким образом, для нахождения приближающей функции в виде (15) нужно прологарифмировать значения функции в исходной таблице (1) и, рассматривая их совместно с исходными значениями аргумента, построить для новой таблицы приближающую функцию вида (17). Вслед за этим в соответствии с обозначениями (13) остается получить значения искомых параметров a и b и подставить их в формулу (15).

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

.

3.3.5. Дробно-линейная функция. Будем искать приближающую функцию в виде:

(18)

Равенство (18) перепишем следующим образом:

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

Необходимым условием для выбора дробно-линейной функции в качестве искомой эмпирической формулы является соотношение :

.

3.3.6. Логарифмическая функция. Пусть приближающая функция имеет вид:

Легко видеть, что для перехода к линейной функции достаточно сделать подстановку lnx=u . Отсюда следует, что для нахождения значений a и b нужно прологарифмировать значения аргумента в исходной таблице (1) и, рассматривая полученные значения в совокупности с исходными значениями функции, найти для полученной таким образом новой таблицы приближающую функцию в виде линейной. Коэффициенты a и b найденной функции подставить в формулу (19).

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

.

3.3.7. Гипербола. Если точечный график, построенный по таблице (1), дает ветвь гиперболы, приближающую функцию можно искать в виде.

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

Наименование данного метода происходит от латинского слова proxima – «ближайшая» Именно приближение путем упрощения и сглаживания известных показателей, выстраивание их в тенденцию и является его основой. Но данный метод можно использовать не только для прогнозирования, но и для исследования уже имеющихся результатов. Ведь аппроксимация является, по сути, упрощением исходных данных, а упрощенный вариант исследовать легче.

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

Но она может быть построена с применением одного из пяти видов аппроксимации:

  • Линейной;
  • Экспоненциальной;
  • Логарифмической;
  • Полиномиальной;
  • Степенной.

Рассмотрим каждый из вариантов более подробно в отдельности.

Способ 1: линейное сглаживание

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

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


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

В конкретно нашем случае формула принимает такой вид:

y=-0,1156x+72,255

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

Способ 2: экспоненциальная аппроксимация

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


Общий вид функции сглаживания при этом такой:

где e – это основание натурального логарифма.

В конкретно нашем случае формула приняла следующую форму:

y=6282,7*e^(-0,012*x)

Способ 3: логарифмическое сглаживание

Теперь настала очередь рассмотреть метод логарифмической аппроксимации.


В общем виде формула сглаживания выглядит так:

где ln – это величина натурального логарифма. Отсюда и наименование метода.

В нашем случае формула принимает следующий вид:

y=-62,81ln(x)+404,96

Способ 4: полиномиальное сглаживание

Настал черед рассмотреть метод полиномиального сглаживания.


Формула, которая описывает данный тип сглаживания, приняла следующий вид:

y=8E-08x^6-0,0003x^5+0,3725x^4-269,33x^3+109525x^2-2E+07x+2E+09

Способ 5: степенное сглаживание

В завершении рассмотрим метод степенной аппроксимации в Excel.


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

Общая формула, описывающая данный метод имеет такой вид:

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

y = 6E+18x^(-6,512)

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

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

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

Введение

Когда обрабатывается выборка экспериментальных данных, то они, чаще всего, представляются в виде массива, состоящего из пар чисел (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 .

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

Часто необходимо иметь аналитические выражения для вольт - амперных характеристик нелинейных элементов. Эти выражения могут лишь приближенно представлять ВАХ, поскольку физиче­ские закономерности, которым подчиняются зависимости между напряжениями и токами в нелинейных при­борах, не выражаются аналитически.

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

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

Будем считать, что ВАХ нелинейного элемента i = fun(u) задана графически, т. е. определена в каждой точке интервала U min и U max , и представляет собой однозначную непрерывную функцию переменной и. Тогда задача аналитического представления вольт-амперной характеристики может рассматриваться как задача ап­проксимации заданной функции ξ(х) выбранной аппроксимирую­щей функцией f (x ).

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

Δ= max‌‌│ f (x )- ξ(x )│

Часто критерием близости выбирается среднее квадратичное значение разности между указанными функциями в интервале ап­проксимации.

Иногда под близостью двух функций f(x )и ξ(x ) понимают сов­падение в заданной точке

x = Хо самих функций и п + 1 их произ­водных.

Наиболее распространенным способом приближения аналитической функции к заданной является интерполяция (метод выбран­ных точек), когда добиваются совпадения функций f(x )и ξ(x ) в выбранных точках (узлах интерполяции) X k , k = 0, 1, 2, ..., п.

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

В задачах аппроксимации вольт-амперных характеристик элек­тронных и полупроводниковых приборов стремиться к высокой точности их воспроизведения, как правило, нет необходимости ввиду значительного разброса характеристик приборов от образца к образцу и существенного влияния на них дестабилизирующих факторов, например, температуры в полупроводниковых приборах. В большинстве случаев достаточно «правильно» воспроизвести об­щий усредненный характер зависимости i = f (u )в пределах ее ра­бочего интервала. Для того чтобы была возможность аналитически рассчитывать цепи с нелинейными элементами, необходимо иметь математические выражения для характеристик элементов. Сами эти характеристики обычно являются экспериментальными, т.е. полученными в результате измерений соответствующих элементов, а затем на этой основе формируются справочные (типовые) данные. Процедуру математического описания некоторой заданной функции в математике называют аппроксимацией этой функции. Существует целый ряд типов аппроксимации: по выбранным точкам, по Тейлору, по Чебышеву и др. В конечном итоге необходимо получить математическое выражение, которое с какими-то заданными требованиями удовлетворяло исходной, аппроксимирующей функции.

Рассмотрим простейший способ: метод выбранных точек или узлов интерполяции степенным полиномом.

Необходимо определить коэффициенты полинома. Для этого выбирается (n+1) точек на заданной функции и составляется система уравнений:

Из этой системы находятся коэффициенты а 0 , а 1 , а 2 , …, а n .

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

Можно использовать экспоненциальный полином:

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

Аппроксимация по Батерворту : выбирается простейший полином:

В этом случае можно определить максимальное отклонение ε на краях диапазона.

Аппроксимация по Чебышеву : является степенной, там устанавливается совпадение в нескольких точках и минимизируется максимальное отклонение аппроксимирующей функции от исходной. В теории аппроксимации функций доказывается, что наиболь­шее по абсолютной величине отклонение полинома f (x )степени п от непрерывной функции ξ(х ) будет минимально возможным, если в интервале приближения а х b разность

f(x ) - ξ(х ) не мень­ше, чем п + 2 раза принимает свои последовательно чередующиеся предельные наибольшие f (x ) - ξ(х ) = L > 0 и наименьшие f (x ) - ξ(х ) = -L значения (критерий Чебышева).

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

Λ= 1/b-a∫ a [f (x )- ξ(x )] 2 dx = min . (7)

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

дΛ ∕дa 0 =0; дΛ ∕дa 1 =0; дΛ ∕дa 2 =0, . . . , дΛ ∕дa n =0. (8)

Доказано, что и эта система уравнений имеет единственное ре­шение. В простейших случаях оно находится аналитически, а в общем случае - численно.

Чебышев установил, что должно для максимальных отклонений выполняться равенство:

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

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

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

Подобная аппроксимация вольт - амперных характеристик дает в большинстве случаев вполне удовлетворительные по точности результаты анализа колебаний в нели­нейной резистивной цепи при «небольших» по величине воздействи­ях на нелинейный элемент, т. е. ко­гда мгновенные значения токов в нелинейном элементе изменяются в предельно допустимых границах от I = 0 до I = I мах

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

При аппроксимации решаются следующие проблемы:

1. Определение области аппроксимации, которая зависит от диапазона изменения входных сигналов.

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

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

;

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

;

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

Существуют различные способы аппроксимации. Наиболее часто для аппроксимации ВАХ применяют аппроксимацию степенным полиномом и кусочно-линейную аппроксимацию, реже – аппроксимацию с использованием показательных, тригонометрических или специальных функций (Бесселя, Эрмита и др.).

7.2.1. Аппроксимация степенным полиномом

Нелинейную вольт-амперную характеристику в окрестности рабочей точки представляют конечным числом слагаемых ряда Тейлора:

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

Пример.

Аппроксимировать представленную на рис. 7.1,а ВАХ в окрестности рабочей точки степенным полиномом второй степени, т.е. полиномом вида

Выберем область аппроксимации от 0,2 В до 0,6 В. Для решения задачи необходимо определить три коэффициента . Поэтому ограничимся тремя узловыми точками (в середине и на границах выбранного диапазона), для которых составляем систему трех уравнений:


Рис. 7.1. Аппроксимация ВАХ транзистора

Решая систему уравнений, определяем , , . Следовательно, аналитическое выражение, описывающее график ВАХ, имеет вид

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

Если ВАХ задана не графически, а какой-либо аналитической функцией и возникла необходимость представить ее степенным полиномом, то коэффициенты вычисляются по известной формуле

.

Нетрудно заметить, что представляет собой крутизну ВАХ в рабочей точке. Значение крутизны существенно зависит от положения рабочей точки.

В некоторых случаях удобнее характеристику представлять рядом Маклорена

7.2.2. Кусочно-линейная аппроксимация

Если входной сигнал изменяется по величине в больших пределах, то ВАХ можно аппроксимировать ломаной линией, состоящей из нескольких отрезков прямых. На рис. 7.1,б показана ВАХ транзистора, аппроксимированная тремя отрезками прямых.

Математическая формула аппроксимированной ВАХ

Данный вид аппроксимации связан с двумя важными параметрами нелинейного элемента: напряжением начала характеристики и ее крутизной . Для увеличения точности аппроксимации увеличивают количество отрезков линий. Однако это усложняет математическую формулу ВАХ.

 

Возможно, будет полезно почитать: