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

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

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

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

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

Всем привет))) Друзья, сколько я уже лазию по инету и по этому форуму, я никак не могу найти правильно работающей программки. Может кто нибудь поможет в реализации, программа должна работать в консольном приложении Visual Studio 2008.
А задача такая:
Написать программу, которая решает систему линейных уравнений методом Гаусса, а также вычисляет определитель матрицы этим же методом.
То есть, пользователь должен вводить коэффициенты при x1, x2, x3 и y1 и так далее (пусть будет система из 3-х уравнений). И затем программа должна выдавать значения иксов и значение определителя.
Буду очень признателен, если кто-нибудь поможет)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2014, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение СЛАУ методом Гаусса (C++):

Решение СЛАУ методом Гаусса - C++
помогите разобраться!!ВЫдает 85 ошибок!!!! #include <stdio.h> #include <conio.h> #include <tchar.h> #include <iostream> #include...

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

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

Решение СЛАУ методом Гаусса, индексы - C++
Собственно программа решает слау методом гаусса. Как найти индексы главного элемента на второй итерации? #include <iostream.h> ...

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

Почему программа прерывается с ошибкой? Реализовывал решение СЛАУ методом Гаусса - C++
#include <iostream> #include <cmath> using namespace std; int main() { int n=0; int m=0; int l1=5; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
S_el
2100 / 1611 / 308
Регистрация: 15.12.2013
Сообщений: 6,451
04.02.2014, 14:15 #2
Что уже сделали?
0
Ev_Hyper
Заблокирован
04.02.2014, 14:15 #3
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
Друзья, сколько я уже лазию по инету и по этому форуму, я никак не могу найти правильно работающей программки
1. Покажите код программы, который вы нашли.
2. Дайте тестовый пример, который показывает, что реализация неправильная.
0
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
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 линейных алгебраических уравнений
вот еще ссылка
0
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
Для продолжения нажмите любую клавишу . . .
1
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
04.02.2014, 14:51  [ТС] #6
Спасибо большое за решение))
а как выводить на экран значение определителя матрицы????
вот допустим, на вашем примере матрица:
1 2
4 5
Определитель равен: 1*5-4*2 = -3
0
Ev_Hyper
Заблокирован
04.02.2014, 15:01 #7
Alexandr1966,
Матрицы. Определители
вам нужен 2.6. (3 способ)
0
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
04.02.2014, 15:06  [ТС] #8
да, мне нужен этот способ, а как его программно реализовать, как добавить код в этой программе?
0
Ev_Hyper
Заблокирован
04.02.2014, 15:21 #9
Alexandr1966, покажите как вы это понимаете(реализовываете)
0
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
04.02.2014, 15:27  [ТС] #10
я вот именно не знаю, как это программно реализовать, так то на бумаге посчитать я конечно же смогу
0
Ev_Hyper
Заблокирован
04.02.2014, 15:35 #11
Alexandr1966, а с чем конкретно сложности? вы ведь даже не пробуете сами выполнить задачу. Опишите словами, как вы понимаете общую формулу нахождения определителя.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 15:35
Привет! Вот еще темы с ответами:

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

СЛАУ методом Жордана-Гаусса - C++
Нужна программа для решения СЛАУ методом Жордана-Гаусса с выбором главного элемента.

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.02.2014, 15:35
Ответ Создать тему
Опции темы

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