Текст подпрограммы и версий aig0r_c.zip aig0d_c.zip aig0c_c.zip |
Тексты тестовых примеров taig0r_c.zip taig0d_c.zip taig0c_c.zip |
Обращение вещественной матрицы методом Жордана без выбора ведущего элемента.
Заданная матрица А N - го порядка приводится к единичной матрице Е поледовательностью элементарных преобразований Жордана L1, L2, ..., LN так, что LNLN-1...L1*А = Е, при этом А-1 = LNLN-1 ... L1.
В.В.Воеводин, Р.В.Петрина, Комплекс алгоритмов, основанных на преобразованиях типа Гаусса, в пакете линейной алгебры. Сб. "Численный анализ на ФОPТPАНе", вып.3, Изд-во МГУ, 1973.
int aig0r_c (real *a, integer *n)
Параметры
a - | двумерный n на n массив, в котором задается исходная матрица; по окончании работы подпрограммы в массиве a запоминается вычисленная обратная матрица (тип: вещественный); |
n - | заданный порядок матрицы (тип: целый). |
Версии
aig0d_c - | обращение матрицы, заданной с удвоенной точностью, методом Жордана без выбора ведущего элемента. |
aig0c_c - | обращение комплексной матрицы методом Жордана без выбора ведущего элемента. |
Вызываемые подпрограммы : нет
Замечания по использованию
1. |
В подпрограмме aig0d_c массив a имеет тип double. | |
2. | В подпрограмме aig0c_c массив a имеет тип complex. |
int main(void) { /* Initialized data */ static float a[16] /* was [4][4] */ = { 7.9f,8.5f,4.3f,3.2f,5.6f,-4.8f, 4.2f,-1.4f,5.7f,.8f,-3.2f,-8.9f,-7.2f,3.5f,9.3f,3.3f }; /* Local variables */ extern int aig0r_c(float *, int *); int i__; aig0r_c(a, &c__4); for (i__ = 0; i__ <= 12; i__+=4) { printf("\n %13.4e %13.4e %13.4e %13.4e \n", a[i__], a[i__+1], a[i__+2], a[i__+3]); } return 0; } /* main */ Результат: | 0.0505 0.0542 0.0062 0.0350 | | 0.0518 -0.0846 0.0721 -0.0003 | a-1 = | -0.0084 0.0432 0.0202 -0.1211 | | -0.0497 0.0279 0.0790 -0.0577 |