logo search
ООП для Заоч / Пинчук Лозовская Программир на С

13.9. Лінійна апроксимація

Задача

Нехай надана залежність y=f(x) у вигляді таблиці, яка містить n значень. Крім того, нехай задана функція F(x), в яку входить m+1 параметрів - апроксимуюча функція:

y = F(x; a0, a1, … , am) . (1)

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

Апроксимуюча функція звичайно має сенс математичної моделі деякого елементу системи, а сама задача апроксимації називається у цьому випадку задачею ідентифікації параметрів моделі.

У якості критерію згоди найчастіше використовують суму квадратів відхилень:

. (2)

У такому разі говорять, що задача розв’язується методом найменших квадратів (метод НК), хоча більш правильно було б говорити про розв’язування задачі апроксимації з використанням критерію найменших квадратів.

Алгоритм

Таким чином, задача апроксимації у загальному випадку зводиться до задачі багатовимірної оптимізації. Головними методами для розв’язування такої задачі є:

- метод покоординатного спуску;

- метод градієнта (найшвидшого спуску);

- метод Ньютона (параболічної екстраполяції);

- метод вкладених алгоритмів.

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

Нехай тепер маємо лінійну модель:

.

і таблицю залежності y = f(x) . З наведених вище відомостей виходить, що параметри a0, a1 можна отримати шляхом розв’язування системи двох лінійних рівнянь:

g00a0 + g01a1 = b0

g10a0 + g11a1 = b1

де

Нижче наведено функцію, яка виконує лінійну апроксимацію табличних даних.

// Приклад 1