Интерполяция функций двух переменных, проблема выбора узлов

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Билинейная интерполяция)
(Изложение метода)
Строка 15: Строка 15:
== Изложение метода ==
== Изложение метода ==
-
Пусть сетка образована пересечением прямых x = x<sub>n</sub>, n = 0, ..., N и y = y<sub>m</sub>, m = 0, ..., M, f<sub>nm</sub> = f(x<sub>n</sub>, y<sub>m</sub>) — значение функции в узле {x<sub>n</sub>, y<sub>m</sub> }.
 
=== Билинейная интерполяция ===
=== Билинейная интерполяция ===
 +
'''Билинейной интерполяцией''' называют расширение линейной интерполяции для функций двух переменных.
-
Билинейной интерполяцией называют расширение линейной интерполяции для функций двух переменных. Для этого сначала реализуется линейная интерполяция по x на каждой прямой y = y<sub>m</sub> . Затем при каждом значении x = x<sub>n</sub> реализуется линейная интерполяция по y с учетом значений функции, полученных на первом шаге.<br/>
+
Пусть сетка образована пересечением прямых x = x<sub>n</sub>, n = 0, ..., N и y = y<sub>m</sub>, m = 0, ..., M, f<sub>nm</sub> = f(x<sub>n</sub>, y<sub>m</sub>) — значение функции в узле {x<sub>n</sub>, y<sub>m</sub> }.
 +
Для начала реализуется линейная интерполяция по x на каждой прямой y = y<sub>m</sub> . Затем при каждом значении x = x<sub>n</sub> реализуется линейная интерполяция по y с учетом значений функции, полученных на первом шаге.<br/>
Пусть <tex>\ x\in[x_n,x_n_+_1],\ \ y\in[y_m,y_m_+_1]</tex><br/>
Пусть <tex>\ x\in[x_n,x_n_+_1],\ \ y\in[y_m,y_m_+_1]</tex><br/>
::<tex>f(x,y)\approx \ f_{nm}\frac{(x_{n+1}-x)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ \ \ +\ \ \ f_{n+1,m}\frac{(x-x_n)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}+<br/>\ \ \ \ \ \ \ \ \ \ \ \ +f_{n,m+1}\frac{(x-x_n)(y-y_m)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ +\ f_{n+1,m+1}\frac{(x_{n+1}-x)(y-y_m)}{{(x_{n+1}-x_n)(y_{m+1}-y_m)}</tex><br/>
::<tex>f(x,y)\approx \ f_{nm}\frac{(x_{n+1}-x)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ \ \ +\ \ \ f_{n+1,m}\frac{(x-x_n)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}+<br/>\ \ \ \ \ \ \ \ \ \ \ \ +f_{n,m+1}\frac{(x-x_n)(y-y_m)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ +\ f_{n+1,m+1}\frac{(x_{n+1}-x)(y-y_m)}{{(x_{n+1}-x_n)(y_{m+1}-y_m)}</tex><br/>
-
Результат билинейной интерполяции не зависит от порядка шагов: можно сначала интерполировать вдол оси абсцисс а затем вдоль оси ординат, так и наоборот, результат будет одним и тем же.
+
Результат билинейной интерполяции не зависит от порядка шагов: можно сначала интерполировать вдоль
 +
оси абсцисс а затем вдоль оси ординат, так и наоборот, результат будет одним и тем же.
 +
=== Интерполяционный многочлен Лагранжа ===
 +
'''Интерполяционный многочлен Лагранжа''' - многочлен минимальной степени, принимающий данные значения в данном наборе точек.
 +
Для двумерного случая: для (n+1)x(m+1) троек чисел (x<sub>i</sub>,yj,f(x_i,y_j)) i=0..n, j=0..m, где все пары (x_i,y_j) различны, существует единственный многочлен L(x,y) степени не более n^2, для которого L(x_i,y_i) = f(x_i,y_i)
== Числовой пример ==
== Числовой пример ==

Версия 09:51, 16 октября 2008

Содержание

Введение

Постановка математической задачи

Интерполя́ция — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

Рассмотрим систему несовпадающих точек ~(x_i , y_i) (i\in{0,1,\dots,N}) из некоторой области ~D. Пусть значения функции ~f известны только в этих точках:

z_i = f(x_i,y_i),\quad i=1,\ldots,N.

Задача интерполяции состоит в поиске такой функции ~F из заданного класса функций, что

F(x_i,y_i) = z_i,\quad i=1,\ldots,N.
  • Точки ~(x_i , y_i) называют узлами интерполяции, а их совокупность — интерполяционной сеткой.
  • Тройки ~(x_i,y_i,z_i) называют точками данных или базовыми точками.
  • Разность между «соседними» значениями ~\Delta x_i=x_i-x_{i-1}шагом интерполяционной сетки. Он может быть как переменным так и постоянным.
  • Функцию ~F(x) — называют интерполирующей функцией .

Изложение метода

Билинейная интерполяция

Билинейной интерполяцией называют расширение линейной интерполяции для функций двух переменных.

Пусть сетка образована пересечением прямых x = xn, n = 0, ..., N и y = ym, m = 0, ..., M, fnm = f(xn, ym) — значение функции в узле {xn, ym }. Для начала реализуется линейная интерполяция по x на каждой прямой y = ym . Затем при каждом значении x = xn реализуется линейная интерполяция по y с учетом значений функции, полученных на первом шаге.
Пусть \ x\in[x_n,x_n_+_1],\ \ y\in[y_m,y_m_+_1]

f(x,y)\approx \ f_{nm}\frac{(x_{n+1}-x)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ \ \ +\ \ \ f_{n+1,m}\frac{(x-x_n)(y_{m+1}-y)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}+<br/>\ \ \ \ \ \ \ \ \ \ \ \ +f_{n,m+1}\frac{(x-x_n)(y-y_m)}{(x_{n+1}-x_n)(y_{m+1}-y_m)}\ +\ f_{n+1,m+1}\frac{(x_{n+1}-x)(y-y_m)}{{(x_{n+1}-x_n)(y_{m+1}-y_m)}

Результат билинейной интерполяции не зависит от порядка шагов: можно сначала интерполировать вдоль оси абсцисс а затем вдоль оси ординат, так и наоборот, результат будет одним и тем же.

Интерполяционный многочлен Лагранжа

Интерполяционный многочлен Лагранжа - многочлен минимальной степени, принимающий данные значения в данном наборе точек. Для двумерного случая: для (n+1)x(m+1) троек чисел (xi,yj,f(x_i,y_j)) i=0..n, j=0..m, где все пары (x_i,y_j) различны, существует единственный многочлен L(x,y) степени не более n^2, для которого L(x_i,y_i) = f(x_i,y_i)

Числовой пример

Рекомендации программисту

Заключение

Список литературы

Личные инструменты