Текст подпрограммы и версий ( Фортран )
id24r.zip
Тексты тестовых примеров ( Фортран )
tid24r.zip
Текст подпрограммы и версий ( Си )
id24r_c.zip
Тексты тестовых примеров ( Си )
tid24r_c.zip
Текст подпрограммы и версий ( Паскаль )
id24r_p.zip
Тексты тестовых примеров ( Паскаль )
tid24r_p.zip

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

Назначение

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

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

Пусть на равномерной прямоугольной сетке (xi, yj),  i = 1, ..., M1,  j = 1, ..., M2, с шагами H1 и H2 по  x и  y соответственно, заданы значения функции  fi j = f (xi, yj).

По точке (X Y), в которой требуется произвести вычисления, определяются номеpа K и L такие, что X  [xK, xK + 1],  Y  [yL, yL + 1]. Значение производной порядка P по  x и  порядка Q по  y  ( 0 ≤ P ≤ 2N - 2, 0 ≤ Q ≤ 2N - 2 ) при K, L:  N ≤ K ≤ M1 - N, N ≤ L ≤ M2 - N вычисляется по формуле:

      S (P,Q) (X,Y)  =  CN2 * 
                                               K+N         L+N       
                                         *     ∑            ∑           fi j s(P)i,2N (X)  s(Q)j,2N (Y) ,
                                             i=K-N+1    j=L-N+1 

где C1 = 1,  C2 = 2/3,  C3 = 11/20,  C4 = 151/315,  si, 2N (Х) и  sj, 2N (Y) - суть  В - сплайны порядка 2N, а N = 1, 2, 3, 4. При других K и L вычисления ведутся по формуле Тейлора.

Гребенников А.И. Алгоритм быстрой аппроксимации функций двух переменных и их производных сплайнами на равномерной сетке. B сб. "Численный анализ на ФОРТРАНе", вып.20, Изд-во МГУ, 1977.

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

    SUBROUTINE  ID24R (P, Q, N1, M1, M2, H1, H2, A1, A2, X, Y, F, S,
                                           IERR) 

Параметры

P, Q - целые переменные, значения которых на единицу больше порядка вычисляемой производной по  x и  y соответственно (при P = 1, Q = 1 вычисляется значение сплайна) 1 ≤ P ≤ 2N - 1, 1 ≤ Q ≤ 2N - 1;
N1 - порядок сплайна, N1 = 2N,  1 ≤ N ≤ 4 (тип: целый);
M1 - число узлов на оси  x (тип: целый);
M2 - число узлов на оси  y (тип: целый);
H1 - шаг сетки по оси  x (тип: вещественный);
H2 - шаг сетки по оси  y (тип: вещественный);
A1 - координата первого узла на оси  x (тип: вещественный);
A2 - координата первого узла на оси  y (тип: вещественный);
X, Y - координаты точки, в которой производятся вычисления производной (тип: вещественный);
F - двумерный вещественный массив размерности M1 на M2 заданных значений функций;
S - вещественная переменная, содержащая результат вычислений;
IERR - целая переменная, значение которой указывает причину возможной ошибки:
IERR=1 - шаги сетки слишком малы;
IERR=2 - точка (X, Y) лежит вне допустимой области [x1, xM1] * [y1, yM2];
IERR=3 - невеpно задан порядок сплайна;
IERR=4 - невеpно задан порядок производной.

Версии: нет

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

UTI I12 - подпрограмма выдачи диагностических сообщений.

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

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

       INTEGER  P, Q
       DIMENSION  F(11, 11), X(11), Y(11)
       P = 1
       Q = 1
       DO 1  J = 1, 11
       X(I) = (I - 1)*0.1
       DO 1  J = 1, 11
       Y(J) = (J - 1)*0.1
    1 F(I, J) = EXP( -X(I)*X(I) - Y(J)*Y(J) )
       CALL  ID24R (P, Q, 4, 11, 11, 0.1, 0.1, 0., 0., 0.3, 0.5, F, S, IERR)

Результат:   S = 0.70865