Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 30
1

Метод Гаусса: объяснить что происходит в каждой строчке кода

13.02.2017, 18:40. Показов 644. Ответов 0

Author24 — интернет-сервис помощи студентам
Есть код метода гаусса, не совсем понимаю что он делает, можете объяснить и написать комментарии к коду?

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
 /* метод Гаусса для решения системы уравнений, заданной 
 матрицей коэффициентов matr.
 Метод рекурсивно приводит матрицу к треугольному виду,
 параметр line определяет номер уравнения (ряда), «ниже» которого
 необходимо обнулить коэффициенты под номером line */
 
float* gauss(float** matr, int rows, int columns, int line) {
    if (line == rows - 1) {
        float* result = new float[rows];
        
        for (int i = rows - 1; i >= 0; i--) {
            float temp = matr[i][columns - 1];
            for (int j = i + 1; j < rows; j++) {
                temp = temp - matr[i][j] * result[j];
            }
            if (matr[i][i] == 0) {
                result[i] = 0;
            }
            else {
                result[i] = temp / matr[i][i];
            }
        }
        return result;
    }
    cout << " "  << endl;
    float koef = matr[line][line];
    for (int i = line + 1; i < rows; i++) {
        float koef2 = matr[i][line];
        for (int j = 0; j < columns; j++) {
            matr[i][j] = matr[i][j] * koef - koef2 * matr[line][j];
        }
    }
    
    print(matr, rows, columns);
    printf("\n");
    return gauss(matr, rows, columns, line + 1);
}
в main выводится
C++
1
2
3
4
float *koefs = gauss(matrix, 4, 5, 0); // решение системы уравнений методом Гаусса
 
    for (int i = 0; i < 4; i++) { // вывод коэффициентов на экран
        cout << koefs[i] << endl;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2017, 18:40
Ответы с готовыми решениями:

Прокомментировать и подробно объяснить, что происходит в каждой строчке кода
#include &lt;ctime&gt; #include &lt;iostream&gt; using namespace std; void Vvod(int* massiv,int n,int...

Cтруктура: Объясните, пожалуйста, что происходит в каждой строчке кода.
объясните пожалуйста что происходит в каждой строчке void Create(Array* set) { set-&gt;length...

пожалуйста, объясните что происходит в каждой строчке программы
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace...

Объяснить, что происходит в заданном фрагменте кода
ifstream f(&quot;Базаданных.bd&quot;, ios::binary); f.read((char*)&amp;P,sizeof(P)); do { ...

0
13.02.2017, 18:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2017, 18:40
Помогаю со студенческими работами здесь

Объяснить, что происходит в заданных фрагментах кода
помогите объяснить функции заранее спасибо 1. for (j = 0, a = 10; a &lt; 30000; a++) { for...

Объяснить, что происходит в заданных фрагментах кода
Здравствуйте, товарисчи! Очень хотелось бы объяснения хода работы данных программ + того, что они...

Объяснить, что происходит в заданном фрагменте кода
В подпрограмме Всё предельно ясно кроме одной строки - P.year=y-'0'; Объясните недалёкому что...

Объяснить, что происходит в данном фрагменте кода (матрицы)
Вообщем столкнулся с первой проблемой в изучении данного языка (с++). Мой мозг просто отказывается...


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

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