Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
strelok200
1 / 1 / 0
Регистрация: 16.04.2015
Сообщений: 36
#1

Метод Гаусса - C++

17.11.2016, 22:38. Просмотров 189. Ответов 0
Метки нет (Все метки)

Приветствую, подскажите в чем ошибка.
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
int gauss(int n, double **A, double **&E)
{
    //создание единичной матрицы
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
        {
            if (i == j)
                E[i][j] = 1;
            else
                E[i][j] = 0;
        }
 
    //приведение к верхнетреугольному виду и нахождение определителя
    for (int step = 0; step<n - 1; step++)
        for (int row = step + 1; row < n; row++)
        {
            double coeff = -A[row][step] / A[step][step];
            for (int col = step; col < n; col++)
            {
                A[row][col] += A[step][col] * coeff;
                E[row][col] += E[step][col] * coeff;
            }
        }
 
    double e;
    for (int i = 0; i < n; i++)
        det *= A[i][i];
    cout << "Определитель А = " << det << endl << endl;
 
    //получаем единицы в главной диагонали
    if (det != 0)
    {
        
        for (int k = 0; k < n; k++)
        {
            double t = A[k][k];
            for (int j = 0; j < n; j++)
            {
                A[k][j] /= t;
                E[k][j] /= t;
            }
        }
                
        for (int step = n-1; step > 0; step--)
            for (int row = step - 1; row >=0; row--)
            {
                double coeff = -A[row][step];
                for (int col = n - 1; col >= 0; col--)
                {
                    A[row][col] += A[step][col] * coeff;
                    E[row][col] += E[step][col] * coeff;
                }
            }
        cout << "Обратная матрица А" << endl;
        print_matrix(n, n, E);
    }
 
 
    return 1;
}
Приведение к верхнетреугольному виду и нахождение определителя работает нормально, проблемы начинаются при получении нулей ниже глав. диагонали. Никак не могу понять, в чем причина некорректных значений.

Добавлено через 1 час 0 минут
Пробовал по разному делать - та же проблема - не все значения корректны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2016, 22:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Метод Гаусса (C++):

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя - C++
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Метод Гаусса - C++
В школе задали написать программу , которая решает систему уравнений методом Гаусса. Матрица квадратная (колличество строк = колличеству...

метод гаусса - C++
Помогите,пожалуйста Преподаватель попросил расписать программу по блокам #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include...

Метод Гаусса - C++
Как решить квадратную матрицу методом Гаусса, я ее привел к треугольному виду, не могу понять как дальше быть....

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

метод гаусса - C++
найти метод гаусса n+1 значение определителя в n+1 точке, а затем решить систему из n+1 уравнение с n+1 неизвестными. составить...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2016, 22:38
Привет! Вот еще темы с ответами:

Метод Гаусса - C++
Как реализовать метод Гаусса в моей программе? Вкратце о том, что сделано: void Gauss(int N)//объявил функцию { int i, k; double...

метод Гаусса - C++
дана система линейных уравнений, в графическом режиме надо написать программу. Не понимаю как, помогите. в системе 4 уравнения

Метод Гаусса в С++ - C++
Подскажите please, как запустить эту программу, через C++??? Решение системы линейных уравнений методом Гаусса. #include&lt;io.h&gt; ...

Метод Гаусса - C++
Всем привет. Ребят, что скажите по поводу такой реализации метода Гаусса: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt;...


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

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

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