
3. Среднеквадратичное приближение. Метод наименьших квадратов
Пусть, как и в п.1, функция у(х), задана таблицей своих значений в N точках (для удобства мы поменяли нумерацию).
x1 |
х2 |
…. |
xN |
y1 |
у2 |
…. |
yN |
Требуется найти аппроксимирующую функцию вида
Y(x) = b1 f1 (x) + b2 f2 (x) + … + bk fk (x), (3.2)
где fj(x) – известные функции (базисные функции); bj – неизвестные коэффициенты; k < N. В качестве меры близости между у(х) и Y(x) задано условие
,
т.е. в отличие от задачи интерполяции, точного совпадения в узловых точках не требуется. Такая задача называется задачей среднеквадратичного приближения.
Искомые коэффициенты определяются методом наименьших квадратов (МНК). Приведем матричную запись этого метода, как наиболее компактную. Обозначим: Ф = [Фij] = [fj(xi)] – матрица размером N k (структурная или регрессионная матрица); b – вектор искомых коэффициентов; у – вектор значений функции у(х) в узлах хi. Тогда выражение [b1f1(xi) + … + bkfk(xi)] = Фb представляет собой N-мерный вектор. Для определения вектора b коэффициентов имеем систему линейных уравнений:
(ФTФ) b = ФTy, (3.3)
которую
легко решить, например, методом Гаусса.
В качестве меры точности полученного
решения часто используют величину SСРЕД
=
– среднеквадратичная
погрешность аппроксимации
(b* – найденное решение
системы (3.3)).
Пример 3.4. Для данных примера 3.1 методом наименьших квадратов построить аппроксимирующий многочлен 2-й степени.
Имеем f1 (x) 1; f2 (x) = x; f3 (x) = x2. Следовательно, матрица Ф имеет вид:
Отсюда
Рис. 3.4. МНК. Графики
функций Y(x)
y(x)
= ln(1+x) –
исходная функция
узлы
аппроксимации
Решив систему (3.3), получим
Иными словами, Y(х) = 0.0239 + 0.6937 х – 0.0756 х2. На рис. 3.4 изображены графики исходной и аппроксимирующей функций.
Пример 3.5. Дана таблица значений некоторой функции и вектор базисных функций
Построить аппроксимирующую функцию Y(x) = b1 f1(x) + b1 f2(x) + b3 f3(x).
Имеем:
f1
(x)
;
f2
(x) = x2;
f3
(x) = exp(x). Следовательно, матрица Ф
имеет вид:
Отсюда
Решив систему (3.3), получим
На рис. 3.5 изображены исходные точки и график аппроксимирующей функции.
4. Мнк при нелинейных моделях
Предположим, что уравнение, связывающее вход и выход исследуемого объекта, нелинейно по параметрам, т.е. имеет вид:
у = F(x, b) (3.4)
Рис. 3.5. График функций примера 3.5.
Принцип наименьших квадратов легко обобщается и на нелинейный случай. Решением (вектором коэффициентов) задачи среднеквадратичной аппроксимации при нелинейной модели (3.4) будем понимать то значение вектора bЕk, для которого сумма квадратов отклонений
(b) = (F(xi, b) – yi)2
принимает минимальное значение. В отличии от линейного случая, в котором минимум находится сравнительно просто – как решение системы линейных уравнений, поиск минимума (b) в общем случае достаточно сложен. В нелинейной модели может существовать несколько локальных минимумов функции (b). По определению МНК-решение соответствует глобальному минимуму.
Линеаризация. В некоторых случаях уравнение (3.4) можно преобразовать к линейному виду:
g(у) = g(F(x, b)) = b1f1(x) + … + bkfk(x). (3.5)
Введя новую переменную z = g(y), получаем обычный МНК. Такая процедура называется линеаризацией. К ней прибегают, когда непосредственная минимизация (b) по каким-либо причинам затруднена. Решить линейную систему намного проще, чем минимизировать сложную функцию.
Пример
3.6.
1)
.
Положим g(y)
= 1/y,
получим ax
+ b
= 1/y.
Отсюда получим линейный случай:
( axi
+ b
– 1/yi
) 2
min.
2)
.
Положим g(y)
= ln(y),
получим ax
+ b
= ln(y).
Отсюда получим линейный случай:
( axi
+ b
– ln(yi)
) 2
min.
При наличии ошибок в исходных данных преобразование (3.5) обычно приводит к потере точности, т.к. минимизация проводится уже преобразованной суммы квадратов, чье оптимальное значение не соответствует минимуму (b).
Рис. 3.6. –
истинная зависимость;
– экспериментальные
данные примера 3.7
Пример
3.7. Истинная
зависимость y
от х имеет вид:
.
Имеем данные эксперимента при наличии
случайных ошибок :
xi
= 0.8, 1,…, 3; у = (1.496, 1.039, 0.57, 0.5141, 0.5428, 0.3272,
0.2415, 0.2065, 0.374, 0.1348, 0.091, 0.2631) (см. рис. 3.6). В
результате линеаризации получим систему
уравнений для нахождения коэффициентов
модели:
,
решив которую, получим модель
.
Результаты аппроксимации приведены на рис. 3.7 и 3.8. Из рис. 3.8 видно, что при начальных значениях х погрешность аппроксимации особенно велика.
Взвешенный МНК. Расхождение между истинным значением функции и её аппроксимацией, полученной в результате линеаризации, можно значительно уменьшить с помощью введения соответствующих весов i для экспериментальных точек, т.е. минимизировать сумму:
1(b) = i2 (g(F(xi, b)) – g(yi)) 2 .
Опишем соответствующую процедуру, предложенную С. А. Айвазяном.
Предположим, что экспериментальные значение у представляют собой сумму у = F(x, b) + . Разложим функцию g(y) по формуле Тейлора до линейных членов в окрестности F(x, b), положив
g(y) = g(F(x, b) + ) g(F(x, b)) + g’y = b1f1(x) + … + bkfk(х) + g’y .
Рис. 3.7. Результат
линеаризации примера 3.7
– обратная
истинная зависимость;
– МНК-аппроксимация
ах + b;
– экспериментальные
данные (обратные величины)
Рис. 3.8. Линеаризованный
МНК – истинная
зависимость примера 3.7
– экспериментальные
данные – результат
МНК-аппроксимации
Отсюда
.
Так как в МНК минимизируют сумму i 2, то получаем
1
(b) =
[b1f1(xi)
+ … + bkfk(хi)
– g(yi)
]2
,
т.е.
.
В матричной записи МНК это означает
умножение каждой строки линеаризованной
матрицы Ф и вектора g(y)
на i,
или умножение матрицы Ф и g(y)
слева на диагональную матрицу R,
в которой Ri
i
= i.
В
примере 3.7
;
.
Следовательно,
и
1
(a, b) =
[axi
+ b –
1/yi
] 2
,
Рис. 3.9. Результат
применения процедуры Айвазяна к примеру
3.7.
– истинная
зависимость;
– взвешенная
МНК-аппроксимация
Результат
применения процедуры Айвазяна к примеру
3.7 изображен на рис. 3.9 (сравните с рис.
3.8). Получена аппроксимация
.