Посчитать обратную матрицу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Посчитать обратную матрицу

Посчитать обратную матрицу для заданной матрицы A, если это возможно. _________________________________________________________________________

На входе

В первой строке задано число m, количество строк и столбцов в матрице A, 0 < m ≤ 20. Следующие m строк содержат m целых чисел - элементов матрицы A.
_________________________________________________________________________

На выходе

Обратная матрица к A. Гарантируется, что обратная матрица также состоит из целых чисел (их и надо вывести). Если обратной матрицы не существует, выведите NONE.
_________________________________________________________________________

Пример

На входе

2 1 2 1 1

На выходе

-1 2 1 -1

Решение задачи: «Посчитать обратную матрицу»

textual
Листинг программы
#include<stdio.h>
int main()
{
    int matrix[20][20], r,a;
    int i, j, k, m;
    scanf_s("%d", &m);
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
        {
            scanf_s("%i", &matrix[i][j]);
        }
    }
    for(i = 0; i < m; i++)
    {
        for(j = m; j < 2*m; j++)
        {
            if(i == (j - m))
                matrix[i][j] = 1;
            else
                matrix[i][j] = 0;
        }
    }
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
        {
            if(i != j)
            {
                r = matrix[j][i]/matrix[i][i];
                for(k = 0; k < 2*m; k++)
                {
                    matrix[j][k] -= r * matrix[i][k];
                }
            }
        }
    }
    for(i = 0; i < m; i++)
    {
        a = matrix[i][i];
        for(j = 0; j < 2*m; j++)
        {
            matrix[i][j] /= a;
        }
    }
    for(i = 0; i < m; i++)
    {
        for(j = m; j < 2*m; j++)
        {
            printf("%i\t", matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Объяснение кода листинга программы

В этом коде посчитывается обратная матрица. Вот список, описывающий шаг за шагом:

  1. Ввод количества строк исходной матрицы (m).
  2. Ввод исходной матрицы (матрицы) с помощью двух вложенных циклов.
  3. Создание фиктивной диагонали для матрицы, где индексы соответствуют диагонали, а значения равны единице.
  4. Вычисление обратной матрицы с помощью метода Гаусса, используя два вложенных цикла.
  5. Вывод обратной матрицы на экран с помощью двух вложенных циклов.
  6. Конец программы.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы