Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 3
1

обратная матрица

07.04.2011, 10:54. Показов 4739. Ответов 4
Метки нет (Все метки)

помогите написать опрограмму обратной матрицы!!! плиз!!!! никак не получается
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2011, 10:54
Ответы с готовыми решениями:

Обратная матрица
1 элемент считает а дальше нули(проверял по калькулятору 1 элемент сходиться) вот код using...

Обратная матрица
помогите, пожалуйста как найти обратную матрицу?

Обратная матрица
Люди добрые! Прошу у вас помощи, для курсовой осталось сделать последнее задание, нужно найти...

Обратная матрица
Добрый день! Подскажите пожалуйста код нахождения обратной матрицы n на n.

4
1492 / 759 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
08.04.2011, 00:17 2
Надюшка623, Покажите как пытались и вчем проблемы?
0
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 3
08.04.2011, 12:24  [ТС] 3
дело в том, что я вообще не разбираюсь в программировании.мне помогли только с определителем.
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
118
119
120
121
using System;
using System.Collections.Generic;
using System.Text;
// обратная матрица
namespace inverse
{
    class Matrix
    {
        public int row, col;
        public int[,] p;
 
        public Matrix(int n, int m)
        {
            row = n;
            col = m;
            p = new int[n, m];
        }
 
        public void InitMartix() // Ввод матрицы
        {
 
            for (int i = 0; i < row; i++)
                for (int j = 0; j < row; j++)
                {
 
                   Console.Write("A[{0},{1}] = ", i, j);
                   p[i, j] = Convert.ToInt32(Console.ReadLine());
                }
        }
 
 
        public double Det2x2()
        {
            double det;
            det = p[0, 0] * p[1, 1] - p[0, 1] * p[1, 0];
 
            return det;
        } //Det 2x2
 
        public void ShowMartix() //Вывод матрицы
        {
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < row; j++)
                {
                    Console.Write(p[i, j]);
                    Console.Write("  ");
                }
                Console.WriteLine();
            }
        }
        //Минор
        public Matrix Menor(int a, int b)
        {
            int i, j, p, q;
            Matrix MEN = new Matrix(row - 1, col - 1);
            for (j = 0, q = 0; q < MEN.col; j++, q++)
                for (i = 0, p = 0; p < MEN.row; i++, p++)
                {
                    if (i == a) i++;
                    if (j == b) j++;
                    MEN.p[p, q] = this.p[i, j];
                }
            return MEN;
        }
 
    }
 
    class Program
    {
 
        //Определитель матрицы
        public static double Det(Matrix B)
        {
            int n;
            int signo;
            double det = 0;
 
            if (B.row != B.col)
            {
                Console.WriteLine("Matritsa dolgna biti kvadratnoi");
                return 0;
            }
            else
                if (B.row == 1)
                    return B.p[0, 0];
                else
                    if (B.row == 2)
                        return B.Det2x2();
                    else
                        for (n = 0; n < B.col; n++)
                        { //Проверка на знак
                            if ((n & 1) == 0)
                            {
                                signo = 1;
                            }
                            else
                            {
                                signo = -1;
                            }
                            //(n&1)==0 ? (signo=1):(signo=-1);
                            det = det + signo * B.p[0, n] * Det(B.Menor(0, n));
                        }
 
            return det;
        }
 
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размерность первой матрицы: ");
            int[,] A = new int[Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())];
            Matrix m = new Matrix(A.GetLength(0),A.GetLength(0));
            m.InitMartix();
            Console.WriteLine("Matrix");
            m.ShowMartix();
            double d = Det(m);
            Console.WriteLine();
            Console.Write("Det = ");
            Console.Write(d);
            Console.WriteLine();
            Console.ReadKey();
0
184 / 187 / 17
Регистрация: 26.11.2010
Сообщений: 511
08.04.2011, 12:38 4
Хотите считать как 1/detA умножить на матрицу алгебраических дополнений?
0
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 3
08.04.2011, 13:52  [ТС] 5
агась! училка заставляет так
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2011, 13:52

Обратная матрица
Блин народ киньте метод. Я уже не знаю почему мой метод не вычисляет(((.

Обратная матрица
Нужно написать обратную матрицу, начал искать определитель, но появилась ошибка и не могу ее...

Жордановы исключения-обратная матрица
Вот написала код для нахождения обратной матрицы способом Жордановых исключений. РАБОТАЕТ, но как...

Обратная матрица методом Гаусса, исправить код
Помогите пожалуйста..всю ночь просидел не могу найти ошибку,возвращает NaN- понимаю что идет...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.