Подпрограмма: IAC2R
Назначение
Вычисление сеток и коэффициентов бикубического
аппроксимирующего сплайна по заданным значениям функции двух переменных
и краевым условиям на заданных (возможно неравномерных) сетках.
Математическое описание
Задача решается аналогично случаю функции одной переменной.
Подробное изложение решения дано в работах [1,2] и в
описании подпрограммы IAC1R.
1.
|
Гребенников А.И., Казе В.О. - Л. Быстрые алгоритмы
аппроксимации функции сплайнами и решение некоторых прикладных
задач. - Методы и алгоритмы в численном анализе. M.:
Изд - во МГУ, 1984.
|
2.
|
Гребенников А.И. Метод сплайнов и решение некорректных
задач теории приближений. M.: Изд - во МГУ, 1983.
|
Использование
SUBROUTINE IAC2R (X, NX, Y, NY, FXY, NFX, NFY, LX, LY, MXA,
FXA, MXB, FXB, MYA, FYA, MYB, FYB, TX,
TY, CXY, NCX, NCY, CY)
Параметры
X -
|
вещественный вектоp длины NX, содержащий значения
узлов исходной сетки по X;
|
NX -
|
заданное число узлов исходной сетки по X,
NX ≥ 4 (тип: целый);
|
Y -
|
вещественный вектоp длины NY, содержащий значения
узлов исходной сетки по Y;
|
NY -
|
заданное число узлов исходной сетки по Y,
NY ≥ 4 (тип: целый);
|
FXY -
|
вещественный двумерный массив, содержащий
значения функции в узлах сетки, размерностью
NFX * NFY;
|
NFX -
|
заданное число стpок массива FXY,
NFX ≥ NX (тип: целый);
|
NFY -
|
заданное число столбцов массива FXY,
NFY ≥ NY (тип: целый);
|
LX -
|
заданное число, порядок аппроксимирующих формул по X,
0 ≤ LX ≤ 1
(тип: целый);
|
LY -
|
заданное число, порядок аппроксимирующих формул по Y,
0 ≤ LY ≤ 1
(тип: целый);
|
MXA -
|
заданное число, определяющее периодичность
функции по X или тип краевых условий на левом конце
отрезка по X,
0 ≤ MXA ≤ 3
(тип: целый);
|
MXA = 3 -
|
периодическая функция,
|
MXA = 0 -
|
условие интерполяции,
|
MXA=1,2 -
|
задана производная порядка (MXA, 0);
|
FXA -
|
вещественный вектоp длины NY, содержащий значения
производной порядка (MXA, 0) на левом конце
отрезка по X (используется, если MXA = 1, 2);
|
MXB -
|
заданное число, определяющее тип краевых условий
на правом конце отрезка по X, 0 ≤ MXB ≤ 2
(тип: целый) (используется, если MXA < 3);
|
MXB = 0 -
|
условие интерполяции,
|
MXB=1,2 -
|
задана производная порядка (MXB, 0);
|
FXB -
|
вещественный массив длины NY, содержащий значения
производной порядка (MXB, 0) на правом конце
отрезка по X (используется, если
MXB = 1, 2);
|
MYA -
|
заданное число, определяющее периодичность
функции по Y или тип краевых условий на левом конце
отрезка по Y,
0 ≤ MYA ≤ 3
(тип: целый);
|
MYA = 3 -
|
периодическая функция,
|
MYA = 0 -
|
условие интерполяции,
|
MYA=1,2 -
|
задана производная порядка (MYA, 0);
|
FYA -
|
вещественный вектоp длины NX, содержащий значения
производной порядка (MYA, 0) на левом конце
отрезка по Y (используется, если
MYA = 1, 2);
|
MYB -
|
заданное число, определяющее тип краевых условий
на правом конце отрезка по Y,
0 ≤ MYB ≤ 2
(тип: целый) (используется, если MYA < 3);
|
MYB = 0 -
|
условие интерполяции,
|
MYB=1,2 -
|
задана производная порядка (MYB, 0);
|
FYB -
|
вещественный массив длины NX, содержащий значения
производной порядка (MYB, 0) на правом конце
отрезка по Y (используется, если
MYB = 1, 2);
|
TX -
|
вещественный вектоp длины NX + 4, содержащий
вычисленные значения узлов сетки сплайна по X;
|
TY -
|
вещественный вектоp длины NY + 4, содержащий
вычисленные значения узлов сетки сплайна по Y;
|
CXY -
|
вещественный двумерный массив, содержащий
вычисленные коэффициенты сплайна размерностью
NCX * NCY;
|
NCX -
|
заданное число стpок массива CXY,
NCX ≥ NX + 4
(тип: целый);
|
NCY -
|
заданное число столбцов массива CXY,
NCY ≥ NY + 4
(тип: целый);
|
CY -
|
вещественный рабочий вектоp длины
MAX (NX, NY) + 4.
|
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию
|
Подпрограмма использует рабочие подпрограммы - функции и
подпрограммы IAC1R1, IAC1R2, IAC1R3, IAC1R4 и IAS1R2.
|
Пример использования
DIMENSION X(4), Y(4), FXY(4, 4), TX(8), TY(8), CY(8), CXY(8, 8),
* FXA(4), FXB(4)
DATA X /2., 3., 4., 5./
DATA Y /2., 3., 5., 6./
DATA FXA /24., 36., 60., 72./
DATA FXB /60., 90., 150., 180./
DO 10 I = 1, 4
DO 10 J = 1, 4
FXY(I, J) = Y(J) * (X(I)**3)
10 CONTINUE
CALL IAC2R (X, 4, Y, 4, FXY, 4, 4, 1, 1, 1, FXA, 2, FXB, 0, X, 0, X,
* TX, TY, CXY, 8, 8, CY)
Результаты:
TX = ( 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 )
TY = ( 0.00 1.00 2.00 3.00 5.00 6.00 7.00 8.00 )
CXY = ( 0.00 0.00 0.00 0.00 0.00 0.00 )
CXY = ( 6.00 12.00 20.00 28.00 36.00 42.00 )
CXY = ( 24.00 48.00 80.00 112.00 144.00 168.00 )
CXY = ( 60.00 120.00 200.00 280.00 360.00 420.00 )
CXY = ( 120.00 240.00 400.00 560.00 720.00 840.00 )
CXY = ( 210.00 420.00 700.00 980.00 1260.00 1470.00 )