Текст подпрограммы и версий ( Фортран )
ia11r.zip
Тексты тестовых примеров ( Фортран )
tia11r.zip
Текст подпрограммы и версий ( Си )
ia11r_c.zip
Тексты тестовых примеров ( Си )
tia11r_c.zip
Текст подпрограммы и версий ( Паскаль )
ia11r_p.zip
Тексты тестовых примеров ( Паскаль )
tia11r_p.zip

Подпрограмма:  IA11R

Назначение

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

Математическое описание

Пусть задана действительная функция F (X, Y), принадлежащая к классу (2*LX + 2, 2*LY + 2) раз дифференцируемых функций, где LХ и LY порядки аппроксимирующих формул по X и по Y.

Задача приводится к решению двух одномерных задач с точностью EPS/2, используя оценки погрешности приближения, приведенные в [1].

Единственным требованием является то, что область определения функции должна быть шире области, в которой ищутся оптимальные сетки.

Если по какой - то переменной заданная точность не достигается, выдается для этой переменной максимально допустимая равномерная сетка.

1. Завьялов Ю.С., Kвасов Б.И., Мирошниченко В.Л. Методы сплайн - функций. M.: Hаука, 1980.

Использование

    SUBROUTINE  IA11R (XYF, AX, BX, AY, BY, EPS, LX, LY, IDX, IDY,
                                           JX, JY, NX, NY, TX, TY, CXY, NCX, NCY,
                                           CX, CY) 

Параметры

XYF - имя вещественной подпрограммы - функции, вычисляющей значения аппроксимируемой функции;
AX - заданное число, начало отрезка по X (тип: вещественный);
BX - заданное число, конец отрезка по X, BX > AX (тип: вещественный);
AY - заданное число, начало отрезка по Y (тип: вещественный);
BY - заданное число, конец отрезка по Y, BY > AY (тип: вещественный);
EPS - заданное число, требуемая точность приближения, EPS ≥ 2* (10 - 6), (тип: вещественный);
LX - заданное число, порядок аппроксимирующей формулы по X, 0 ≤ LX ≤ 1 (тип: целый);
LY - заданное число, порядок аппроксимирующей функции по Y, 0 ≤ LY ≤ 1 (тип: целый);
IDX - заданное число, порядок приближаемой производной по X, 0 ≤ IDX ≤ LX + 1 (тип: целый);
IDY - заданное число, порядок приближаемой производной по Y, 0 ≤ IDY ≤ LY + 1 (тип: целый);
JX - заданное число, признак формируемой сетки по X, 0 ≤ JX ≤ 1 (тип: целый);
 

JX = 0 - равномерная сетка ;

JX = 1 - неравномерная сетка ;
JY - заданное число, признак формируемой сетки по Y, 0 ≤ JY ≤ 1 (тип: целый);
 

JY = 0 - равномерная сетка ;

JY = 1 - неравномерная сетка;
NX - целое число узлов равномерной сетки по X, на котоpом получают оценки нужных производных, 6 ≤ NX ≤ NCX - 8; на выходе содержит значение оптимального числа узлов по X;
NY - целое число узлов равномерной сетки по Y, на котоpом получают оценки нужных производных, 6≤NY≤NCY-8; на выходе содержит значение оптимального числа узлов по Y;
TX - вещественный вектоp длины NCX, содержащий NX + 4 вычисленных значений узлов сетки по X;
TY - вещественный вектоp длины NCY, содержащий NY + 4 вычисленных значений узлов сетки по Y;
CXY - вещественный двумерный массив, содержащий вычисленные коэффициенты сплайна размерностью NCX*NCY;
NCX - заданное число стpок массива CXY, NCX ≥ 14 (тип: целый);
NCY - заданное число стpок массива CXY, NCY ≥ 14 (тип: целый);
CX - вещественный рабочий вектоp длины NCX;
CY - вещественный рабочий вектоp длины NCY.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию

  Подпрограмма использует рабочие подпрограммы - функции и подпрограммы  IAC1R1, IA10R1 и IAS1R2.

Пример использования

       EXTERNAL  XYF
       DIMENSION  TX(49), TY(49), CX(49), CY(49), CXY(49, 49)
       NX = 41
       NY = 41
       CALL  IA11R (XYF, -1., 1., -1., 1., 0.0002, 1, 1, 0, 0, 1, 1, NX, NY, TX, 
      *                        TY, CXY, 49, 49, CX, CY)
       END

       REAL  FUNCTION  XYF(X, Y)
       XYF = X**5 + Y**5
       RETURN
       END

Результаты:

                |  -1.1447 -1.0724 -1.0000 -0.9276 -0.8539 -0.7786 -0.7016  |
       TX = |  -0.6225 -0.5410 -0.4566 -0.3686 -0.2757 -0.1759 -0.0641  |
                |   0.0744   0.1848   0.2840   0.3764  0.4640  0.5481   0.6294  |
                |   0.7083   0.7852   0.8603   0.9339  1.0000  1.0661   1.1322  |

                |  -1.1447 -1.0724 -1.0000 -0.9276 -0.8539 -0.7786 -0.7016  |
       TY = |  -0.6225 -0.5410 -0.4566 -0.3686 -0.2757 -0.1759 -0.0641  |
                |   0.0744   0.1848   0.2840   0.3764  0.4640  0.5481   0.6294  |
                |   0.7083   0.7852   0.8603   0.9339  1.0000  1.0661   1.1322  |