Программа вычисляет матрицу Якоби для набора из 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).
Литература:
- Romberg W. Vereinfachte numerische Integration.
Det. Kong. Norske Viedenskabers Selskab Forhandlinger,
28, Nr.7, Trondheim, 1955.
- Rutishauser H. Ausdehnung des Rombergschen Prinzips,
Numerishe Mathematik, 5, 48-54, 1963.