Текст подпрограммы и версий
ias2r_p.zip
Тексты тестовых примеров
tias2r_p.zip

Функция:  IAS2R (модуль IAS2R_p)

Назначение

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

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

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

Hа первых четырех этапах фиксируется индекс по  Y, а на пятом этапе используются четыре полученных значения.

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

function IAS2R(var TX :Array of Real; NX :Integer;
                var TY :Array of Real; NY :Integer;
                var CXY :Array of Real; NCX :Integer; NCY :Integer;
                IDX :Integer; IDY :Integer; XX :Real; YY :Real): Real;

Параметры

TX - вещественный вектоp длины  NX + 4, содержащий значения узлов сетки сплайна по  X;
NX - заданное число узлов исходной сетки по  X,  NX ≥ 4 (тип: целый);
TY - вещественный вектоp длины  NY + 4, содержащий значения узлов сетки сплайна по  Y;
NY - заданное число узлов исходной сетки по  Y,  NY ≥ 4 (тип: целый);
CXY - вещественный двумерный массив, содержащий значения коэффициентов сплайна, размерностью  NCX * NCY;
NCX - заданное число стpок массива  CXY,  NCX ≥ NX + 2 (тип: целый);
NCY - заданное число столбцов массива  CXY,  NCY ≥ NY + 2 (тип: целый);
IDX - заданный порядок вычисляемой производной по  X,  0 ≤ IDX ≤ 3 (тип: целый);
IDY - заданный порядок вычисляемой производной по  Y,  0 ≤ IDY ≤ 3 (тип: целый);
XX - заданное значение аргумента по  X, при котоpом производятся вычисления,  TX (3) ≤ XX ≤ TX (NX + 2) (тип: вещественный);
YY - заданное значение аргумента по  Y, при котоpом производятся вычисления,  TY (3) ≤ YY ≤ TY (NY + 2) (тип: вещественный).

Версии: нет

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

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

 

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

Для вычисления сеток и коэффициентов сплайна рекомендуется воспользоваться подпрограммой IAC2R.

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

Unit TIAS2R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, IAC2R_p, IAS2R_p;

function TIAS2R: String;

implementation

function TIAS2R: String;
var
I,J :Integer;
S :Real;
FXY :Array [0..15] of Real;
ТХ :Array [0..7] of Real;
TY :Array [0..7] of Real;
CY :Array [0..7] of Real;
CXY :Array [0..63] of Real;
const
X :Array [0..3] of Real = ( 2.0,3.0,4.0,5.0 );
Y :Array [0..3] of Real = ( 2.0,3.0,5.0,6.0 );
FХА :Array [0..3] of Real = ( 24.0,36.0,60.0,72.0 );
FХВ :Array [0..3] of Real = ( 60.0,90.0,150.0,180.0 );
label
_10;
begin
Result := '';  { результат функции }
for I:=1 to 4 do
 begin
  for J:=1 to 4 do
   begin
    FXY[(I-1)+(J-1)*4] := Y[J-1]*(IntPower(X[I-1],3));
_10:
   end;
 end;
IAC2R(X,4,Y,4,FXY,4,4,1,1,1,FXA,2,FXB,
     0,X,0,X,TX,TY,CXY,8,8,CY);
S := IAS2R(TX,4,TY,4,CXY,8,8,2,0,2.4,3.6);
Result := Result + Format('%s',[' PEЗYЛЬТАТ :   S=']);
Result := Result + Format('%20.16f ',[S]) + #$0D#$0A;
UtRes('TIAS2R',Result);  { вывод результатов в файл TIAS2R.res }
end;

end.

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