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

Решение СЛАУ методом Гаусса

21.09.2014, 22:11. Показов 380. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужна помощь! есть код, но он немного не правильный, 1.нужно вводить вектор х самому
2. должны быть свободные члены
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
 
void print_aug_matr(double** mass, int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n+1; j++)
            cout<<mass[i][j]<<" ";
        cout<<endl;
    }
}
void enter_aug_matr(double** mass, int n)
{
    cout<<"zapolnim mass "<<endl;
    for(int i=0; i<n; i++)
        for (int j=0; j<n; j++)
    cin>>mass[i][j];
    cout<<endl;
}
double* Metod_Gaussa (double** mass, int n)
{
    double** copy;
    copy= new double*[n];
    for (int s=0; s<n; s++)
        copy[s]=new double[n+1];
    for(int b=0; b<n; b++)
        for(int c=0; c<n; c++)
            copy[b][c]=mass[b][c];
    //Pryamoi xod
    for(int k=0; k<n; k++)
    {
        double max=mass[k][k];
        int a=k;
        for(int i=k+1; i<n; i++)
        {
            if ( fabs(mass[i][k])>fabs (max))
            {
                max=mass[i][k];
                a=i;
            }
        }
        if(fabs(max)<1e-9)
        {
            cout<< "Matrica viroshdena"<<endl;
            return 0;
        }
        double* p=mass[k];
        mass[k]=mass[a];
        mass[a]=p;
            double glav=mass[k][k];
        for(int j=k; j<n+1; j++)
            mass[k][j]/=glav;
 
        for(int i=k+1; i<n; i++)   ///
        {
            double del= mass[i][k];
            for(int j=k; j<n+1; j++)
                mass[i][j]-=del*mass[k][j];
        }
    }
    cout<<"Vivodim treug matr"<<endl;
    print_aug_matr(mass, n);
    // Obratnii xod
    double *x= new double[n];
    for( int j=n-1; j>=0; j--)
    {
        x[j]=mass[j][n];
        for (int i=j+1; i<n;i++)
            x[j]= x[j] - mass[j][i]*x[i];
    }
    cout<<"Vektor x= "<<endl;
    cout<<endl;
    //Vektor F
    cout<<"Vektor nevyazki "<<endl;
    double *nev= new double[n];
    int f=0;
    for (int u=0; u<n; u++)
    {
        double sum=0;
        for(int h=0; h<n; h++)
        {
            sum+=copy[u][h]*x[h];
        }
        nev[u]=sum-copy[u][n];
    }
    for (int yh=0; yh<n; yh++)
        cout<<nev[yh]<<endl;
    // Norma vektora F
    double maxx=nev[0];
    int g=0;
    int vc=0;
    for(int vc=0; vc<n; vc++)
        if(fabs(nev[vc])>fabs (maxx))
            maxx=nev[vc];
    g=vc;
    cout<<"Norma ravna = "<< maxx<<endl;
    return x;
}
//Main
int main()
{
    int n;
    cout<<"vvedite n ";
    cin>> n;
    double** mass;
    mass= new double*[n];
    for (int i=0;i<n; i++)
        mass[i]= new double[n+1];
    double* result= new double[n];
    enter_aug_matr(mass,n);
    print_aug_matr(mass,n);
    result=Metod_Gaussa(mass,n);
    for(int i=0; i<n; i++)
        cout<<result[i]<<" ";
    system ("pause");
    cout<<endl;
}
Добавлено через 2 часа 50 минут
есть кто-нибудь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2014, 22:11
Ответы с готовыми решениями:

Решение СЛАУ методом Гаусса
Всем привет))) Друзья, сколько я уже лазию по инету и по этому форуму, я никак не могу найти...

Решение СЛАУ методом Гаусса
помогите разобраться!!ВЫдает 85 ошибок!!!! #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Решение СЛАУ методом Гаусса
У меня программа для решения слау методом Гаусса с выбором главного элемента по столбцам. Что-то...

Решение СЛАУ методом Гаусса
В институте задали написать программу решения СЛАУ методом Гаусса, но я абсолютный чайник (знаю,...

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

Решение СЛАУ методом Гаусса, индексы
Собственно программа решает слау методом гаусса. Как найти индексы главного элемента на второй...

Реализовать решение СЛАУ методом Гаусса
Не могу разобраться в чём проблема. Пытаюсь реализовать метод гаусса, вроде бы всё правильно, но...

Решение СЛАУ методом Гаусса с выбором ведущего элемента
1) Написать вычислительную программу на языке программирования С++ для решения СЛАУ методом Гаусса...

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


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

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