Метод найменших квадратів

Маємо таблицю значень:

х1 х2хn

у1 у2уn

 

Необхідно знайти наближену залежність у = f(x), значення якої при х = хі (і=), мало відрізняються від дослідних даних уі. Наближена функціональна залежність у = f(x), яка одержана на основі експериментальних даних, називається емпіричною формулою.

Одним із способів одержання емпіричних формул є метод найменших квадратів (МНК). Будем вважати, що тип емпіричної формули відомий (це, наприклад, пряма, парабола, многочлен чи інше) і її можна зобразити у вигляді

у = j(х, а0, а1, … , аm), (15)

де j - відома функція;

а0, а1, … , аm – невідомі сталі параметри.

Задача полягає в тому, щоб визначити такі значення цих параметрів, при яких емпірична формула дає достатньо добре наближення таблично заданої функції.

Ідея МНК полягає в наступному. Запишемо суму квадратів відхилень для всіх точок хі (і=)

(16)

Параметри а0, а1, … , аm емпіричної формули (15) будем шукати з умови min функції

S = S(а0, а1, … , аm). Оскільки тут параметри а0, а1, … , аm виступають в ролі незалежних змінних функції S, то її min знайдемо, прирівнюючи до нуля частинні похідні за цими змінними

(17)

Розглянем випадок, коли за емпіричну функцію вибирають многочлен

j(х)= а0 + а1х + а2х2 + … + аmхm (18)

 

 

Тоді формула визначення суми квадратів відхилень S зобразиться так

(19)

Тоді система рівнянь для визначення а0, а1, … , аm з врахуванням (17) набере вигляду

(20)

Збираючи коефіцієнти при невідомих а0, а1, … , аm, одержимо наступну систему рівнянь (16) перед знаком суми опускаєм − сталий множник, який не змінює коренів системи):

(21)

Систему (21) можна записати в більш компактному вигляді:

с0а0 + с1а1 + с2а2 + … + сmam = d0 ,

c1a0 + c2a1 + c3a2 + … + cm+1am = d1 , (22)

– – – – – – – – – – – – – – – – – – – – – – – – – –

cma0 + cm+1a1 + cm+2a2 + … + c2mam = dm ,

де

,j = 0, 1, 2, … , 2m (23)

,k = 0, 1, 2, … , m (24)

Поліном (18) степені m < n, де n − число пар хі, уі забезпечує апроксимацію таблично заданої функції уі(хі) з мінімальною середньоквадратичною похибкою:

(25)

Якщо m = n, то має місце звичайна інтерполяція, тобто .

Зауваження : Система (22) − це система лінійних алгебраїчних рівнянь відносно невідомих а0, а1, … , аm. Коефіцієнти при невідомих одержуються за формулами (23) та (24). Для обчислення і зберігання коефіцієнтів сj потрібен масив із (2m+1) чисел, а для dk − масив із (m + 1) чисел, де m − степінь полінома, яка задається на початку роботи програми.

Потрібно ввести в циклі (і=) пари значень хі, уі, потім сформувати коефіцієнти при невідомих сj та вільні члени dk .

Одержану таким чином систему лінійних алгебраїчних рівнянь розв'язати методом Гауса (з частковим вибором головного елемента), одержуючи значення параметрів а0, а1, … , аm апроксимуючого полінома φ(х).

На практиці використовується поліноміальна апроксимація за МНК з автоматичним вибором степені полінома. Алгоритм наступний: задається початкове значення m, потім шукається коефіцієнти полінома а0, а1, … , аm , за формулою (25) обчислюється середньоквадратична похибка і порівнюється із заданою Е1. Якщо Е > заданої, степінь m збільшується на 1 і все повторюється. Обчислення припиняється при Е < E1.