434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
1
.NET 4.x

Алгоритм получения обратной матрицы.

13.05.2011, 20:06. Показов 3321. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите получить обратную матрицу. Мучаюсь и не как не могу получить
Навоял вот такой алгоритм но кажется что он врёт...
Посчитав в ручную матрицу
Матрица

1.....5.....5.....4.....4
7.....5.....1.....4.....7
2.....2....65....7.....8
4.....2.....6.....8.....1
2.....3.....8.....7.....8
получил
-0.12.....0.15.....0.01.....0.05.....-0.09
0.28......0.01.....-0.......-0.02.....-0.15
0...........0.........0.02.......-0.....-0.02
-0.......-0.08.....-0.02.....0.12.....0.08
-0.08.....0.03.....-0.......-0.11.....0.15

А прога выдала.....
Результат проги

1.....-95.......-95........-76........-76
0.....-16.......-3,4.......-13,6.....-23,8
0.....-2,46.....-79.......-8,61.....-9,846
0.....-2,25.....-6,75.....-8.........-1,125
0.......0..........0...........0...........1

Алгоритм получения обратной матрицы.
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
 double l = 1;
        double[,] x;
        private void button7_Click(object sender, EventArgs e)
        {
            int n = dataGridView1.ColumnCount;
            double[,] z = matric.Edinicnai(n);//пихаем единичную матрицу
            x = matric.Read(dataGridView1);//считываю матрицу
            for (int j = 0; j < (n - 1); j++)
            {
                for (int k = 1; k < n; k++)
                {
                    l = x[j, k] / x[j, j];
 
                    for (int i = j; i < n; i++)
                    {
                        z[j, k] = z[j, k] - (x[j, i] * l);
                    }
 
                }
            }
 
            //Приведение к диагональному виду исходной единичной матриц - получение на месте исходной матрицы единичную, а на месте единичной - обратную к исходной
 
            for (int j = n - 1; j > 0; j--)
            {
                for (int k = n - 2; k > 1; k--)
                {
                    l = x[j, k] / x[j, j];
 
                    for (int i = j; i < n; i++)
                    {
                        x[j, k] = x[j, k] - (x[j, i] * l);
                    }
                }
            }
 
            matric.Print_Matr(z, dataGridView2);
        }
Последний раз редактировалось Петррр; Сегодня в 22:08. Причина: Форум не для шуток.

Не по теме:

А я и не шучу... Просто привычка обозначать в темах на каком языке...


 Комментарий модератора 
Я отредактировал сообщение, потому что у Вас было написано: "матрицо". Не знаю какой вы национальности, но официальный язык сайта русский.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2011, 20:06
Ответы с готовыми решениями:

Не работает алгоритм нахождения обратной матрицы
Делаю winforms приложение которая шифрует методом Хилла. Все алгоритмы сначала сделал в консольке и...

Реализовать алгоритм нахождения обратной матрицы методом Гаусса
Прошу помощи, так как сам уже даже и не знаю. Нужно реализовать алгоритм нахождения обратной...

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

Вычислить матрицу обратную заданной и найти произведение обратной матрицы и исходной матрицы
Вычислить обратную матрицу заданной и найти произведение обратной матрицы исходной матрицы ....

4
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
13.05.2011, 20:11 2
Kill100, зачем выкладывать на форум код математических действий (а здесь только алгоритмы и математика) и просить их найти ошибку?
возьми отладчик...найди то место где у тебя начинается расхождение с ручным просчетом...попытайся исправить...а вот если не получится - тогда милости просим...выкладываешь код, указываешь точные строки где начинается косяк и мы всей нашей дружной братией пытаемся понять, в чем там ошибка...

заметил разницу? либо ковыряться в чужом коде и алгоритме...либо пытаться понять в чем ошибка когда человек точно объясняет чего хочет и где у него падает...
0
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
13.05.2011, 20:13  [ТС] 3
Да блин я уже ковырялся..
А отладчиком пользоваться не умею
И в универе не учили Вот хз где ошибка расходится (
Уже раза 2 перелопатил так не вижу..
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
13.05.2011, 20:20 4
Через F9 ставим точку останова, через F11 трассируем.
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
13.05.2011, 23:34 5
Цитата Сообщение от Kill100 Посмотреть сообщение
А отладчиком пользоваться не умею
И в универе не учили Вот хз где ошибка расходится (
может поможет?
1
13.05.2011, 23:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2011, 23:34
Помогаю со студенческими работами здесь

Подскажите метод нахождения обратной матрицы и определителя матрицы
Подскажите метод нахождения обратной матрицы и определителя матрицы на С#

Составить алгоритм для получения зависимости W от m при значениях v, изменяющихся от v1 до v2 с шагом dv
Кинетическая энергия движущегося тела W=m*v2/2, где m - масса тела, v - его скорость. Составить...

Составить подпрограмму для получения обратной матрицы
В общем суть проблемы: нарыл эту программку, но она не работает... в самом начале в строке &quot;...

Алгоритм нахождения обратной матрицы
Доброго вечера У кого-нибудь есть алгоритм нахождения обратной матрицы? Препод требует, и его не...


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

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

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