что такое аппроксимация функции
Электронная библиотека
Аппроксимацией (приближением) функции называется нахождение такой функции (аппроксимирующей функции), которая была бы близка заданной. Критерии близости функций и могут быть различные.
Основная задача аппроксимации — построение приближенной (аппроксимирующей) функции, в целом наиболее близко проходящей около данных точек или около данной непрерывной функции. Такая задача возникает при наличии погрешности в исходных данных (в этом случае нецелесообразно проводить функцию точно через все точки, как в интерполяций) или при желании получить упрощенное математическое описание сложной или неизвестной зависимости.
Рис. 3.6 Метод Лагранжа
Близость исходной и аппроксимирующей функций определяется числовой мерой
— критерием аппроксимации (близости). Наибольшее распространение получил квадратичный критерий, равный сумме квадратов отклонений расчетных значений от «экспериментальных» (т.е. заданных), — критерий близости в заданных точках:
Здесь уi — заданные табличные значения функции; уi расч — расчетные значения по аппроксимирующей функции; bi — весовые коэффициенты, учитывающие относительную важность i-и точки (увеличение b,. приводит при стремлении уменьшить R к уменьшению, прежде всего отклонения в i—й точке, так как это отклонение искусственно увеличено за счет относительно большого значения весового коэффициента).
Квадратичный критерий обладает рядом «хороших» свойств, таких, как дифференцируемость, обеспечение единственного решения задачи аппроксимации при полиномиальных аппроксимирующих функциях.
Другим распространенным критерием близости является следующий:
Этот критерий менее распространен в связи с аналитическими и вычислительными трудностями, связанными с отсутствием гладкости функции и ее дифференцируемости.
Выделяют две основные задачи:
1) получение аппроксимирующей функции, описывающей имеющиеся данные, с погрешностью не хуже заданной;
2) получение аппроксимирующей функции заданной структуры с наилучшей возможной погрешностью.
Чаще всего первая задача сводится ко второй перебором различных аппроксимирующих функций и последующим выбором наилучшей.
Метод наименьших квадратов
Метод базируется на применении в качестве критерия близости суммы квадратов отклонений заданных и расчетных значений. При заданной структуре аппроксимирующей функции уi расч (х) необходимо таким образом подобрать параметры этой функции, чтобы получить наименьшее значение критерия близости, т.е. наилучшую аппроксимацию. Рассмотрим путь нахождения этих параметров на примере полиномиальной функции одной переменной:
Запишем выражение критерия аппроксимации при bi =1 (i=1, 2,…, n) для полиномиального уi расч (х):
Искомые переменные аj можно найти из необходимого условия минимума R по этим переменным, т.е. dR / dар = 0 (для р =0, 1,2,…,k). Продифференцируем по ар (р — текущий индекс):
После очевидных преобразований (сокращение на два, раскрытие скобок, изменение порядка суммирования) получим
Перепишем последние равенства
Получилась система n+1 уравнений с таким же количеством неизвестных аj, причем линейная относительно этих переменных. Эта система называется системой нормальных уравнений. Из ее решения находятся параметры аj аппроксимирующей функции, обеспечивающие minR, т.е. наилучшее возможное квадратичное приближение. Зная коэффициенты, можно (если нужно) вычислить и величину R (например, для сравнения различных аппроксимирующих функций). Следует помнить, что при изменении даже одного значения исходных данных (или пары значений хi, уi, или одного из них) все коэффициенты изменят в общем случае свои значения, так как они полностью определяются исходными данными. Поэтому при повторении аппроксимации с несколько изменившимися данными (например, вследствие погрешностей измерения, помех, влияния неучтенных факторов и т.п.) получится другая аппроксимирующая функция, отличающаяся коэффициентами. Обратим внимание на то, что коэффициенты аj полинома находятся из решения системы уравнений, т.е. они связаны между собой. Это приводит к тому, что если какой-то коэффициент вследствие его малости захочется отбросить, придется пересчитывать заново оставшиеся. Можно рассчитать количественные оценки тесноты связи коэффициентов. Существует специальная теория планирования экспериментов, которая
позволяет обосновать и рассчитать значения хi, используемые для аппроксимации, чтобы получить заданные свойства коэффициентов (несвязанность, минимальная дисперсия коэффициентов и т.д.) или аппроксимирующей функции (равная точность описания реальной зависимости в различных направлениях, минимальная дисперсия предсказания значения функции и т.д.).
Рис. 3.7 Влияние степени аппроксимирующего полинома М на точность аппроксимации
В случае постановки другой задачи — найти аппроксимирующую функцию, обеспечивающую погрешность не хуже заданной, — необходимо подбирать и структуру этой функции. Эта задача значительно сложнее предыдущей (найти параметры аппроксимирующей функции заданной структуры, обеспечивающей наилучшую возможную погрешность) и решается в основном путем перебора различных функций и сравнения получающихся мер близости. Для примера на рис. 3.7 приведены для визуального сравнения исходная и аппроксимирующие функции с различной степенью полинома, т.е. функции с различной структурой. Не следует забывать, что с повышением точности аппроксимации растет и сложность функции (при полиномиальных аппроксимирующих функциях), что делает ее менее удобной при использовании.
Рассмотрим решение задачи аппроксимации и интерполяции с шумом в
программе MathCAD (рисунок 3.8).
4. Аппроксимация
В главе 3 была рассмотрена задача интерполяции, которая заключается в определении промежуточных значений функции по известному дискретному набору значений функции. Аппроксимация – это определение параметров аналитической функции, описывающей набор точек, полученных в результате эксперимента.
4.1. Задача аппроксимации
Предположим, имеется набор из n точек (xi yi), полученных в результате эксперимента, и необходимо аппроксимировать (описать) эти данные некоторой функцией f(x). Если исходные данные были получены с высокой точностью и количество точек не очень большое, то можно аппроксимировать данные функцией, которая проходит через все узловые точки. На практике экспериментально полученные данные всегда обладают погрешностью, часто довольно значительной, тогда при аппроксимации можно провести кривую таким образом, чтобы ее отклонение от всех точек было минимальным, но при этом она не обязательно будет проходить через каждую точку (рис.4.1). Такая аппроксимация сгладит погрешность первоначальных данных.
|
|
Рис.4.1. Задача аппроксимации
Представим аппроксимирующую функцию в виде суммы произведений коэффициентов с0, с1, …, сm и базисных функций g0, g1, …, gm:
,
(4. 1)
Выбор базисных функций, то есть зависимости, которой можно описать реальные данные – это отдельная задача, часто решаемая методом проб и последовательных приближений. В этом случае исходные данные, представленные в графической форме (семейства точек или кривые), сопоставляются с семейством графиков ряда типовых функций, используемых обычно для целей аппроксимации. Однако во многих случаях базисная функция известна, и требуется только найти ее коэффициенты.
Во многих случаях в качестве базисной функции выбирают степенной полином:
,
(4.2)
4.2. Система линейных алгебраических уравнений (СЛАУ)
Для определения неизвестных коэффициентов составим систему линейных уравнений. В общем случае система линейных алгебраических уравнений (СЛАУ) – это система из m линейных алгебраических уравнений с n неизвестными:
(4. 3)
Систему линейных алгебраических уравнений можно записать в матричной форме:
(4.4)
(4.5)
где A – матрица системы, X – столбец неизвестных, B – столбец свободных членов:
,
,
(4.6)
Решение системы линейных алгебраических уравнений сводиться к нахождению значений элементов столбца неизвестных X (корней системы) по известным A и B. Необходимым и достаточным условием существования единственного решения системы линейных алгебраических уравнений является условие , то есть определитель матрицы A не равен нулю. В случае равенства нулю определителя матрица A называется вырожденной, и при этом СЛАУ либо не имеет решения, либо имеет бесчисленное множество решений.
Если матрица системы квадратная, и ее определитель не равен нулю, систему можно решить одним из следующих методов.
Метод Крамера
При небольшой размерности системы m для решения часто используют метод Крамера:
(4.7)
где – определитель матрицы системы,
– определитель матрицы системы, где вместо i-го столбца стоит столбец правых частей.
Для больших матриц решение методом Крамера является слишком долгим и трудоемким.
Метод Гаусса
Наиболее известным и популярным прямым методом решения СЛАУ является метод Гаусса. Этот метод заключается в последовательном исключении неизвестных, когда система уравнений (матрица A) приводится к равносильной системе треугольного вида (прямой ход метода Гаусса). Затем из полученной треугольной матрицы последовательно, начиная с последних по номеру, находятся все переменные системы (обратный ход метода Гаусса).
Метод обратной матрицы
Если , то существует обратная матрица
. Тогда решение СЛАУ можно записать в виде:
(4.8)
То есть, решение СЛАУ можно свести к умножению известной обратной матрицы на вектор правых частей. Нахождение обратной матрицы – трудоемкая операция, однако, при наличии вычислительных библиотек, предоставляющих вычисление обратной матрицы (иногда несколькими способами), такой вариант может быть менее сложен и более эффективен для самостоятельной реализации.
4.3. Пример использование СЛАУ для решения задачи аппроксимации
Систему линейных алгебраических уравнений можно применить и для решения задачи аппроксимации. Например, аппроксимируем n имеющихся точек (xi yi) параболой:
(4.9)
Тогда в столбец неизвестных можно записать искомые коэффициенты с0, с1, с2, в столбец свободных членов – известные значения y0,…, yn, а в матрицу системы – вычисленные значения для каждого yi при каждом коэффициенте с0, с1, с2:
,
,
(4.10)
4.4. Метод наименьших квадратов (МНК)
Для переопределенных СЛАУ (количество уравнений больше количества неизвестных m > n) система не имеет единственного точного решения, но можно найти “оптимальный” вектор X. В этом случаем для решения СЛАУ используется метод наименьших квадратов (МНК). При помощи этого метода коэффициенты аппроксимирующей функции вычисляются таким образом, чтобы среднеквадратичное отклонение экспериментальных данных от найденной аппроксимирующей функции (сумма квадратов отклонений между векторами и
уравнения (4.5)) было наименьшим:
, где
(4.11)
Для вывода решения системы линейных уравнений методом наименьших квадратов перепишем выражение (4.5), с добавлением вектора погрешности :
(4.12)
(4.13)
Теперь задача сводится к минимизации квадрата нормы вектора погрешности :
(4.14)
(4.15)
(4.16)
Для нахождения минимума необходимо вычислить частную производную по X уравнения (4.16) и приравнять ее к 0:
(4.17)
Отсюда находим значение вектора X:
(4.18)
Таким образом, метод наименьших квадратов сводится к нахождению обратной матрицы.
Взвешенный метод наименьших квадратов
Если в полученных экспериментально данных разные измерения (точки) имеют разные погрешности, можно использовать взвешенный метод наименьших квадратов. Во взвешенном МНК разные уравнения системы (разные точки экспериментально полученных данных) получают разный вес wi, обычно пропорциональный погрешности каждой точки . Взвешенный метод наименьших квадратов можно записать в матричном виде:
(4.19)
где W — диагональная матрица весов:
(4.20)
Линейная аппроксимация
При обработке экспериментальных данных часто возникает необходимость аппроксимировать их линейной функцией.
Наиболее часто встречающим видом точечной аппроксимации является интерполяция – нахождение промежуточных значений величины по имеющемуся дискретному набору известных значений.
В случае если между различными узлами полиномы различны, говорят о кусочной или локальной интерполяции.
Найдя интерполяционный полином, мы можем вычислить значения функции между узлами, а также определить значение функции даже за пределами заданного интервала (провести экстраполяцию ).
Аппроксимация линейной функцией
Любая линейная функция может быть записана уравнением
Аппроксимация заключается в отыскании коэффициентов a и b уравнения таких, чтобы все экспериментальные точки лежали наиболее близко к аппроксимирующей прямой.
С этой целью чаще всего используется метод наименьших квадратов (МНК), суть которого заключается в следующем: сумма квадратов отклонений значения точки от аппроксимирующей точки принимает минимальное значение:
Решение поставленной задачи сводится к нахождению экстремума указанной функции двух переменных. С этой целью находим частные производные функции функции по коэффициентам a и b и приравниваем их к нулю.
Решаем полученную систему уравнений
Определяем значения коэффициентов
Для вычисления коэффициентов необходимо найти следующие составляющие:
Тогда значения коэффициентов будут определены как
Пример реализации
Для примера реализации воспользуемся набором значений, полученных в соответствии с уравнением прямой
y = 8 · x — 3
Рассчитаем указанные коэффициенты по методу наименьших квадратов.
Результат сохраняем в форме двумерного массива, состоящего из 2 столбцов.
При следующем запуске программы добавим случайную составляющую к указанному набору значений и снова рассчитаем коэффициенты.
Построение графика функции
Для наглядности построим график функции, полученный аппроксимацией по методу наименьших квадратов. Подробнее о построении графика функции описано здесь.
Аппроксимация с фиксированной точкой пересечения с осью y
В случае если в задаче заранее известна точка пересечения искомой прямой с осью y, в решении задачи останется только одна частная производная для вычисления коэффициента a.
В этом случае текст программы для поиска коэффициента угла наклона аппроксимирующей прямой будет следующий (имя функции getApprox() заменено на getApproxA() во избежание путаницы).
Вычислительная математика копия 1
Аппроксимация – замена одной функции f(x) другой, похожей функцией Q(x). Например, функцию, полученную экспериментально в виде таблицы или графика, надо записать в аналитическом виде, либо функцию, достаточно сложную нужно заменить похожей, но более простой.
Простейший способ аппроксимации – замена функции f(x) алгебраическим полиномом
Необходимо так подобрать коэффициенты в формуле (2.1), чтобы Q(x, cj ) как можно меньше отличалась от f ( x ).
2.1 Меры погрешности аппроксимации
1. Равномерное приближение
a) точечная аппроксимация
Подберем коэффициенты сj таким образом, чтобы R было минимальным:
Это есть минимаксный подход, который осуществляет равномерное приближение функций.
b) интегральная аппроксимация
Критерий (2.3) перепишется в виде:
2. Метод наименьших модулей
a) точечная аппроксимация
b) интегральная аппроксимация
3. Метод наименьших квадратов
Чаще всего при точечной аппроксимации используют меру
а коэффициенты с j ищут из условия
Это точечная квадратичная аппроксимация.
При интегральной аппроксимации
Описанный подход к задаче аппроксимации называется методом наименьших квадратов. Условия (2.9) и (2.10) геометрически означают: из всех кривых заданного вида выбирают ту, у которой сумма площадей квадратов отклонений – наименьшая.
2.2 Нахождение коэффициентов cj при точечной аппроксимации методом наименьших квадратов
Пример: построить аппроксимирующую параболу для функции