Текст подпрограммы и версий
aig5r_c.zip  aig5d_c.zip 
Тексты тестовых примеров
taig5r_c.zip  taig5d_c.zip 

Подпрограмма:  aig5r_c

Назначение

Модификация обратной матрицы после изменения одного элемента исходной матрицы

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

Пусть известна обратная матрица AI = A - 1, где A - вещественная квадратная матрица порядка N. Пусть матрица AM получена из матрицы A увеличением элемента  ai j на величину D. Подпрограмма aig5r_c выполняет такую модификацию матрицы AI, что в результате формируется матрица AIM = AM - 1 без непосредственного обращения матрицы AM

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

    int aig5r_c (real *ai, integer *n, integer *i__, integer *j,
            real *d__, real *aim)

Параметры

ai - вещественный двумерный массив размеров n на n, в котором задается известная матрица, обратная к исходной матрице A;
n - порядок матрицы AI (тип: целый);
i, j - заданные номера строки и столбца элемента  ai j  исходной матрицы A, значение которого увеличивается на величину d (тип: целый);
d - заданное значение константы, на которую увеличивается элемент  ai j  (тип: вещественный);
aim - вещественный двумерный массив размеров n на n, в котором помещается модифицированная обратная матрица

Версии

aig5d_c - модификация обратной матрицы после изменения одного элемента исходной матрицы в режиме удвоенной точности; при этом параметры ai, d и aim должны иметь тип double

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

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

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

int main(void)
{
    /* Initialized data */
    static float ai[4] /* was [2][2] */ = { -2.f,1.5f,1.f,-.5f };

    /* Local variables */
    extern int aig5r_c(float *, int *, int *, int *, float *, float *);
    static float d__;
    static int i__, j, n;
    static float aim[4] /* was [2][2] */;

    n = 2;
    i__ = 1;
    j = 2;
    d__ = 3.f;

    aig5r_c(ai, &n, &i__, &j, &d__, aim);

    for (i__ = 0; i__ <= 2; i__ += 2) {
         printf("\n %16.7e %16.7e \n", aim[i__], aim[i__+1]);
    }
    return 0;
} /* main */


Результаты: 

                       |   -0.363636     0.454545    |
    aim    =     |
                       |    0.272727    -0.0909091  |