0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
1

Нахождение обратной матрицы

24.05.2014, 19:56. Показов 7708. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Напишите, пожалуйста, кому не сложно, простой, понятный код нахождения обратной матрицы. Буду очень признателен!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2014, 19:56
Ответы с готовыми решениями:

Умножение матрицы на матрицу, и нахождение обратной матрицы
Здравствуйте! нужно написать программу, которая могла бы производить всякие операции над матрицами...

Нахождение обратной матрицы
Мне очень нужен код программы обратной матрицы.

Нахождение обратной матрицы
Доброго времени суток! Возникла необходимость найти обратную матрицу любым из способов, так как в...

Нахождение обратной матрицы
Здравствуйте!помогите с программой на языке си-она демонстрирует нахождение обратной матрицы.я...

1
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 786
24.05.2014, 21:46 2
Лучший ответ Сообщение было отмечено Donville как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//обратная матрица  метод  Гаусса—Жордана
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
#include <iomanip>
 
using namespace std;
 
void inversionMatrix(double **, int);
void printMatrix(double **, int);
void deleteMatrix(double **, int);
double**allocatMatrix(int);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int N;
   cout << "Введите размер матрицы ";
   cin >> N;
 
    double **matrix = allocatMatrix(N);
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
     matrix[i][j] = rand()%100;
     cout << "      Исходная матрица "<<"\n\n";
     printMatrix(matrix,N);
     inversionMatrix(matrix, N);
 
     cout << "\n\n";
     cout << "      Обратная матрица "<<"\n\n";
     printMatrix(matrix,N);
 
    deleteMatrix(matrix,N);
    return 0;
}
void inversionMatrix(double **A, int N)
{
    double temp;
    double **B =allocatMatrix(N);
       for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
        {
            B[i][j] = 0.0;
 
            if (i == j)
                B[i][j] = 1.0;
        }
 
    for (int k = 0; k < N; k++)
    {
        temp = A[k][k];
 
        for (int j = 0; j < N; j++)
        {
            A[k][j] /= temp;
            B[k][j] /= temp;
        }
 
        for (int i = k + 1; i < N; i++)
        {
            temp = A[i][k];
 
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                B[i][j] -= B[k][j] * temp;
            }
        }
    }
 
    for (int k = N - 1; k > 0; k--)
    {
        for (int i = k - 1; i >= 0; i--)
        {
            temp = A[i][k];
 
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                B[i][j] -= B[k][j] * temp;
            }
        }
    }
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            A[i][j] = B[i][j];
 
    deleteMatrix(B,N);
}
void printMatrix(double**matrix, int n)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
cout<< setw(8) << setprecision(3) << setiosflags (ios::fixed | ios::showpoint)<< matrix[i][j];
cout << "\n";
}
}
void deleteMatrix(double **matrix, int n)
{
for (int i = 0; i < n; i++)
        delete [] matrix[i];
 
    delete [] matrix;
}
double**allocatMatrix(int n)
{
       double **matrix = new double *[n];
 
    for (int i = 0; i < n; i++)
        matrix[i] = new double [n];
        return matrix;
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2014, 21:46
Помогаю со студенческими работами здесь

Нахождение обратной матрицы
помогите, пожалуйста, для моей матрицы найти обратную ? моя матрица. Можно уменьшить код для нее?...

Нахождение обратной матрицы
Доброго времени суток! Помогите, пожалуйста, с нахождением обратной матрицы. Нашел такой код тут на...

Нахождение обратной матрицы
Здравствуйте, уважаемые программисты! Прощу помощи. Для заданной матрицы A(3,3), найти обратную А...

Нахождение обратной матрицы
Помогите,пожалуйста доделать или переделать нужно найти обратную матрицу тут маленько наброски...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru