Пусть на плоскости XY определена прямоугольная область [a, b] ´[c, d], а на ней двумерная прямоугольная сетка, заданная декартовым произведением двух одномерных сеток {xk}, k = 0,…, n и {yl}, l = 0,…, m. Bосполнение сеточной функции Z(xk, yl) внутри прямоугольников [xk, xk+1] ´[yl, yl+1], где 0 £ k < n, 0 £ l < m, производится с помощью бикубических многочленов вида
причем результат такого восполнения будет гладким (т. е. непрерывны сама функция р3(х, у) и ее первые частные производные) не только внутри прямоугольников сетки, но и в узлах сетки, а также вдоль сторон прямоугольников сетки, т.е. во всей области аппроксимации. Более подробные сведения о методе можно найти в [18].
Этот метод восполнения реализован в программах ITPLBV и SFCFIT, которые отличаются друг от друга заданием исходных данных и видом получаемых результатов. SFCFIT вычисляет значения функции на сетке более мелкой, чем исходная, а ITPLBV находит значения функции в заданной совокупности точек, принадлежащих области.
Программа ITPLBV(LX,LY,X,Y,Z,N,U,V,W) восполняет функцию двух переменных Z(X,Y), заданную на прямоугольной неравномерной сетке, в указанной совокупности точек, принадлежащих области. Программа имеет следующие параметры:
- LX,LY
- число точек сетки по осям X и Y (LX ³ 2,LY ³ 2);
- X,Y
- массивы координат точек сетки по осям X и Y, расположенных в возрастающем порядке;
- Z
- двумерный массив значений функции Z(X,Y) в узлах сетки (размером (LX,LY));
- N
- число точек, в которых восполняется функция Z(X,Y), (N ³1);
- U,V
- массивы X- и Y-координат точек, в которых восполняется функция Z;
- W
- массив значений функции в точках (U (I), V (I)), I = 1, 2,…, N (длины N).
В программе параметр W является выходным.
Программа SFCFIT(LX,LY,X,Y,Z,MX,MY,NU,NV,U,V,W) восполняет функцию двух переменных Z(X,Y), заданную на прямоугольной неравномерной сетке, в узлах новой сетки, полученной из исходной делением интервалов между каждой парой соседних точек исходной сетки по осям X и Y на равные отрезки. Программа имеет следующие параметры:
- LX,LY
- число точек исходной сетки по осям X и Y;
- X,Y
- массивы координат точек исходной сетки по осям X и Y, расположенных в возрастающем или убывающем порядке;
- Z
- двумерный массив значений функции Z(X,Y) в узлах сетки (размером (LX,LY));
- MX,MY
- число подынтервалов между каждой парой точек исходной сетки по осям X и Y (MX ³ 2,MY ³ 2);
- NU
- число точек новой сетки по оси X, равное (LX-1) ´ MX+1;
- NV
- число точек новой сетки по оси Y, равное (LY-1) ´ MY+1;
- U,V
- массивы X- и Y-координат новой сетки;
- W
- двумерный массив значений функции в узлах новой сетки (размером (NU,NV)).
В программе параметры U, V, W являются выходными.