Метод наименьших квадратов
Back Home Up

Напомним постановку задачи. Пусть задан набор из m точек:

(x0, y0), (x1, y1), ..., (xm-1, ym-1);   (xi ¹ xj при i ¹ j,   i, j = 0 .. m-1)                    (30)

Среди функций определенного класса Ã требуется найти функцию F(x), для которой величина (евклидова норма)

                                                        (31)

принимает наименьшее значение. Обычно Ã - это линейные комбинации некоторых заранее выбранных функций gj(x) ( j = 0 .. n-1, n£m), называемых базисными, то есть

                                                          (32)

Пусть A - матрица значений базисных функций в абсциссах точек (30), y - вектор ординат этих точек, a c - вектор искомых коэффициентов:

Известно [36, c.708], что вектор с можно искать как решение нормального уравнения:

AT × A × c = AT × y.                                                            (33)

Матрица AT × A - симметрическая, а если ранг A равен n, то и положительно-определенная. Тогда существует (AT × A)-1 и решение (33) единственно:

c = ((AT × A)-1× AT) × y = A+ × y.                                                   (34)

Замечание 1. Матрица A+ называется псевдообратной для A. Это понятие является естественным обобщением понятия обратной матрицы на случай неквадратных матриц.

адача 7. Метод наименьших квадратов. Пусть наборы экспериментальных точек и базисных функций заданы соответственно векторами

x = (x0, x1, ..., xm-1)T, y = (y0, y1, ..., ym-1)T, g(x) = (g0(x), g1(x), ..., gn-1(x))T.

Составить программу нахождения коэффициентов cj ( j = 0 .. n-1, n£m) функции (32), наилучшим образом, в смысле метода наименьших квадратов, приближающую экспериментальные данные, и вычисления невязки e .

Решение. С учетом ранее сказанного, используя рекурсивную функцию inverse4(A), решение задачи можно получать с помощью функции:

                            (35)

Передаваемые в qua() фактические параметры - это исходные данные задачи, то есть экспериментальные векторы x, y и набор базисных функций g. При вычислениях по qua() сначала формируется матрица A значений базисных функций. Далее, рекурсивной функцией invers4() решается нормальное уравнение (33), то есть находится вектор коэффициентов искомой функции F(x). Затем вычисляется невязка e . Результат возвращается в виде блочного вектора вида: ( c | e )T.

Контрольный пример.

Пусть: x := (1    2    3    4    5)T, y := (4    8    9    7    6)T, g(t) := (1    t × sin(t)    ln(t))T.

Вычисляем: qua(x, y, g) = [3.126   0.977   4.804   0.387]

Откуда: F(x) = 3.126 +  0.977 × x × sin(x) + 4.804 × ln(x),   e  = 0.387.

Замечание 2. Часто F(x) ищут в классе многочленов степени не выше n-1, беря в качестве базисных функций мономы gj(x) = xi ( j = 0 .. n-1).

Home Содержание Схемы ООД Доска объявлений Поиск