Текст подпрограммы и версий ( Фортран ) ip04r.zip , ip04d.zip |
Тексты тестовых примеров ( Фортран ) tip04r.zip , tip04d.zip |
Текст подпрограммы и версий ( Си ) ip04r_c.zip , ip04d_c.zip |
Тексты тестовых примеров ( Си ) tip04r_c.zip , tip04d_c.zip |
Текст подпрограммы и версий ( Паскаль ) ip04r_p.zip , ip04e_p.zip |
Тексты тестовых примеров ( Паскаль ) tip04r_p.zip , tip04e_p.zip |
Бикубическая интерполяция функции двух переменных, заданной вместе с частными производными первого порядка и смешанной производной второго порядка в вершинах элементарного сеточного прямоугольника.
Пусть X1L, X1U, X2L и X2U следующим образом определяют вершины элементарного сеточного прямоугольника:
(X1L,X2U) | | (X1U,X2U) ______________________________________ | 4 3 | | (X1,X2) | | 1 2 | ______________________________________ (X1L,X2L) | | (X1U,X2L)
Эти вершины пронумерованы на рисунке цифрами, начиная с нижней левой вершины против часовой стрелки. Пусть в каждой из вершин известны значения интерполируемой функции
Y = f(x1, x2) , обеих ее частных производных первого порядка: Y1 = ∂f / ∂x1 , Y2 = ∂f / ∂x2 и смешанной производной Y12 = ∂2 f / ∂x1 ∂x2 .
Подпрограмма IP04R при помощи бикубической интерполяции вычисляет в точке (X1,X2), заданной внутри исходного элементарного сеточного прямоугольника, значение функции
AY = f (X1, X2) , обеих ее частных производных первого порядка: AY1 = ∂ f (X1, X2) / ∂x1 , AY2 = ∂ f (X1, X2) / ∂x2 и смешанной производной AY12 = ∂2 f (X1, X2) / ∂x1 ∂x2.
Используются следующие формулы:
4 4 AY = ∑ ∑ ci j t i-1 u j-1 ; i=1 j=1 4 4 AY1 = ∑ ∑ (i - 1) ci j t i-2 u j-1 ; i=1 j=1 4 4 AY2 = ∑ ∑ (j - 1) ci j t i-1 u j-2 ; i=1 j=1 4 4 AY12 = ∑ ∑ (i - 1) (j - 1) ci j t i-2 u j-2 ; i=1 j=1
Здесь t = (X1 - X1L) / (X1U - X1L), U = (X2 - X2L) / (X2U - X2L). Коэффициенты ci j ( i, j = 1, 2, 3, 4 ) вычисляются в подпрограмме IP04R.
Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1973.
SUBROUTINE IP04R (Y, Y1, Y2, Y12, X1L, X1U, X2L, X2U, X1, X2, AY, AY1, AY2, AY12, C)
Параметры
Y, Y1 - Y2, Y12 | вещественные векторы длины 4, содержащие соответственно значения интерполируемой функции, обеих ее частных производных первого порядка и смешанной производной в вершинах заданного элементарного сеточного прямоугольника, пронумерованных начиная с нижней левой вершины против часовой стрелки; |
X1L - X1U | левая и правая координаты вершин элементарного сеточного прямоугольника по первой переменной (тип: вещественный); |
X2L - X2U | нижняя и верхняя координаты вершин элементарного сеточного прямоугольника по второй переменной (тип: вещественный); |
X1, X2 - | координаты точки, заданной внутри исходного элементарного сеточного прямоугольника, в которой выполняется интерполяция (тип: вещественный); |
AY, AY1 - AY2, AY12 | вещественные переменные, значения которых полагаются равными соответственно значениям в точке (X1, X2) интерполируемой функции, ее частных производных первого порядка и смешанной производной; |
C - | вещественный двумерный массив размеров 4 на 4, в котором помещаются коэффициенты, используемые при бикубической интерполяции. |
Версии
IP04D - | бикубическая интерполяция функции двух переменных в режиме удвоенной точности; при этом все формальные параметры должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
REAL Y(4), Y1(4), Y2(4), Y12(4), C(4, 4) X1L = 0.0 X1U = 0.1 X2L = 0.0 X2U = 0.15 Y(1) = SIN(X1L)*SIN(X2L) Y(2) = SIN(X1U)*SIN(X2L) Y(3) = SIN(X1U)*SIN(X2U) Y(4) = SIN(X1L)*SIN(X2U) Y1(1) = COS(X1L)*SIN(X2L) Y1(2) = COS(X1U)*SIN(X2L) Y1(3) = COS(X1U)*SIN(X2U) Y1(4) = COS(X1L)*SIN(X2U) Y2(1) = SIN(X1L)*COS(X2L) Y2(2) = SIN(X1U)*COS(X2L) Y2(3) = SIN(X1U)*COS(X2U) Y2(4) = SIN(X1L)*COS(X2U) Y12(1) = COS(X1L)*COS(X2L) Y12(2) = COS(X1U)*COS(X2L) Y12(3) = COS(X1U)*COS(X2U) Y12(4) = COS(X1L)*COS(X2U) X1 = 0.06 X2 = 0.07 CALL IP04R (Y, Y1, Y2, Y12, X1L, X1U, X2L, X2U, X1, X2, AY, * AY1, AY2, AY12, C) Результаты: AY = 0.4194o5E-02 AY1 = 0.698169E-01 AY2 = 0.598171E-01 AY12 = 0.995755