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

Если в результате эксперимента или практической деятельности получено n +1 опытных данных (xi, yi); i = 0, 1, …, n , которые занесены в таблицу, и по ним построен график. Аппроксимация опытных данных состоит в нахождении аналитического выражения некоторой функции F(x) (аппроксимирующей кривой), которая приближала бы полученную табличную функцию. Существует два метода аппроксимации:

1. Аппроксимировать опытные данные интерполяционным многочленом степени n, который проходит через все узловые точки.

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

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

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

или

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

.

Степень m аппроксимирующего многочлена, как правило, меньше числа n узлов интерполяции, m < n.

Если m = 1, то задача называется "линейной регрессией".

Если m = 2, то задача называется "квадратичной аппроксимацией".

Если m = 1, то задача называется " кубической аппроксимацией ".

Задача аппроксимации. Для табличных данных, полученных в результате эксперимента

(xi, yi); i = 0, 1, …, n, построить аппроксимирующий многочлен Pm(x) = a0  + a1 x1+ a2 x2 +…+ amxm,, причем m < n, для которого .

При втором способе рассмотрим многочлен

Pm(x) = a0  + a1 x1+ a2 x2 +…+ amxm,

и коэффициенты его ищем из условия:

.

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

.

Дифференцируя по каждой переменной, получим СЛАУ

                                               (6.1)

Порядок системы равен и

aj (j = 0,1,…,m) - коэффициенты аппроксимирующего многочлена (неизвестных).

Решая полученную систему, определяем значения коэффициентов аппроксимирующего многочлена и строим аппроксимирующий многочлен степени m.

Для решения полученной системы (6.1) используем метод Гаусса. Перепишем систему (2):

                                          (6.2)

,

aj (j = 1,…,m) - коэффициенты аппроксимирующего многочлена

Pm(x) = a1  + a2 x1+ a3 x2 +…+ am+1 xm,                                                    (6.3)

Задачу аппроксимации решаем следующим образом:

1. Выбираем степень m аппроксимирующего многочлена.

2. Составляем систему (6.2), которая имеет симметрическую матрицу.

3. Находим коэффициенты аппроксимирующего многочлена, решаем систему (6.1) методом Гаусса.

4. Строим аппроксимирующий многочлен.

5. Находим уклонение в каждой точке

6. Находим сумму квадратов уклонений во всех узлах.

7. Находим остаточную дисперсию по формуле .

При вычислении значения многочлена используют представление многочлена в виде:

Pm(x) = a1  + x(a2+ x(a3 +… x(am-1+ x(am+ xam+1 ))…).                                       (6.4)

Алгоритм вычисление значения многочлена по формуле:

P:= am+1;

Цикл по j: = m, …,1 выполняй P:= P + xiam+1; конец цикла по j.

Конец.

Алгоритм аппроксимации функции многочленом.

Ввод: Узлы интерполяции X[i], Y[i], i = 1,…, n. Точка  x. Степень m аппроксимирующего многочлена.

Вывод: Вычислить Pm(x).

Цикл по k:= 1… m+1 выполнить; Цикл по j:= 1… m+1 выполнить;

C[k,j]:=0; Цикл по i:= 1… n+1 выполнить; C[k,j]:= C[k,j]+X[i]^(k+j-2); конец цикла по i;

конец цикла по j;

D[k]:=0; Цикл по i:= 1… n+1 выполнить; D[k]:= D[k]+ Y[i]*X[i]^(k-1); конец цикла по i;

конец цикла по k;

1. Решаем систему СX=D методом Гаусса; A:=X;

S:=0;

Цикл по k:= 1… m+1 выполнить;

P:=A[m+1];

Цикл по j:= m… 1 выполнить;P:=A[j]+X[k]*P; конец цикла по j;

S:=S+(P-Y[k])* (P-Y[k]);

конец цикла по k;

D:=S/(n+1-m-1); конец.

Пример. По таблице значений функции найти аппроксимирующий многочлен третьей степени и вычислить f(10)

x

2

5

7

8

12

f(x)

12

33

-12

2

20

 

 

xi

f(xi)

cij

di

aj

F(xi)

ei

S

D

2

5

7

8

12

12

33

-12

2

3

 

 

 

 

 

 

 

 Аппроксимирующий многочлен F(x):=

F(10) = 120.