Текст подпрограммы и версий ( Фортран ) iib8r.zip , iib8d.zip |
Тексты тестовых примеров ( Фортран ) tiib8r.zip , tiib8d.zip |
Текст подпрограммы и версий ( Си ) iib8r_c.zip , iib8d_c.zip |
Тексты тестовых примеров ( Си ) tiib8r_c.zip , tiib8d_c.zip |
Текст подпрограммы и версий ( Паскаль ) iib8r_p.zip , iib8e_p.zip |
Тексты тестовых примеров ( Паскаль ) tiib8r_p.zip , tiib8e_p.zip |
Вычисление значения в заданной точке интерполируемой функции двух переменных, определенной на прямоугольной неравномерной сетке, по известным значениям на этой сетке ее второй частной производной по второй переменной методом бикубических сплайнов.
Пусть заданы узлы неравномерной прямоугольной сетки:
X1A = { x1(1), x2(1), ...,xM(1) } ; X2A = { x1(2), x2(2), ..., xN(2) } , а также значения интерполируемой функции f (x(1), x(2)) и ее второй частной производной ∂2 f (x(1), x(2)) / ∂x(2) 2 в узлах этой сетки: YA(I, J) = f (X1A(I), X2A(J)) ; Y2A(I, J) = ∂2 f (X1A(I), X2A(J)) / ∂x(2) 2 , I = 1, 2, ..., M ; J = 1, 2, ..., N .
Подпрограмма I IB8R вычисляет значение Y функции f (x(1), x(2)) в заданной точке с координатами (X1, X2), лежащей внутри сеточного прямоугольника, методом бикубических сплайнов.
Н.С.Бахвалов, Численные методы. Изд - во "Наука", 1973.
SUBROUTINE I IB8R (X1A, X2A, YA, Y2A, M, N, X1, X2, Y, YT, Y2T, YYT, U)
Параметры
X1A - X2A | вещественные векторы длины M и N, содержащие узлы {x1 (1), x2 (1), ...,xM (1)} и {x1 (2), x2 (2), ..., xN (2)} соответственно; |
YA - | вещественный двумерный массив размеров M на N, содержащий значения интерполируемой функции f (x (1), x (2)) двух переменных в узлах заданной сетки; |
Y2A - | вещественный двумерный массив размеров M на N, содержащий значения второй частной производной функции f по второй переменной в узлах заданной сетки; |
M, N - | длины векторов X1A и X2A соответственно (тип: целый); |
X1, X2 - | координаты заданной точки внутри сеточного прямоугольника, в которой ищется значение интерполируемой функции f (тип: вещественный); |
Y - | вещественная переменная, содержащая вычисленное значение интерполируемой функции f в точке (X1, X2); |
YT - | вещественный вектор длины N, используемый в подпрограмме в качестве рабочего; |
Y2T - | вещественный вектор длины max (M, N), используемый в подпрограмме в качестве рабочего; |
YYT, U - | вещественные векторы длины M, используемые в подпрограмме в качестве рабочих. |
Версии
I IB8D - | вычисление значения в заданной точке интерполируемой функции двух переменных, определенной на прямоугольной неравномерной сетке, по известным значениям на этой сетке ее второй частной производной по второй переменной методом бикубических сплайнов режиме удвоенной точности. |
Вызываемые подпрограммы
IDS8R - IDS8D | вычисление вторых производных таблично - заданной функции в узлах неравномерной сетки методом кубических или натуральных кубических сплайнов при заданных первых производных функции в концевых узлах сетки в режиме одинарной и удвоенной точности соответственно; используются в подпрограммах I IB8R и I IB8D соответственно. |
I IS8R - I IS8D | вычисление значения в заданной точке интерполируемой табличной функции, определенной в узлах неравномерной сетки, упорядоченной по возрастанию, по известным значениям ее второй производной в узлах этой сетки методом кубических сплайнов в режиме одинарной и удвоенной точности соответственно; используются в подпрограммах I IB8R и I IB8D соответственно. |
Замечания по использованию: нет
REAL X1A(5), X2A(4), YA(5, 4), Y2A(5, 4), YT(4), Y2T(5), * YYT(5), U(5) M = 5 N = 4 R = 0.0 DO 1 I = 1, M X1A(I) = R 1 R = R + 0.1 R = 0.0 DO 2 I = 1, N X2A(I) = R 2 R = R + 0.1 DO 4 I = 1, M DO 4 J = 1, N YA(I, J) = SIN(X1A(I))*SIN(X2A(J)) 4 Y2A(I, J) = -YA(I, J) X1 = 0.55 X2 = 0.65 CALL IIB8R (X1A, X2A, YA, Y2A, M, N, X1, X2, Y, YT, Y2T, * YYT, U) Результат: Y=0.321498