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

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

Восстановить пароль Регистрация
 
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 119
18.02.2014, 19:31     Решить систему методом Гаусса и найти невязку #1
решить систему методом гаусса и найти невязку
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++
Преобразовать матрицу заданную в обычном виде в треугольную!(методом гаусса) Найти количество строк, среднее арифметическое элементов которых меньше з C++
C++ Методом Гаусса решить систему n линейных алгебраических уравнений
Решить систему уравнений матричным методом. C++
Решить уравнение методом Гаусса C++
C++ Как найти систему методом гауса
Найти решение системы линейных уравнений методом Гаусса с выбором главного элемента в столбце C++
Решить СЛАУ методом Гаусса (проверить) C++

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

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

Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru