Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2023, 08:14   #1
Ольга Голёса
Новичок
Джуниор
 
Регистрация: 15.12.2022
Сообщений: 3
По умолчанию Обратная марица и определитель

Здравствуйте, написала код по нахождению корней в С++, но не могу понять, как сразу в этой же программе найти обратную матрицу. определитель можно найти отдельно. Проблема в том, что мои обратная матрица и определитель не сходятся с ответом. Прикрепляю код для нахождения корней и исходную матрицу.
{6.5, 3.8, -4.1, 1.2, 9.92},
{7.1, -2.7,-1.4, 1.4, 6.95},
{-1.8, -1, 4.3, 1.3, 7.91},
{1.5, -3.4, 7.8, -1.8, 15.09}

Код:
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
constexpr int n = 4;

vector<vector<double» M
{
{6.5, 3.8, -4.1, 1.2, 9.92},
{7.1, -2.7,-1.4, 1.4, 6.95},
{-1.8, -1, 4.3, 1.3, 7.91},
{1.5, -3.4, 7.8, -1.8, 15.09}
};
vector x(n);

for (int i = 0; i < n - 1; ++i)
for (int j = i + 1; j < n; ++j)
{
double f = M[j][i] / M[i][i];
for (int k = 0; k < n + 1; ++k)
M[j][k] = M[j][k] - f * M[i][k];
}

for (int i = n - 1; i >= 0; —i)
{
x[i] = M[i][n];
for (int j = i + 1; j < n; ++j)
if (i != j)
x[i] = x[i] - M[i][j] * x[j];
x[i] = x[i] / M[i][i];
}
cout«“Корни равны =”«endl;
for (int i = 0; i < n; ++i)
cout « “x[” « i + 1 « "] = " « x[i] « “\n”;
}

Последний раз редактировалось Ольга Голёса; 16.10.2023 в 08:16.
Ольга Голёса вне форума Ответить с цитированием
Старый 17.10.2023, 06:58   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 965
По умолчанию

Ольга Голёса, в коде синтаксические ошибки, программа даже не запустится
Алексей1153 вне форума Ответить с цитированием
Старый 18.10.2023, 09:58   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а если первый элемент матрицы a[1][1] сделать 0, то что будет результатом вычисления в этой строке?
Код:
double f = M[j][i] / M[i][i];
----------
приводите к треугольному виду и ищите определитель, как произведение всех диагональных элементов.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определитель Юля23 Паскаль, Turbo Pascal, PascalABC.NET 0 07.05.2015 15:28
Марица (QBasic) corsar_911 Помощь студентам 1 07.11.2013 05:42
Определитель. LelikBolik Помощь студентам 4 05.01.2011 21:10
Определитель ip. Baltimor Свободное общение 3 23.08.2010 20:29
Марица!))) 4ika Общие вопросы C/C++ 1 02.01.2010 19:02