Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 121
#1

Решить систему методом Гаусса и найти невязку - C++

18.02.2014, 19:31. Просмотров 476. Ответов 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream.h>
#include <math.h>
#include <conio.h>
 
 
int main()
{
int i, k, m, j, z;
        double** a;
        double* x;
        double* b;
        int const n = 5; 
        a = new double*[n];
        x = new double[n];
        b = new double[n];
 
        for( i=0; i<n; i++)
                a[i] = new double[n];
        cout << "Vvedite matricu(a):\n";
        for( i=0; i<n; i++)
        for( j=0; j<n; j++)
        { 
            cin >> a[i][j];
        }
        cout << "Vvedite stolbec(b): \n";
        for( i=0; i<n; i++)
        {
            cin >> b[i];
        }
          
       for( k=0; k<n-1; k++) // прямой проход     // идем слево на право по коэфицентам х
       for( m=k+1; m<n; m++) // если на диагонали элемент = 0, то поменяем местами строки
                {
                 if(a[m][m] == 0)                                                  
                for( j=k; j<n; j++)             
                {
                 double r = a[k][j]; //меняем местами a[k][j] и a[p][j]
                 a[k][j] = a[m][j];
                 a[m][j] = r;
                }
                 }
 
            double s=a[m][k]/a[0][k];
            b[m] = b[m] - b[0] * s;
             for( z=0; z < n; z++)
             {
                 a[m][z] = a[m][k] - a[0][k] * s;
 
              }
                
                           
                      
        // ищем решения
            for( m=n-1; m >= 0; m--)
            {
         double sum=0;
         // идем по строке спаво налево, считая сумму корень*коэфицент, до текущего корня
         for( i=n-1; i > m; i--)
         {
             sum += x[i] * a[m][i];
         }
         x[m] = (b[m] - sum)/a[m][m];
                        
            }
        
 
        cout << "\nMatrica(x): ";
        for(i = 0; i < n; i++)
        cout << x[i] << "  ";
        
        double H = 0;
        for( i = 0; i < n; i++)
        {
         double q = 0;
         for( j = 0; j < n; j++)
         {
            q += a[i][j] * x[j];
         }
        H = fabs(b[i] - q);
        cout << "Nevyazka = " << H <<endl;
        }
 
         for( i=0; i<0; i++) 
       delete[] a[i];
        delete [] a;
        delete [] b;
        delete [] x;
        a=NULL;
        b=NULL;
        x=NULL; 
 
        getch();
        return 0;
}
Добавлено через 20 часов 4 минуты
вроде бы правильно написал, но не правильно находит. помогить)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 19:31     Решить систему методом Гаусса и найти невязку
Посмотрите здесь:

Решить систему алгебраических уравнений методом Гаусса - C++
Решить систему алгебраических уравнений методом Гаусса: 6X1-X2-X3=11,33, -X1+6X2-X3=32, -X1-X2+6X3=42;

Методом Гаусса решить систему n линейных алгебраических уравнений - C++
Помогите пожалуйста написать на с++ методом Гаусса решить систему n линейных алгебраических уравнений. Отсюда нашла именно ту тему там...

Решить уравнение методом Гаусса - C++
надо посчитать методом гаусса ур-е A \cdot X = B 3-размерность A = \begin{pmatrix} 2.74 &amp; -1.18 &amp; 3.17 \\ 1.12 &amp; 0.83 &amp;...

Решить СЛАУ методом Гаусса (проверить) - C++
Есть код!компилируется без ошибок.Задача программы решить СЛАУ методом Гаусса Но я не понимаю почему вывод информации осуществляется...

Решить систему уравнений матричным методом. - C++
Решить систему уравнений матричным методом.

Решить систему уравнений методом Крамера - C++
Ненавижу математику!!! Нужно написать программу на чистом C для решения системы уравнений методом Крамера. Помню там нужно подставлять...

Решить систему линейных уравнений вида Ax=b методом Зейделя - C++
2)Решить систему линейных уравнений вида Ax=b методом Зейделя 6.9 0,0319 0,039 0,461 0,0191 6,0 0,0333 0,405 0,0134 0,0205 5,1...

Найти определитель заданной матрицы n-го порядка методом Гаусса - C++
1)Матрицу A(m,n) случайным образом заполнить разными целыми числами от 1 до m x n. 2)Найти определитель заданной матрицы n-го порядка...

Найти решение СЛАУ методом Гаусса (без перестановки строк) - C++
Итак, требуется найти решение СЛАУ методом Гаусса (без перестановки строк). Проще говоря, есть матрица А, умножаемая на матрицу Х,...

Найти решение системы линейных уравнений методом Гаусса с выбором главного элемента в столбце - C++
Решить систему линейных уравнений методом Гаусса с выбором главного элемента в столбце. Вот моя программа #include &quot;stdafx.h&quot; ...

Как найти систему методом гауса - C++
Здравствуйте может кто подсказать как используя метод гаусса найти решение системы А*у=b ______a(i,1)___a(i,2)__...

Решить СЛАУ многопоточным вариантом метода Гаусса - C++
Здравствуйте,прошу помощи по условию моего задания: Решить систему линейных уравнений параллельным вариантом метода Гаусса. Количество...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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