Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/106: Рейтинг темы: голосов - 106, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 14
1

СЛАУ методом Жордана-Гаусса

20.04.2013, 17:36. Просмотров 20437. Ответов 8
Метки нет (Все метки)


Нужна программа для решения СЛАУ методом Жордана-Гаусса с выбором главного элемента.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2013, 17:36
Ответы с готовыми решениями:

Вылет программы для вычисления СЛАУ методом Жордана-Гаусса при исполнении
День добрый! Написал программу для вычисления СЛАУ методом Жордана-Гаусса. Однако при исполнении...

Решение СЛАУ методом Жордана
Решить СЛАУ методом Жордана, Вычислить интегральнок выражение методом Симпсона

Решение СЛУ методом Жордана-Гаусса, заменить массив на динамический
#include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; class...

СЛАУ методом Гаусса
Здравствуйте! Алгоритм понимаю. Нужно привести к треугольному виду, затем осуществить обратный ход....

8
21 / 13 / 5
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
20.04.2013, 17:51 2
Случайно, не в мифи учишься?
0
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 14
20.04.2013, 18:07  [ТС] 3
hoob, нет, а что?
0
21 / 13 / 5
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
20.04.2013, 18:34 4
Цитата Сообщение от Reminaru Посмотреть сообщение
hoob, нет, а что?
Просто есть готовая программа (с интерфейсом), но не хотелось бы, что бы ее в мифи сдавали еще раз
0
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 14
20.04.2013, 18:39  [ТС] 5
hoob, ну я не в мифи учусь если что) можешь скинуть?

Добавлено через 1 минуту
hoob, и мне бы код тоже сам, я хоть посмотрю, что и как работает)
0
21 / 13 / 5
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
20.04.2013, 18:50 6
Цитата Сообщение от Reminaru Посмотреть сообщение
hoob, ну я не в мифи учусь если что) можешь скинуть?

Добавлено через 1 минуту
hoob, и мне бы код тоже сам, я хоть посмотрю, что и как работает)
Написано, правда, под Qt, но на C++
3
Вложения
Тип файла: rar GaussMethod_with_release.rar (4.62 Мб, 1262 просмотров)
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 14
20.04.2013, 19:22  [ТС] 7
hoob, спасибо)

Добавлено через 1 минуту
hoob, а чисто коды еще есть?
0
21 / 13 / 5
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
20.04.2013, 19:39 8
Цитата Сообщение от Reminaru Посмотреть сообщение
hoob, спасибо)

Добавлено через 1 минуту
hoob, а чисто коды еще есть?
В смысле чисто коды? Там же одна папка с релизом, другая с исходниками

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
//Сам метод Гаусса - матрица приводится к виду, когда под главной диаганалью нули
for (k=0 ; k < n ; k++)
        {
            if(usr_vedelm->isChecked()) vedElem(A,k); //если выбрана опция вызова процедуры выбора ведущего элемента
            for ( i = k+1 ; i < n; i++ )
            {
                buf = A[i][k]/A[k][k];
                for ( j = k ; j < n+1 ; j++)
                    A[i][j]=A[i][j]-buf*A[k][j];
            }
        }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Ищем решение снизу вверх прямой подстановкой 
void MyWidget::findSolution(double **A, double **B)
{
    int n = usr_dim -> text().toInt();
    int i,j;
    double buf=0.0;
    double* X = new double [n];
    X[n-1]=A[n-1][n]/A[n-1][n-1];
    for ( i = n-2; i >= 0; i-- )
    {
        buf =0;
        for ( j = i+1 ; j < n ; j++)
            buf=buf+A[i][j]*X[j];
        X[i]=1.0/A[i][i]*(A[i][n]-buf);
    }
    newValue(X,1);
    nevyazka(B,X); //ищем невязку
}
Процедура выбора ведущего (главного) элемента. Передается указатель на матрицу и номер итерации
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
void MyWidget::vedElem(double **A, int k)
{
    int n = usr_dim->text().toInt();
    int kmax=k;
    double det = 1.0;
    double Amod;
    double Amax=fabs(A[k][k]);
    if (k<n)
    {
        for (int i = k+1 ; i < n ; i++)
        {
            Amod=fabs(A[i][k]);
            if (Amod > Amax)
            {
                Amax=Amod;
                kmax=i;
            }
        }
    }
    if (fabs(Amax)<=DBL_EPSILON) //DBL_EPSILON - машинный ноль, для типа double
    {
        det=0.0;
        crash();
        return;
    }
    if (kmax!=k)
    {
        for (int j = k; j < n+1 ; j++)
        {
            double buf=A[k][j];
            A[k][j]=A[kmax][j];
            A[kmax][j]=buf;
        }
        det=-det;
    }
    det=det*A[k][k];
 
}
0
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 14
20.04.2013, 23:02  [ТС] 9
hoob, спасибо огромное)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2013, 23:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

СЛАУ методом Гаусса
Написал комменты к имеющейся проге, и хочу понять, верно ли я понял её. В общем и целом ход...

СЛАУ методом Гаусса
Здравствуйте, подскажите пожалуйста, решаю СЛАУ методом Гаусса, но решение зависит от параметра...

СЛАУ методом Гаусса
Всем доброго времени суток. По-сколько я новичек в программирование, то вот скачал код, для...

Решание СЛАУ методом Гаусса в С++
Салют обитателям форума! Вот значит какое дело, у меня такое задание : &quot;Решение уравнений методом...


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

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

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