Среднеквадратичное приближение функций
Часто значения интерполируемой функции у, у 2 , ..., у„ определяются из эксперимента с некоторыми ошибками, поэтому пользоваться точным приближением в узлах интерполяции неразумно. В этом случае более естественно приближать функцию не по точкам, а в среднем, т. е. в одной из норм L p .
Пространство 1 р - множество функций д(х), определенных на отрезке [а,Ь] и интегрируемых по модулю с р-й степенью, если определена норма
Сходимость в такой норме называется сходимостью в среднем. Пространство 1,2 называется гильбертовым, а сходимость в нем - среднеквадратичной.
Пусть заданы функция Дх) и множество функций ф(х) из некоторого линейного нормированного пространства. В контексте проблемы интерполирования, аппроксимации и приближения можно сформулировать следующие две задачи.
Первая задача - это аппроксимация с заданной точностью, т. е. по заданному е найти такую ф(х), чтобы выполнялось неравенство |[Дх) - ф(х)|| г..
Вторая задача - это поиск наилучшего приближения, т. е. поиск такой функции ф*(х), которая удовлетворяет соотношению:
Определим без доказательства достаточное условие существования наи- лучшего приближения. Для этого в линейном пространстве функций выберем множество, параметризованное выражением
где набор функций ф[(х), ..., ф„(х) будем считать линейно независимым.
Можно показать , что в любом нормированном пространстве при линейной аппроксимации (2.16) наилучшее приближение существует, хотя нс во всяком линейном пространстве оно единственно.
Рассмотрим гильбертово пространство ЬгСр) действительных функций, интегрируемых с квадратом с весом р(х) > 0 на [ , где скалярное произведение (g,h ) определено по
формуле:
Подставляя в условие наилучшего приближения линейную комбинацию (2.16), находим
Приравнивая к нулю производные по коэффициентам (Д, k = 1, ..., П, получим систему линейных уравнений
Определитель системы уравнений (2.17) называется определителем Гра- ма. Определитель Грама отличен от нуля, поскольку считается, что система функций ф[(х), ..., ф„(х) линейно независима.
Таким образом, наилучшее приближение существует и единственно. Для его получения необходимо решить систему уравнений (2.17). Если система функций ф1(х), ..., ф„(х) ортогонализирована, т. е. (ф/,ф,) = 5у, где 5, = 1, 8у = О, Щ, ij = 1, ..., п, то система уравнений может быть решена в виде:
Найденные согласно (2.18) коэффициенты Q, ..., й п называются коэффициентами обобщенного ряда Фурье.
Если набор функций ф t (X), ..., ф„(х),... образует полную систему, то в силу равенства Парсеваля при П -» со норма погрешности неограниченно убывает. Это означает, что наилучшсс приближение среднеквадратично сходится к Дх) с любой заданной точностью.
Отметим, что поиск коэффициентов наилучшего приближения с помощью решения системы уравнений (2.17) практически нсреализуем, поскольку с ростом порядка матрицы Грама ее определитель быстро стремится к нулю, и матрица становится плохо обусловленной. Решение системы линейных уравнений с такой матрицей приведет к значительной потере точности. Проверим это.
Пусть в качестве системы функций ф„ i =1, ..., П, выбираются степени, т. е. ф* = X 1 ", 1 = 1, ..., п, тогда, полагая в качестве отрезка аппроксимации отрезок , находим матрицу Грама
Матрицу Грама вида (2.19) называют еще матрицей Гильберта. Это классический пример так называемой плохо обусловленной матрицы.
С помощью MATLAB рассчитаем определитель матрицы Гильберта в форме (2.19) для некоторых первых значений п. В листинге 2.5 приведен код соответствующей программы.
Листинг 23
%Вычисление определителя матриц Гильберта %очищаем рабочую область clear all;
%выберем максимальное значение порядка %матрицы Гильберта птах =6;
%строим цикл для формирования матриц %Гильберта и вычисления их определителей
for n = 1: птах d(n)=det(hi I b(п)); end
%выводим значения определителей %матриц Гильберта
f о г та t short end
После отработки кода листинга 2.5, в командном окне MATLAB должны появиться значения детерминантов матриц Гильберта для первых шести матриц. В таблице ниже приведены соответствующие численные значения порядков матриц (п) и их определителей (d). Из таблицы отчетливо видно, сколь быстро определитель матрицы Гильберта стремится к нулю при росте порядка и, уже начиная с порядков 5, 6, становится неприемлемо малым.
Таблица значений определителя матриц Гильберта
Численная ортогонализация системы функций ф, i = 1, ..., П также приводит к заметной потере точности, поэтому чтобы учитывать большое число членов в разложении (2.16), необходимо либо проводить ортогонализацию аналитически, т. е. точно, либо пользоваться уже готовой системой ортогональных функций.
Если при интерполяции обычно используют в качестве системы базисных функций степени, то при аппроксимации в среднем в качестве базисных функций выбирают многочлены, ортогональные с заданным весом. Наиболее употребительными из них являются многочлены Якоби, частным случаем которых являются многочлены Лежандра и Чебышева. Используют также полиномы Лагсрра и Эрмита. Более подробно об этих полиномах можно узнать, например, в приложении Ортогональные полиномы книги .
На днях нужно было написать программу, вычисляющую среднеквадратичное приближение функции, заданной таблично, по степенному базису - методом наименьших квадратов. Сразу оговорюсь, что тригонометрический базис я не рассматривал и в этой статье его брать не буду. В конце статьи можно найти исходник программы на C#.
Теория
Пусть значения приближаемой функции f(x) заданы в N+1 узлах f(x 0), ..., f(x N) . Аппроксимирующую функцию будем выбирать из некоторого параметрического семейства F(x, c) , где c = (c 0 , ..., c n) T - вектор параметров, N > n .Принципиальным отличием задачи среднеквадратичного приближения от задачи интерполяции является то, что число узлов превышает число параметров. В данном случае практически всегда не найдется такого вектора параметров, для которого значения аппроксимирующей функции совпадали бы со значениями аппроксимируемой функции во всех узлах.
В этом случае задача аппроксимации ставится как задача поиска такого вектора параметров c = (c 0 , ..., c n) T , при котором значения аппроксимирующей функции как можно меньше отклонялись бы от значений аппроксимируемой функции F(x, c) в совокупности всех узлов.
Графически задачу можно представить так
Запишем критерий среднеквадратичного приближения для метода наименьших квадратов:
J(c) = √ (Σ i=0 N 2) →min
Подкоренное выражение представляет собой квадратичную функцию относительно коэффициентов аппроксимирующего многочлена. Она непрерывна и дифференцируема по c 0 , ..., c n . Очевидно, что ее минимум находится в точке, где все частные производные равны нулю. Приравнивая к нулю частные производные, получим систему линейных алгебраических уравнений относительно неизвестных (искомых) коэффициентов многочлена наилучшего приближения.
Метод наименьших квадратов может быть применен для различных параметрических функций, но часто в инженерной практике в качестве аппроксимирующей функции используются многочлены по какому-либо линейно независимому базису {φ k
(x), k=0,...,n
}:
F(x, c)
= Σ k=0 n [c k φ k
(x)
]
.
В этом случае система линейных алгебраических уравнений для определения коэффициентов будет иметь вполне определенный вид:
…
Чтобы эта система имела единственное решение необходимо и достаточно, чтобы определитель матрицы А (определитель Грама) был отличен от нуля. Для того, чтобы система имела единственное решение необходимо и достаточно чтобы система базисных функций φ k (x), k=0,...,n была линейно независимой на множестве узлов аппроксимации.
В этой статье рассматривается среднеквадратичное приближение многочленами по степенному базису {φ k (x) = x k , k=0,...,n }.
Пример
А теперь перейдем к примеру. Требуется вывести эмпирическую формулу для приведенной табличной зависимости f(х), используя метод наименьших квадратов.x | 0,75 | 1,50 | 2,25 | 3,00 | 3,75 |
y | 2,50 | 1,20 | 1,12 | 2,25 | 4,28 |
Примем в качестве аппроксимирующей функцию
y = F(x) = c 0 + c 1 x + c 2 x 2 , то есть, n=2, N=4
Система уравнений для определения коэффициентов:
a 00 c 0 + a 01 c 1 +… + a 0n c n = b 0
a 10 c 0 + a 11 c 1 +… + a 1n c n = b 1
…
a n0 c 0 + a n1 c 1 +… + a nn c n = b n
a kj = Σ i=0 N [φ k (x i)φ j (x i) ], b j = Σ i=0 N
Коэффициенты вычисляются по формулам:
a 00 = N + 1 = 5, a 01 = Σ i=0 N x i = 11,25, a 02 = Σ i=0 N x i 2 = 30,94
a 10 = Σ i=0 N x i = 11,25, a 11 = Σ i=0 N x i 2 = 30,94, a 12 = Σ i=0 N x i 3 = 94,92
a 20 = Σ i=0 N x i 2 = 30,94, a 21 = Σ i=0 N x i 3 = 94,92, a 22 = Σ i=0 N x i 4 = 303,76
b 0 = Σ i=0 N y i = 11,25, b 1 = Σ i=0 N x i y i = 29, b 2 = Σ i=0 N x i 2 y i = 90,21
Решаем систему уравнений и получаем такие значения коэффициентов:
c 0 = 4,822, c 1 = -3,882, c 2 = 0,999
Таким образом
y = 4,8 - 3,9x + x 2
График получившейся функции
Релизация на C#
А теперь перейдем к тому, как написать код, который бы строил такую матрицу. А тут, оказывается, все совсем просто:private double[,] MakeSystem(double[,] xyTable, int basis) { double[,] matrix = new double; for (int i = 0; i < basis; i++) { for (int j = 0; j < basis; j++) { matrix = 0; } } for (int i = 0; i < basis; i++) { for (int j = 0; j < basis; j++) { double sumA = 0, sumB = 0; for (int k = 0; k < xyTable.Length / 2; k++) { sumA += Math.Pow(xyTable, i) * Math.Pow(xyTable, j); sumB += xyTable * Math.Pow(xyTable, i); } matrix = sumA; matrix = sumB; } } return matrix; }
На входе функция получает таблицу значений функций - матрицу, в первом столбце которой содержатся значения x, во втором, соответственно, y, а также значение степенного базиса.
Сначала выделяется память под матрицу, в которую будут записаны коэффициенты для решения системы линейных уравнений. Затем, собственно, составляем матрицу - в sumA записываются значения коэффициентов aij, в sumB - bi, все по формуле, указанной выше в теоретической части.
Для решения составленной системы линейных алгебраических уравнений в моей программе используется метод Гаусса. Архив с проектом можно скачать
В предыдущей главе подробно рассмотрен один из самых распространенных способов приближения функций – интерполирование. Но этот способ не единственный. При решении разнообразных прикладных задач и построении вычислительных схем нередко используют и другие способы. В этой главе мы рассмотрим способы получения среднеквадратических приближений. Название приближений связано с метрическими пространствами, в которых рассматривается задача приближения функции. В главе 1 мы ввели понятия «метрическое линейное нормированное пространство» и «метрическое евклидово пространство» и увидели, что погрешность приближения определяется метрикой пространства, в котором рассматривается задача приближения. В разных пространствах понятие погрешности имеет разный смысл. Рассматривая погрешность интерполяции, мы не акцентировали на этом внимание. А в этой главе нам придется этим вопросом заняться более подробно.
5.1. Приближения тригонометрическими многочленами и многочленами Лежандра Пространство l2
Рассмотрим
множество функций
,
интегрируемых с квадратом по Лебегу на
отрезке
,
то есть таких, что должен существовать
интеграл
.
Поскольку
выполняется очевидное неравенство
,
из интегрируемости с квадратом функций
и
должна
следовать и интегрируемость с квадратом
любой их линейной комбинации
,
(где
и
любые вещественные числа), а также
интегрируемость произведения
.
Введем
на множестве функций, интегрируемых с
квадратом по Лебегу на отрезке
,
операцию скалярного произведения
. (5.1.1)
Из свойств интеграла следует, что введенная операция скалярного произведения обладает почти всеми свойствами скалярного произведения в евклидовом пространстве (см. параграф 1.10, с. 57):
Только первое свойство выполняется не до конца, то есть не будет выполнено условие.
В
самом деле, если
,
то отсюда не следует, что
на отрезке
.
Для того чтобы введенная операция
обладала этим свойством, в дальнейшем
договоримся не различать (считать
эквивалентными) функции
и
,
для которых
.
С
учетом последнего замечания, мы
убедились, что множество интегрируемых
с квадратом по Лебегу функций (точнее
множество классов эквивалентных функций)
образует евклидово пространство, в
котором определена операция скалярного
произведения по формуле (5.1.1). Это
пространство называют пространством
Лебега и обозначают
или короче.
Поскольку
всякое евклидово пространство
автоматически является и нормированным
и метрическим, пространство
также является
нормированным, и метрическим пространством.
Норма (величина элемента) и метрика
(расстояние между элементами) в нем
обычно вводятся стандартным способом:
(5.1.2)
(5.1.3)
Свойства (аксиомы)
нормы и метрики приведены в параграфе
1.10. Элементами пространства
являются не
функции, а классы эквивалентных функций.
Функции, принадлежащие одному классу,
могут иметь разные значения на любом
конечном или даже счетном подмножестве
.
Поэтому приближения в пространстве
определяются неоднозначно. Эта неприятная
особенность пространства
окупается удобствами использования
скалярного произведения.
ЛАБОРАТОРНАЯ РАБОТА
СРЕДНЕКВАДРАТИЧНОЕ ПРИБЛИЖЕНИЕ ТАБЛИЧНО ЗАДАННЫХ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ
Цель : Ознакомление студентов с основными методами интерполяции и аппроксимации таблично заданных функций. Закрепление на практике полученных знаний в области аппроксимации таких функций.
Задача : Научить студентов практическому применению полученных теоретических знаний при решении задач сглаживания результатов эксперимента полиномами, как при алгоритмизации таких задач, так и при их программировании.
ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
Интерполяция и аппроксимация
В практике часто встречается ситуация, когда некоторая функция f (x ) задана таблицей ее значений в отдельных точках х = x 0 , x 1 , … , x n [a , b ], например, дискретные показания прибора во времени, а следует вычислить функцию f (x ) в некоторых промежуточных точках. Эту задачу можно решить приближенно, заменяя функцию f (x ) более простой непрерывной функцией F (x ). Существуют два основных способа такой замены: интерполяция и аппроксимация .
Суть интерполирования – в построении такой легко вычисляемой функции F (x ), которая совпадает с функцией f (x ) в точках х = x 0 , x 1 , … , x n . Иными словами, график функции F (x ) в плоскости Оху должен проходить через точки х = x 0 , x 1 , … , x n , в которых задана функция f (x ). При этом, точки х = x 0 , x 1 , … , x n называют узлами интерполирования, а функцию F (x ) – интерполяционной. В качестве интерполяционной функции в большинстве случаев выбирают полиномы. Так, линейная интерполяция состоит в простом последовательном соединении точек (x 0 , f (x 0)), (x 1 , f (x 1)), … ,
(x n , f (x n )) отрезками прямых, т.е. в построении n полиномов первой степени. Значение функции f (x ) в точке х *, где х * (x i ,x i +1), i = 0, 1, … , n – 1, вычисляется в этом случае достаточно просто:
f (x *) = f (x i ) + · (х *–x i ).
Квадратичная интерполяция состоит в соединении последовательных троек узлов интерполяции параболами. Кубическая интерполяция – четверок – кубическими параболами и т.д. Интерполяционные полиномы степени (n – 1)есть гладкие функции, проходящие через все узлы интерполяции. При наложении дополнительных условий на соединение функции F (x )в точках (x 1 , f (x 1)), (x 2 , f (x 2)), … , (x n -1 , f (x n -1)) получим т.н. сплайн-интерполяцию. Для построения интерполяционных многочленов разработано множество методов: Ньютона, Стирлинга, Лагранжа и др.
Во многих случаях, имея значения функции в n + 1 узлах, удобно вместо интерполяционного многочлена находить полином степени m <n , который бы хорошо приближал (аппроксимировал) рассматриваемую функцию. При этом требование совпадения функций f (x ) иF (x ) в точках (x 0 , f (x 0)), (x 1 , f (x 1)), … , (x n , f (x n )) заменяется на требование минимизации суммарного отклонения между значениями функций f (x ) и F (x ) в точках х = x 0 , x 1 , … , x n .
Одним из основных методов построения аппроксимизационного полинома является метод наименьших квадратов, по которому требуется, чтобы сумма квадратов отклонений между значениями функции и значениями приближающей функции в узлах должна быть минимальной. Почему квадратов? Потому что сами отклонения между значениями функций может быть как положительными, так и отрицательными, и их сумма не дает истинного представления о различии между функциями за счет компенсации положительныхи отрицательных значений. Можно взять модули отклонений, однако положительные квадраты этих отклонений более удобны в работе.
Среднеквадратическое приближение таблично заданных функций
(метод наименьших квадратов)
Пусть в узлах x 0 , x 1 , … , x n имеем значения у 0 , у 1 , … , у n функции f (x ). Среди полиномов m -й степени (m <n )
P m (x ) = a 0 + a 1 x + a 2 x 2 + … + a m x m (1)
найти такой, который доставляет минимум выражению
S = .(2)
Неизвестными являются коэффициенты полинома (1). Сумма (2) представляет собой квадратичную форму от этих коэффициентов. Кроме того, формула (2) показывает, что функция S = S (a 0 , a 1 , … , a m ) не может принимать отрицательных значений. Следовательно, минимум функции S существует.
Применяя необходимые условия экстремума функции S = S (a 0 , a 1 , … , a m ), получаем систему линейных алгебраических уравнений для определения коэффициентов a 0 , a 1 , … , a m :
, (k = 0, 1, 2, … , m )(3)
Полагая с p = , d p = , запишем систему (3) в матричном виде
С a = d , (4)
С = – матрица системы, а = {a 0 , a 1 , … , a m } T – вектор неизвестных, d = {d 0 , d 1 , … , d m } T – вектор правых частей системы.
Если среди узлов x 0 , x 1 , … , x n нет совпадающих и m ≤ n , то система (4) имеет единственное решение a 0 = ,a 1 = , … , a m = . Тогда полином
= + x + x 2 + … + x m
является единственным полиномом степени m , обладающим минимальным квадратичным отклонением S * = S min.
Погрешность среднеквадратического приближения функции характеризуется величиной δ = .
Самый простой и наиболее часто используемый вид аппроксимации (среднеквадратического приближения) функции – линейная. Приближение данных (x i , y i ) осуществляется линейной функцией y (х )= ax + b . На координатной плоскости (x , y ) линейная функция, как известно, представляется прямой линией.
Пример . Сгладить систему точек прямойy = ax + b .
х | –1 | 0 | 1 | 2 | 3 | 4 |
у | 0 | 2 | 3 | 3,5 | 3 | 4,5 |
Строим рабочую таблицу .
Квадратичное приближение
Если точечный график похож на параболу, то эмпирическую формулу ищем в виде квадратного трехчлена. Предположим, что приближающаяся кривая похожа на параболу , симметричную относительно оси ординат. Тогда парабола примет более простой вид
(4.4) |
Возьмем полуквадратичную систему координат. Это такая система координат, у которой по оси абсцисс шкала квадратичная, т. е. значения делений откладываются согласно выражению , здесь m – масштаб в каких-либо единицах длины, например, в см.
По оси ординат откладывается линейная шкала в соответствии с выражением
Нанесем на эту систему координат опытные точки. Если точки этого графика располагаются приблизительно по прямой, то это подтверждает наше предположение, что зависимость y от x хорошо выражается функцией вида (4.4). Для отыскания коэффициентов a и b можно теперь применить один из рассмотренных выше способов: способ натянутой нити, способ выбранных точек или способ средней.
Способ натянутой нити применяется также, как и для линейной функции.
Способ выбранных точек можем применить так. На прямолинейном графике возьмем две точки (далекие друг от друга). Координаты этих точек обозначим и (x, y ). Тогда можем записать
Из приведенной системы двух уравнений найдем a и b и подставим их в формулу (4.4) и получим окончательный вид эмпирической формулы.
Можно и не строить прямолинейного графика, а взять числа , (x,y ) прямо из таблицы. Однако полученная при таком выборе точек формула будет менее точна.
Процесс преобразования криволинейного графика в прямолинейный называется выравниванием.
Способ средней . Он применяется аналогично как в случае с линейной зависимостью. Разбиваем опытные точки на две группы с одинаковым (или почти одинаковым) числом точек в каждой группе. Равенство (4.4) перепишем так
(4.5)
Находим сумму невязок для точек первой группы и приравниваем нулю. То же делаем для точек второй группы. Получим два уравнения с неизвестными a и b . Решая систему уравнений, найдем a и b .
Заметим, что при применении этого способа не требуется строить приближающую прямую. Точечный график в полуквадратичной системе координат нужен только для проверки того, что функция вида (4.4) подходит для эмпирической формулы.
Пример. При исследовании влияния температуры на ход хронометра получены следующие результаты:
z | -20 | -15,4 | -9,0 | -5,4 | -0,6 | +4,8 | +9,4 |
2,6 | 2,01 | 1,34 | 1,08 | 0,94 | 1,06 | 1,25 |
При этом нас интересует не сама температура, а ее отклонение от . Поэтому за аргумент примем , где t – температура в градусах Цельсия обычной шкалы.
Нанеся на декартову систему координат соответствующие точки, замечаем, что за приближающую кривую можно принять параболу с осью, параллельной оси ординат (рис.4). Возьмем полуквадратичную систему координат и нанесем на нее опытные точки. Видим, что эти точки достаточно хорошо укладываются на прямой. Значит, эмпирическую формулу
можно искать в виде (4.4).
Определим коэффициенты a и b по методу средней. Для этого разобьем опытные точки на две группы: в первой группе – первые три точки, во второй – остальные четыре точки. Используя равенство (4.5) находим сумму невязок по каждой группе и приравниваем каждую сумму нулю.