JACOBIAN            Библиотека "JINRLIB"               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.

    Mетoд:
    ------
    Матрицей Якоби для функции 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 (D401).

    Литература:
    -----------
    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.