ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit
БИБЛИОТЕКА   ПРОГРАММ   JINRLIB

JACOBIAN - вычисление матрицы Якоби

D401

Автор: А.П.Сапожников Язык: Фортран

Программа вычисляет матрицу Якоби для набора из M функций, зависящих от N независимых переменных.

Структура:

Тип: - FUNCTION
Имена входа для пользователя: - JACOBIAN
Используемые внешние программы: - VFUN - п/п пользователя

Обращение:

K = JACOBIAN(VFUN,M,X,N,DF), где:

X - (REAL*8) массив независимых переменных;
N - (INTEGER) число независимых переменных;
M - INTEGER) количество функций;
DF - (REAL*8) двумерный массив размерности (M,N+10) для записи матрицы производных и хранения промежуточных результатов;
K - (INTEGER) результат функции JACOBIAN, характеризующий качество вычисленной матрицы производных:
К=0 - все производные вычислены без проблем;
К>0 - обнаружена осцилляция функции при изменении К-го аргумента;
К<0 - осцилляция слишком сильная, полагаем все DF(I)/DX(J) = 0.
VFUN - написанная пользователем подпрограмма для вычисления M значений вектор-функции F от N переменных:
SUBROUTINE VFUN(X,N,Y,M), где:
  REAL*8 X(N) - массив N независимых переменных:
  REAL*8 Y(M) - массив для M значений функции:
    Y(1) = ... - F1(X)
    . . .
    Y(M) = ... - FM(X)
  END

В вызывающей программе VFUN должна быть описана как EXTERNAL.

Метод:

Матрицей Якоби для функции F = { F(I),I=1,2,...,M } в точке
X= { X(J),J=1,2,...,N } будет матрица DF(M,N), состоящая
из производных DF(I,J) = DF(I)/DX(J) (I=1,2,...,M; J=1,2,...,N).
Для вычисления производных иcпoльзуется метoд Ромберга [1] чиcленнoгo интегpиpoвaния c pacпpocтpaнением нa чиcленнoе диффеpенциpoвaние, предложенный Рутишаузером [2].
Более подробное описание метода см. программу DERIVATIVE1 (D400).

Литература:

  1. Romberg W. Vereinfachte numerische Integration.
    Det. Kong. Norske Viedenskabers Selskab Forhandlinger, 28, Nr.7, Trondheim, 1955.
  2. Rutishauser H. Ausdehnung des Rombergschen Prinzips,
    Numerishe Mathematik, 5, 48-54, 1963.


home up e-mail