6 Методы приближения функций. Наилучшее приближение. Рассмотренные в прошлой главе методы приближения требуют строгой принадлежности узлов сеточной функции результирующему интерполянту. Если не требовать такого условия мы приходим к наилучшему приближению сеточных функций. Задачей наилучшего приближения является поставить в соответствие дискретной сеточной функции непрерывную или кусочно-непрерывную функцию, таким образом, чтобы ошибка приближения в узлах сетки являлась минимальной. Данная ошибка приближения называется невязкой в узлах сетки. Все разнообразие методов наилучшего приближения различается способом минимизации невязки в узлах сетки. Методы наилучшего приближения находят большее применение при обработке экспериментальных данных, когда значения в узлах сетки не являются точными числами, и задачей является построение функции, не проходящей через заданные точки, а заданной общим видом зависимости. 6.1 Метод наименьших квадратов. 6.1.1 Аппроксимация линейной зависимостью. Метод наименьших квадратов (МНК) минимизирует среднеквадратичные невязки в узлах сетки. Рассмотрим МНК на примере построения линейной аппроксимационной зависимости для табличной функции. xi x0 x1 x2 ... xn yi y0 y1 y2 ... yn Результирующая функция должна удовлетворять зависимости: y (x)=a⋅x+b (6.1) Подставляя табличную функцию в зависимость (6.1) имеем систему (n + 1) уравнений с двумя неизвестными: a⋅x 0 +b= y 0 a⋅x 1+b= y 1 a⋅x 2+b= y 2 ⋯⋯⋯⋯⋯ a⋅x n +b= y n (6.2) 1 В общем случае избыточная система уравнений (6.2) решения не имеет. Однако, учитывая что рачения в узлах сетки (yi) являются приближенными числами, можно подобрать коэффициенты a и b таким образом чтобы невязка в узлах сетки была минимальна. Введем невязку в узлах сетки как квадрат разностей левой и правой частей системы (6.2): r i =( a⋅x i +b− y i ) 2 (6.3) Тогда задаче нахождения коэффициентов a и b ставится в соответствие задача минимизации суммы невязок (6.3): n ∑ r i →min (6.4) i=0 Минимизируемая функция (6.4) является неотрицательной, квадратичной, и имеет единственную точку минимума. Минимум функции двух переменных находят из условий гладкого экстремума: в точке экстремума частные производные функции по каждой из независимых переменных равны нулю. Дифференцируя функцию (6.4) по независимым переменным a и b, получаем систему из двух уравнений: { { n ∑ 2⋅( a⋅xi +b− yi )⋅xi =0 i=0 n (6.5) ∑ 2⋅( a⋅x i +b− yi )⋅1=0 i=0 Приводя к стандартному для СЛАУ виду, имеем: n 2 i n n i=0 i=0 a⋅∑ x +b⋅∑ x i=∑ y i⋅x i i=0 n n (6.6) a⋅∑ x i +b⋅(n+1)=∑ y i i=0 i=0 Или в матричной форме: Y =B⋅X (6.7) Где: 2 1 1 X= 1 ⋯ 1 x0 x1 x2 ⋯ xn () ( ) y0 y Y= 1 y2 ⋯ yn B= b a () (6.8) Решением системы (6.7) будет вектор: −1 B=( X T⋅X ) ⋅X T⋅Y (6.9) Метод переопределения системы избыточных уравнений (6.2) к системе (6.6) и ее решение называется методом наименьших квадратом (МНК). При этом вектор B (решение переопределенной системы) называется нормальным псевдорешением по отношению к исходной задаче (6.2). Кроме одномерной табличной функции МНК позволяет аппроксимировать и многомерные линейные функции вида: y (x)=a 1⋅x 1+a 2⋅x 2+…+am⋅x m +b (6.10) При этом общий вид решения аналогичен (6.9), а векторы Y, B и матрица X будут иметь вид: 1 1 X= 1 ⋯ 1 () ( y0 y Y= 1 y2 ⋯ yn x 10 x 11 x 12 ⋯ x 1n x 20 x 21 x 22 ⋯ x 2n ⋯ ⋯ ⋯ ⋯ ⋯ x m0 x m0 x m0 ⋯ x mn ) () b a B= 1 a2 ⋯ am (6.11) 6.1.2 Аппроксимация нелинейной зависимостью. Если принять более общий случай, когда конкретный вид аппроксимирующей функции не задан, т. е.: y (x)=f (x) (6.12) Условие минимизации среднеквадратичной невязки запишется в виде: n ∑ ( f ( xi )− yi )2→ min (6.13) i=0 Нахождение функции f (x) в общем случае есть задача минимизации функционала, чему посвящен отдельный раздел математики – вариационное исчисление. Рассмотрим случай когда искомая функция представляет линейную комбинацию базисных функций: 3 f (x)=c 0⋅ϕ 0 (x)+c 1⋅ϕ 1 (x)+…+ c m⋅ϕ m ( x) (6.14) m Набор базисных функций { ϕ i ( x ) }i=0 задан изначально, и задача сводится к m определению коэффициентов { с i }i=0 . Аналогично предыдущему пункту, условие минимума функции нескольких переменных сводится к условию гладкого экстремума, что для задачи (6.13-6.14) приводит к системе уравнений: { n ∑ ϕ0 (xi ) ( c0 ϕ0 (xi )+c1 ϕ1 (xi )+…+cm ϕm (xi )− yi )=0 i=0 n ∑ ϕ1 (xi )( c0 ϕ0 ( xi )+ c1 ϕ1 (xi )+…+cm ϕm (xi )− yi )=0 i=0 (6.15) .................................................................................... n ∑ ϕm (xi ) ( c0 ϕ0 (xi )+c1 ϕ1 (xi )+…+c m ϕm (xi )− yi )=0 i=0 Переходя к скалярным произведениям имеем: { c 0⋅( ϕ 0 , ϕ0 ) +c 1⋅( ϕ 0 , ϕ 1) +…+c m⋅( ϕ0 , ϕ m )=( ϕ 0 , y ) c 0⋅( ϕ 1 , ϕ 0 )+c 1⋅( ϕ 1 , ϕ 1) +…+c m⋅( ϕ1 , ϕm )=( ϕ 1 , y ) ............................................................................... c 0⋅( ϕm , ϕ 0 )+ c 1⋅( ϕ m , ϕ 1) +…+c m⋅( ϕm , ϕ m )= ( ϕ m , y ) (6.16) Форма записи (6.16) удобна тем, что ее можно использовать как для аппроксимации как сеточной, так и непрерывной функции. Для сеточной функции скалярные произведения вычисляются по формуле: n ( ϕ k , ϕ j )=∑ ϕ k (x i )⋅ϕ j ( x i ) (6.17) i=0 Для непрерывной функции, аппроксимируемой на интервале x∈ [ a , b ] : b ( ϕ k , ϕ j )=∫ ϕ k (x)⋅ϕ j (x)dx (6.18) a Из свойств скалярных произведений вытекает одно важное следствие – если m система базисных функций { ϕ i ( x ) }i=0 ортогональна, т. е. удовлетворяет условию: ( ϕ k , ϕ j )=0, k≠ j (6.19) Все коэффициенты зависимости (6.14) можно найти в явном виде: 4 { c 0= c 1= ( ϕ0 , y ) 2 ∥ϕ 0∥ ( ϕ1 , y ) 2 (6.20) ∥ϕ1∥ .................. ( ϕm , y ) c m= 2 ∥ϕ m∥ Такие коэффициенты называются коэффициентами Фурье, а комбинация базисных функций (6.14) – обобщенным многочленом Фурье. m { ϕ i ( x ) }i=0 Если же система является ортонормированной, система (6.20) упрощается до вида: { c 0= ( ϕ0 , y ) c 1= ( ϕ1 , y ) .................. c m= ( ϕm , y ) (6.21) Наиболее распространенным примером ортогональных систем базисных функций являются тригонометрические функции. 6.1.3 Аппроксимация полиномами n-степени. Частным случаем применением МНК для аппроксимации нелинейной зависимостью является аппроксимацией полиномами (куда входит также аппроксимация полиномом первой степени – линейной зависимостью). Рассмотрим общий случай аппроксимации полиномом степени m. При этом система базисных функций примет следующий вид: ϕ 0 ( x )= x 0 , ϕ1 ( x ) =x 1 , ϕ 2 ( x ) =x 2 , ... ϕ m ( x ) =x m (6.22) А аппроксимирующий полином: y ( x ) =c 0 +c 1⋅x+c 2⋅x 2+…+ c m⋅x m (6.23) Система (6.22) не является ортогональной, следовательно, применение формулы (6.20) невозможно. Введем невязку аналогично (6.3): m (∑ ri= j=0 2 j i c i⋅x − y i ) (6.24) 5 Невязка минимизируется аналогично (6.4). Дифференцируя функцию (6.4) по независимым переменным ci, получаем систему из (m + 1) уравнений. Дифференцируя по c0, имеем: n n ∂ ∑ r =2⋅∑ ∂ c 0 i=0 i i=0 m ( ∑ c ⋅x − y )=0 j i i j=0 (6.25) i По c1: n n m ( ) (6.26) ) (6.27) ∂ r i =2⋅∑ x i⋅ ∑ c i⋅x ij − y i =0 ∑ ∂ c 0 i=0 i=0 j=0 И т. д. до cm: n n ( m ∂ r i =2⋅∑ x mi ⋅ ∑ c i⋅x ij − y i =0 ∑ ∂ c 0 i=0 i=0 j=0 Раскрывая скобки, группируя по коэффициентам ci и сокращая на 2, имеем следующую систему уравнений: { n n n n c 0⋅(n+1)+c 1⋅∑ x i +c 2⋅∑ x +…+ c m⋅∑ x =∑ y i i= 0 2 i i= 0 i=0 n n n n i=0 n i=0 n i=0 n i=0 n m i i=0 n c 0⋅∑ x i +c 1⋅∑ x 2i + c 2⋅∑ x 3i +…+c m⋅∑ x im+1=∑ x i⋅y i 2 3 4 m+2 c 0⋅∑ x i +c 1⋅∑ x i +c 2⋅∑ x i +…+c m⋅∑ x i i=0 i=0 i=0 i=0 i=0 n 2 =∑ x i⋅y i (6.28) i=0 .......................................................................................... n m i n c 0⋅∑ x +c 1⋅∑ x i=0 i=0 m+1 i n +c 2⋅∑ x i=0 m+2 i n 2m i n 2 +…+ c m⋅∑ x =∑ x i ⋅y i i=0 i=0 Или, записывая в обобщенном виде: m ∑ j=0 ( n c j⋅∑ x i=0 j+ k i n )∑ = x ki⋅y i , k=0…m (6.29) i=0 Система (6.29) является линейной и решается любыми прямыми или итерационными методами решения СЛАУ. Например, для аппроксимации параболой y (x)=a⋅x 2+b⋅x+c имеем систему из трех уравнений: 6 { n n 2 i n c⋅(n+1)+b⋅∑ x i +a⋅∑ x =∑ y i i=0 i=0 n i=0 n n n i=0 n i=0 n i= 0 n i=0 n i=0 i=0 i=0 i=0 2 3 c⋅∑ x i +b⋅∑ x i +a⋅∑ x i =∑ x i⋅y i (6.30) c⋅∑ x 2i +b⋅∑ x 3i +a⋅∑ x i4=∑ x 2i ⋅y i Если какой-либо коэффициент полинома пропускается (например, требуется, чтобы парабола проходила через начало координат, c0 = 0), соответственно коэффициенту опускается и операция пропускается дифференцирования соответствующее по уравнение, данному так, для аппроксимации параболой y (x)=a⋅x 2 +b⋅x , имеем: { n 2 i n 3 i n b⋅∑ x +a⋅∑ x =∑ x i⋅y i i=0 n i=0 n i=0 n (6.31) b⋅∑ x +a⋅∑ x =∑ x ⋅y i 3 i i=0 4 i i=0 2 i i=0 Аналогично осуществляют МНК для любого вида полинома. 6.2 Альтернативные методы наилучшего приближения. Получить функцию наилучшего приближения можно и альтернативными способами. Например, если брать вместо суммы квадратов невязок их модули мы получаем метод наименьших модулей. Он имеет преимущество перед МНК при обработке экспериментальных данных, не очищенных от выбросов, т. к. влияние выбросов в нем меньше чем а МНК. Также широкое распространение получил метод взвешенных наименьших квадратов. Он отличается от МНК тем, что для каждого слагаемого в (6.4) используется весовая функция (wi), которая увеличивает или уменьшает значимость данной точки при минимизации невязок: n ∑ w i⋅ri →min (6.32) i=0 Данный подход позволяет увеличивать точность аппроксимации в окрестностях некоторых избранных точек, либо в какой-то области. Это может быть полезным, например если для экспериментальных данных получалась 7 различная точность измерений в различных областях. Или необходимо увеличить вес точек, где данные имеют небольшую абсолютную величину по сравнению с другими областями, т. е. где при достаточно малой абсолютной погрешности велика относительная погрешность измерений. 6.3 Линеаризация. Из вышесказанного можно сделать вывод, что процедура получения наилучшего приближения наиболее хорошо изучена и требует меньше всего ресурсов для линейных аппроксимирующих функций. Из этого вытекает, что если исходная аппроксимирующая функция нелинейна, то целесообразно привести ее к линейному виду и провести процедуру поиска линейной аппроксимирующей функции с дальнейшим обратным преобразованием к нелинейной. Рассмотрим несколько таких примеров. Исходная аппроксимирующая функция: y ( x ) = A⋅ek⋅x (6.33) Логарифмируя правую и левую части (6.33) имеем линейную функцию от x: ln ( y ( x ) )=ln ( A ) +k⋅x (6.34) Исходная аппроксимирующая функция: y ( x )= A k⋅x+b (6.35) Возводим правую и левую части (6.35) в степень -1, имеем линейную функцию от x: 1 =k / A⋅x+ b/ A y ( x) (6.36) Таким образом можно получить линейную форму для многих нелинейных функций, что позволяет существенно упростить получение аппроксимационной функции для таких зависимостей. Список литературы. 1. Вержбицкий, В.М. Основы численных методов / В.М. Вержбицкий. – М.: Высшая школа, 2002. – 840 с. 8 2. Баранова, Т.А. Многомерные статистические методы. Регрессионный анализ / Т.А. Баранова. – Иваново, 2007. – 40с. 9