Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 07.02.2018
Сообщений: 2
Matlab 2017

Обратная матрица методом Гаусса

12.01.2020, 00:20. Показов 6523. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть функция на языке C++, которая находит обратную матрицу методом Гаусса. Она проверена, все работает.
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
for (int k = 0; k < N; k++)
    {
        temp = A[k][k];
 
        for (int j = 0; j < N; j++)
        {
            A[k][j] /= temp;
            E[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;
                E[i][j] -= E[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;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
Здесь A - исходная матрица, E - единичная матрица, N - размерность.

При попытке перенести данный код в матлаб, возникла следующая проблема.
Не работает вторая половина программы (это проверено все на практике), а именно эта часть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
Реализация в матлабе:
Matlab M
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
function [E] = RevGauss(A,N)
E = eye(N); 
for k1 = 1:N
    temp1 = A(k1,k1);
    for j1 = 1:N
        A(k1,j1) = A(k1,j1) / temp1;
        E(k1,j1) = E(k1,j1) / temp1;
    end
    for i1 = (k1+1):N
        temp2 = A(i1,k1);
        for j2 = 1:N
            A(i1,j2) = A(i1,j2) - A(k1,j2)*temp2;
            E(i1,j2) = E(i1,j2) - E(k1,j2)*temp2;
        end
    end
end
for k2 = (N-1):-1:2
   for i = (k2-1):-1:1
     temp3 = A(i,k2);
      for j = 1:N
         A(i,j) = A(i,j) - A(k2,j)*temp3;
          E(i,j) = E(i,j) - E(k2,j)*temp3;
     end
  end
end
end
Подскажите, в чем может быть проблема. Ломаю голову. Такое чувство, что не замечаю чего-то очевидного.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.01.2020, 00:20
Ответы с готовыми решениями:

Обратная матрица методом окаймления.
текст: A = ; n = size(A); for k=1:n AK = A(1:k,1:k); % Матрица используемая на данном шаге if k == 1 M(1,1) = 1 /...

Обратная матрица
Как найти обратную матрицу от вещественной обратной матрицы? У меня A=inv(Q) Вот результат: Q = 1.0e+006 * 1.3115 ...

Обратная матрица
Нужно вычислить обратную марицу методом гаусса и гаусса-жордано ,но нельзя использовать при этом встроенные функции.Может кто с таким...

2
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
12.01.2020, 19:49
Лучший ответ Сообщение было отмечено tortuga199 как решение

Решение

tortuga199, в 17 строке в условии цикла должно быть N, а не N-1.
В вашем коде некоторые циклы можно убрать.
0
0 / 0 / 0
Регистрация: 07.02.2018
Сообщений: 2
14.01.2020, 00:09  [ТС]
Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2020, 00:09
Помогаю со студенческими работами здесь

Интегрирование методом Симпсона и методом Гаусса
помогите запрограммировать метод симпсона и метод интегрирования гаусса, и если не сложно объяснить.Буду очень благодарен

Решение СЛАУ методом Гаусса
Здравствуйте! Помогите пожалуйста разобраться в чем ошибка! Программа - решение СЛАУ методом Гаусса. приводит к ступенчатому виду, дальше...

Несобственный интеграл методом гаусса
Проблема в реализации в среде matlab программы по расчету несобственного интеграла методом Гаусса. На Delphi 7 кое как получилось...

Система уравнений методом Гаусса
Есть 3 задачи и ни одну не знаю как решить в программе Мatlab. Разбирающиеся форумчане, прощу помощи решить, пожалуйста. Нужен хотя бы...

Решение СЛАУ методом Гаусса
В программе есть ошибка,помогите её найти и исправить,пожалуйста)str=str2num(get(handles.in1,'String')); ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru