Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Аппроксимация функций. Метод наименьших квадратов



 

В инженерной деятельности часто возникает необходимость описать в виде функциональной зависимости связь между величинами, заданными таблично или в виде набора точек с координатами (xi, yi), i = 0, 1, 2,..., n, где n – общее количество точек. Как правило, эти табличные данные получены экспериментально и имеют погрешности (рис. 2.5)

 

Рис.4.2

 

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

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

 

S = ,                                                          (4.12)

 

обращается в минимум.

Погрешность приближения оценивается величиной среднеквадратического уклонения

D = .                                                                         (4.13)

 

В качестве функциональной зависимости рассмотрим многочлен

Pm(x)=a0 + a1x + a2x2+...+amxm.                                             (4.14)

 

Формула (4.12) примет вид

S =

Условия минимума S можно записать, приравнивая нулю частные производные S по всем переменным a0,  a1,  a2, …, am. Получим систему уравнений

 

 = – = 0, или

= 0, k = 0, 1, …, m.            (4.15) 

 

Систему уравнений (4.15) перепишем в следующем виде:


a0 + a1 + … +am = , k = 0, 1, …, m (4.16)

 

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

ck = , bk = .

 

Система (4.16) может быть записана так:

a0ck + a1ck+1 + … + ck+mam = bk, k = 0, 1, …, m.                              (4.17)

 

Перепишем систему (4.17) в развернутом виде:


c0a0 + c1a1 + c2a2… + cmam = b0

c1a0 + c2a1 + c3a2… + cm+1am = b1

(4.18)

cma0 + cm+1a1 + cm+2a2… + c2mam = bm

 

Матричная запись системы (4.18) имеет следующий вид:

Ca = b.                                                                                     (4.19)

 

Для определения коэффициентов ak, k = 0, 1, …, m, и, следовательно, искомого многочлена (4.14) необходимо вычислить суммы ck, bk и решить систему уравнений (4.18). Матрица C системы (4.19) называется матрицей Грама и является симметричной и положительно определенной. Эти полезные свойства используются при решении.

Погрешность приближения в соответствии с формулой (4.13) составит


D = .                                                           (4.20)

 

Рассмотрим частные случаи m =1 и m = 2.

1. Линейная аппроксимация (m = 1).

P1(x) = a0 + a1x.

c0 = = n + 1; c1 = = ; c2 = ;                     (4.21)

b0 = = ; b1 = = .                             (4.22)

 

      c0      c1                    n+1   

C =                        =                                ,

      c1          c2                        

b = (b0, b1)T = ( , )T.

 

Решение системы уравнений Ca = b найдем по правилу Крамера:

a0 = , a1 = ,

 

где ú Cú – определитель матрицы C, аú Ciú – определитель матрицы Ci, полученной из матрицы C заменой i-го столбца столбцом свободных членов b, i = 1, 2.

Таким образом,

a0 = , a1 = .                                               (4.23)

Алгоритм 4.1 (Алгоритм метода наименьших квадратов. Линейная аппроксимация).

Шаг 1. Ввести исходные данные: xi, yi, i=0, 1, 2, ..., n.

Шаг 2. Вычислить коэффициенты c0, c1, b0, b1 по формулам (4.21), (4.22).

Шаг 3. Вычислить a0, a1 по формулам (4.23).

Шаг 4. Вычислить величину погрешности

D1 = .                                                     (4.24)

Шаг 5. Вывести на экран результаты: аппроксимирующую линейную функцию P1(x) = a0 + a1x и величину погрешности D1.

2. Квадратичная аппроксимация (m = 2).

P2(x) = a0 + a1x + a2x2.

c0 = = n+1; c1 = = ; c2 = ; c3 = ; c4 = . (4.25)

b0 = = ; b1 = = ; b2 = .                 (4.26)


      c0 c1 c2            

C = c1   c2 c3.

      c2 c3 c4

 

b = (b0, b1, b2)T.

 

Решение системы уравнений Ca = b найдем по правилу Крамера:

ai = , i = 0, 1,

где ú Cú – определитель матрицы C, аú Ciú – определитель матрицы Ci, полученной из матрицы C заменой i-го столбца столбцом свободных членов b.

ú Cú = c0c2c4 + 2c1c2c3  – c  – с c4c c0.                                  (4.27)

          b0 c1 c2

ú C1ú = b1 c2 c3 = b0c2c4 + b2c1c3 + b1c2c3b2c b1c1c4 b0c . (4.28)

         b2 c3 c4

 

        c0 b0 c2

ú C2ú = c1 b1 c3 = b1c0c4 + b0c2c3 + b2c1c2b1c b0c1c4 b2c0c3. (4.29)

        c2 b2 c4

 

c0 c1 b0

ú C3ú =  c1 c2 b1 = b2c0c2 + b1c1c2 + b0c1c3b0c b2c  b1c0c3. (4.30)

c2 c3 b2

 

a0 = , a1 = , a2 = .                                                            (4.31)

Алгоритм 4.2 (Алгоритм метода наименьших квадратов. Квадратичная аппроксимация).

Шаг 1. Ввести исходные данные: xi, yi, i=0, 1, 2, ..., n.

Шаг 2. Вычислить коэффициенты c0, c1, c2, c3, c4, b0, b1, b2, по формулам (4.25), (4.26).

Шаг 3. Вычислить ú Cú, ú C1ú, ú C2ú, ú C3ú по формулам (4.27) – (4.30).

Шаг 4. Вычислить a0, a1, a2 по формулам (4.31).

Шаг 5. Вычислить величину погрешности

D2 = .                                         (4.32)

Шаг 5. Вывести на экран результаты: аппроксимирующую квадратичную функцию P2(x) = a0 + a1x + a2x2 и величину погрешности D2.

Пример 4.6.

Построим по методу наименьших квадратов многочлены первой и второй степени и оценим степень приближения. Значения yi в точках xi, i =0, 1, 2, 3, 4 приведены в таблице 2.3.

 

Таблица 4.1

i 0 1 2 3 4
xi 1 2 3 4 5
yi –1 1 2 4 6

 

Вычислим коэффициенты c0, c1, c2, c3, c4, b0, b1, b2, по формулам (4.25), (4.26):

c0 = 5; c1 = 15; c2 = 55; c3 = 225; c4 = 979;

b0 = 12; b1 = 53; b2 = 235.

 

1. Линейная аппроксимация (m =1).

Система уравнений для определения коэффициентов a0 и a1 многочлена первой степени P2(x) = a0 + a1x + a2x2 имеет вид

 

5a0 + 15a1 = 12

15a0 + 55a1 = 53

 

По формулам (4.23) найдем коэффициенты a0 и a1:

a0 =  » –2.7, a1 = » 1.7.    

P1(x) = a0 + a1x = –2.7 + 1.7x.

2. Квадратичная аппроксимация (m =2).

Система уравнений для определения коэффициентов a0, a1 и a2 многочлена второй степени P2(x) = a0 + a1x + a2x2 имеет вид

 

5a0 + 15a1 + 55a2 = 12

15a0 + 55a1 + 225a2 = 53

55a0 + 225a1 + 979a2 = 235

 

По формулам (4.31) найдем коэффициенты a0, a1 и a2:

a0 » –2.20, a1 » 1.27, a2 » 0.07.

P2(x) = a0 + a1x + a2x2 = –2.20 + 1.27x + 0.07x2.

 

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

 

Таблица 4.2

i 0 1 2 3 4
xi 1 2 3 4 5
yi –1 1 2 4 6
P1(xi) –1 0.7 2.4 4.1 5.8
P2(xi) –1 0.62 2.24 4 6.9

 

Погрешность приближения в соответствии с формулами (4.24) и (4.32) составит

D1 =  = 0.245.

D2 =  = 0.084.


Поделиться:



Последнее изменение этой страницы: 2019-10-03; Просмотров: 150; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.04 с.)
Главная | Случайная страница | Обратная связь