Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВЫЧ_ПРАКТ_3.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
2.92 Mб
Скачать

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)) + gy  = b1f1(x) + … + bkfk(х) + gy .

Рис. 3.7. Результат линеаризации примера 3.7

– обратная истинная зависимость;

– МНК-аппроксимация ах + b;

   – экспериментальные данные (обратные величины)

Рис. 3.8. Линеаризованный МНК

– истинная зависимость примера 3.7

   – экспериментальные данные

– результат МНК-аппроксимации

Отсюда

.

Так как в МНК минимизируют сумму i 2, то получаем

1 (b) =  [b1f1(xi) + … + bkfki) – 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). Получена аппроксимация .