Опубликован: 20.10.2007 | Уровень: специалист | Доступ: свободно
Лекция 3:

Геометрические преобразования

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

Помимо функций, заданных аналитически (т. е. с помощью элементарных функций, значения которых легко могут быть вычислены в любой точке области определения), на практике часто приходится иметь дело с таблично заданными функциями. В этом случае функция задается своими значениями на некотором дискретном множестве точек ( узлов ) из области определения. Если необходимо получить значение функции в какой-либо точке, не совпадающей с узлом, используют различные методы приближенного вычисления, которые основываются на некоторых априорных предположениях относительно этой функции. При этом сама процедура вычисления называется интерполяцией в случае, когда точка принадлежит заданной области, и экстраполяцией, если она лежит вне области.

В качестве предположений о характере дискретно заданной функции наиболее часто используемой и простой является то, что она кусочно- линейная, т. е. что в промежутках между узлами она ведет себя в соответствии с линейным законом. Тогда интерполяция называется линейной, и этот метод мы будем довольно часто применять в алгоритмах компьютерной графики.

Пусть на плоскости задана система координат XOY и отрезок [x_1,x_2] на оси OX, на концах которого заданы значения y_1,y_2 некоторой линейной функции (рис. 3.3). Тогда для любой точки x внутри заданного отрезка соответствующее значение y вычисляется по формулам

y=ty_1+(1-t)y_2, \qquad t=(x_2-x)/(x_2-x_1).

Линейная интерполяция функции одной переменной

Рис. 3.3. Линейная интерполяция функции одной переменной

Обратимся теперь к задаче интерполяции функций двух переменных. В этом случае наиболее простой также является интерполяция по трем заданным точкам опять же с помощью кусочно-линейной функции. Пусть на плоскости задан треугольник с вершинами (x_1,y_1),(x_2,y_2),(x_3,y_3) и заданы значения функции в этих точках z_1,z_2,z_3. Тогда три точки (x_i,y_i,z_i) определяют в пространстве треугольник, который является плоской фигурой. Предполагается, что площадь треугольника больше нуля, или, как говорят, треугольник невырожденный. Для определения значения функции в произвольной точке (x,y), лежащей внутри треугольника, воспользуемся так называемыми барицентрическими координатами (\alpha,\beta,\gamma) этой точки. Геометрический смысл этих координат заключается в том, что они равны отношению площадей треугольников, изображенных на рис. 3.4:

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

Рис. 3.4. Линейная интерполяция функции двух переменных

\alpha=\frac{S_1}{S}, \; \beta=\frac{S_2}{S}, \; \gamma=\frac{S_3}{S}, \; S=S_1+S_2+S_3.
Эти числа неотрицательны и удовлетворяют следующим соотношениям:
\left.
\begin{aligned}
& \alpha+\beta+\gamma=1 \\
& \alpha x_1+\beta x_2+\gamma x_3=x \\
& \alpha y_1+\beta y_2+\gamma y_3=y
\end{aligned}
\right\}.
Эти соотношения будем рассматривать как уравнения для нахождения чисел (\alpha,\beta,\gamma).

Определитель этой системы уравнений есть

\Delta=
\begin{vmatrix}
1 & 1 & 1 \\
x_1 & x_2 & x_3 \\
y_1 & y_2 & y_3
\end{vmatrix}
=(x_2-x_1)(y_3-y_1)-(x_3-x_1)(y_2-y_1),
и он по модулю равен удвоенной площади треугольника, поэтому \Delta\ne 0, следовательно, система имеет единственное решение при любой правой части. Воспользуемся формулами Крамера и выпишем вид этого решения:
\alpha=\frac{\Delta_1}{\Delta}, \quad \beta=\frac{\Delta_2}{\Delta}, \quad \gamma=1-\alpha-\beta,
где
\begin{aligned}
& \Delta_1=
\begin{vmatrix}
1 & 1 & 1 \\
x & x_2 & x_3 \\
y & y_2 & y_3
\end{vmatrix}
=(x_2 y_3-x_3 y_2)+x(y_2-y_3)+y(x_3-x_2), \\
& \Delta_2=
\begin{vmatrix}
1 & 1 & 1 \\
x_1 & x & x_3 \\
y_1 & y & y_3
\end{vmatrix}
=(x_3 y_1-x_1 y_3)+x(y_3-y_1)+y(x_1-x_3).
\end{aligned}
После того как получены барицентрические координаты точки (x,y), значение функции в ней рассчитывается по формуле
z=\alpha z_1+\beta z_2 +\gamma z_3.

Существуют хорошо разработанные методы гладкой интерполяции функций. Особенно часто при интерполяции кривых и поверхностей используются сплайн-функции, которые гладко "склеиваются" из полиномов. Среди них следует выделить кубические сплайны, которые строятся из полиномов третьей степени. Они широко используются в инженерной геометрии благодаря простоте их вычисления и другим полезным свойствам. Мы их рассмотрим подробнее в последующих главах.

Сабина Бахриддинова
Сабина Бахриддинова
Дмитрий Трефилов
Дмитрий Трефилов