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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 99, средняя оценка - 4.84
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 431
#1

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

04.02.2014, 14:12. Просмотров 14783. Ответов 10
Метки нет (Все метки)

Всем привет))) Друзья, сколько я уже лазию по инету и по этому форуму, я никак не могу найти правильно работающей программки. Может кто нибудь поможет в реализации, программа должна работать в консольном приложении Visual Studio 2008.
А задача такая:
Написать программу, которая решает систему линейных уравнений методом Гаусса, а также вычисляет определитель матрицы этим же методом.
То есть, пользователь должен вводить коэффициенты при x1, x2, x3 и y1 и так далее (пусть будет система из 3-х уравнений). И затем программа должна выдавать значения иксов и значение определителя.
Буду очень признателен, если кто-нибудь поможет)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
2087 / 1594 / 305
Регистрация: 15.12.2013
Сообщений: 6,375
04.02.2014, 14:15     Решение СЛАУ методом Гаусса #2
Что уже сделали?
Ev_Hyper
Заблокирован
04.02.2014, 14:15     Решение СЛАУ методом Гаусса #3
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
Друзья, сколько я уже лазию по инету и по этому форуму, я никак не могу найти правильно работающей программки
1. Покажите код программы, который вы нашли.
2. Дайте тестовый пример, который показывает, что реализация неправильная.
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 431
04.02.2014, 14:28  [ТС]     Решение СЛАУ методом Гаусса #4
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
#include "stdafx.h"
#include "iostream"
#include "math.h"
#include "stdlib.h"
#include "locale.h"
#include "conio.h"
using namespace std;
 
int main()
{
   int i, j, n, m;
   setlocale(LC_ALL, "rus");
//создаем массив
   cout << "введи число уравнений: ";
         cin >> n;
         cout << "введи число неизвестных: ";
         cin >> m;
         m+=1;
    float **matrix = new float *[n];
         for (i=0; i<n; i++)
             matrix[i] = new float [m];
 
//инициализируем
 
    for (i = 0; i<n; i++)
 
        for (j = 0; j<m; j++)
        {
            cout << "Элемент " << "[" << i+1 << " , " << j+1 << "]: "  ;
 
            cin >> matrix[i][j];
}
 
 //выводим массив
    cout << "matrix: " << endl;
      for (i=0; i<n; i++)
       {
          for (j=0; j<m; j++)
            cout << matrix[i][j] << " ";
        cout << endl;
       }
    cout << endl;
 
//Метод Гаусса
//Прямой ход, приведение к верхнетреугольному виду
    float  tmp, xx[m];
    int k;
 
    for (i=0; i<n; i++)
     {
       tmp=matrix[i][i];
         for (j=n;j>=i;j--)
             matrix[i][j]/=tmp;
           for (j=i+1;j<n;j++)
          {
             tmp=matrix[j][i];
               for (k=n;k>=i;k--)
             matrix[j][k]-=tmp*matrix[i][k];
          }
      }
  /*обратный ход*/
    xx[n-1] = matrix[n-1][n];
     for (i=n-2; i>=0; i--)
       {
           xx[i] = matrix[i][n];
           for (j=i+1;j<n;j++) xx[i]-=matrix[i][j]*xx[j];
       }
 
//Выводим решения
       for (i=0; i<n; i++)
           cout << xx[i] << " ";
       cout << endl;
 
    delete[] matrix;
 getch();
   return 0;
}
вот например, 46 строка ругается

Добавлено через 3 минуты
Методом Гаусса решить систему n линейных алгебраических уравнений
вот еще ссылка
Ev_Hyper
Заблокирован
04.02.2014, 14:33     Решение СЛАУ методом Гаусса #5
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
вот например, 46 строка ругается
C++
1
float  tmp, *xx = new float[m];
Добавлено через 1 минуту
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
вот еще ссылка
послушайте, ссылок можно сколько угодно накидать. Вместе с неправильно работающим кодом оставляйте тестовый пример, который показывает, что реализация неправильная..

Добавлено через 55 секунд
По вашему коду:
Код
введи число уравнений: 2
введи число неизвестных: 2
Элемент [1 , 1]: 1
Элемент [1 , 2]: 2
Элемент [1 , 3]: 3
Элемент [2 , 1]: 4
Элемент [2 , 2]: 5
Элемент [2 , 3]: 6
matrix:
1 2 3
4 5 6

-1 2
Для продолжения нажмите любую клавишу . . .
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 431
04.02.2014, 14:51  [ТС]     Решение СЛАУ методом Гаусса #6
Спасибо большое за решение))
а как выводить на экран значение определителя матрицы????
вот допустим, на вашем примере матрица:
1 2
4 5
Определитель равен: 1*5-4*2 = -3
Ev_Hyper
Заблокирован
04.02.2014, 15:01     Решение СЛАУ методом Гаусса #7
Alexandr1966,
Матрицы. Определители
вам нужен 2.6. (3 способ)
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 431
04.02.2014, 15:06  [ТС]     Решение СЛАУ методом Гаусса #8
да, мне нужен этот способ, а как его программно реализовать, как добавить код в этой программе?
Ev_Hyper
Заблокирован
04.02.2014, 15:21     Решение СЛАУ методом Гаусса #9
Alexandr1966, покажите как вы это понимаете(реализовываете)
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 431
04.02.2014, 15:27  [ТС]     Решение СЛАУ методом Гаусса #10
я вот именно не знаю, как это программно реализовать, так то на бумаге посчитать я конечно же смогу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 15:35     Решение СЛАУ методом Гаусса
Еще ссылки по теме:

C++ Решение СЛАУ методом Гаусса
СЛАУ методом Гаусса C++
C++ Почему программа прерывается с ошибкой? Реализовывал решение СЛАУ методом Гаусса
C++ Найти решение СЛАУ методом Гаусса (без перестановки строк)
C++ Реализовать решение СЛАУ методом Гаусса

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

Или воспользуйтесь поиском по форуму:
Ev_Hyper
Заблокирован
04.02.2014, 15:35     Решение СЛАУ методом Гаусса #11
Alexandr1966, а с чем конкретно сложности? вы ведь даже не пробуете сами выполнить задачу. Опишите словами, как вы понимаете общую формулу нахождения определителя.
Yandex
Объявления
04.02.2014, 15:35     Решение СЛАУ методом Гаусса
Ответ Создать тему
Опции темы

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