русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Лінійна інтерполяція даних


Дата додавання: 2014-11-28; переглядів: 1986.


 

Задача

Нехай маємо деяку залежність y=f(x) , яка задана таблично за допомогою двох масивів: x[0], x[1], ... , x[n-1] та y[0], y[1], ... , y[n-1], де n - кількість рядків таблиці (вузлових точок). Задачею інтерполяції є побудова алгоритму, який відповідає неперервній і, по можливості, гладкій функції з інтервалом визначення [x0,xn-1], значення якої в точності відповідають наданій таблиці.

 

Алгоритми

Основними методами побудови інтерполяційного алгоритму є: лінійна інтерполяція, інтерполяція поліномом, інтерполяція сплайнами. Далі розглянемо найпростіший метод - лінійну інтерполяцію.

Лінійна інтерполяція виконується у два етапи:

1) знаходження номеру інтервалу, у який попадає надане значення х, тобто визначається таке i , щоб виконувалась умова: x Î [xi , xi+1] ;

2) шукане значення y(x) обчислюється по формулі: .

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

 

// Приклад 1

double linter(double* x, double* y, int n, double t)

{ if (t<x[0] || t>x[n-1])

{ puts("Invalid value of parameter t!");

exit(0);

}

int i;

for (i=0;i<n;i++) if (t<=x[i]) break;

i--;

return y[i]+(y[i+1]-y[i])/(x[i+1]-x[i])*(t-x[i]);

}

 

У функції передбачено контроль правильності значення аргументу t, для якого виконується інтерполяція: згідно з правилами інтерполяції це значення не повинно виходити за межі інтервалу [x0,xn-1].

 

 


<== попередня лекція | наступна лекція ==>
Операції з матрицями | Лінійна апроксимація


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн