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

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

Войти
Регистрация
Восстановить пароль
 
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
#1

Решение уравнений методом Гаусса - C++

20.11.2013, 14:19. Просмотров 868. Ответов 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
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    float **matrix=NULL;
    int n, m;
    cout<<"Введите кол-во строк: "<<endl;
    cin>>n;
    cout<<"Введите кол-во неизвестных в строке: "<<endl; 
    cin>>m;
 
    matrix=new float *[n];
    for (int i=0; i<n; i++)
   matrix[i]=new float [m+1];
    for (int v=0; v<n; v++){
        for (int j=0; j<m; j++){
            cout<<"Строка #"<<v+1<<" ----- Неизвестная #"<<j+1<<endl;
            cin>>matrix[v][j];
        }
        cout<<"Чему это равно? ("<<v+1<<" строка)"<<endl;
        cin>>matrix[v][m];
    }
    cout<<endl;
    for (int k = 0; k < n; k++){
        for (int l = 0; l <= m; l++){          //Для вывода матрицы 
            cout<<matrix[k][l]<<" ";
        }
        cout<<endl;    
    } 
    system("PAUSE");
    return 0;
}

Хочу реализовать что-то такое:
Допустим, у нас 3 строки и 3 неизвестных (тоесть 4 столбика выйдет (3 неизвестных + 1 под ответ)).

К примеру:
4 3 6 | 9
3 2 5 | 7
2 9 4 | 12

Хочу реализовать следующее:
Берется первое число первой строчки ( в данном случае 4), затем оно делится на всю эту строчку, так, чтоб первая цифра была 1. Затем эта строчка вычитается из всех остальных строчек, тоесть в итоге первый столбик в данном случае будет выглядеть так:
1
0
0

Затем второе число второй строки делим на всё эту строку, так, чтобы само оно стало единицей. После чего отнимаем вторую строку от всех, домноженную на второе число каждой из строк. Затем Аналогично и с третьей строкой и 3 числом.

В итоге выйдет что-то вроде:
1 0 0 | ответ 1
0 1 0 | ответ 2
0 0 1 | ответ 3


Тоесть x1 = ответ 1, x2 = ответ 2, x3 = ответ 3.

Прошу дать идейку и пару примеров - как такое реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 14:19     Решение уравнений методом Гаусса
Посмотрите здесь:

Решение линейных уравнений методом Гаусса - C++
Доброе утро! Вы могли бы помочь мне решить вариант №29

Решение систем линейных уравнений методом Гаусса - C++
Такая вот проблема вышла, не работает один случай и никак не могу найти - в чем ошибка. Возьмем к примеру такое уравнение: 0 0 0 1 2 ...

Решение линейных уравнений методом Гаусса (error C2664) - C++
Ошибка как я понял заключается в переводе данных с масивов,но немогу исправить. Данная программа решает линейные уравнения методом...

Системы линейных уравнений методом Гаусса - C++
Прошу помочь с составлением программы, позволяющей решать системы линейных уравнений методом Гаусса на языке C++ . Желателен наиболее...

Системы линейных уравнений методом Гаусса - C++
День(ночь, утро, вечер) добрый(-ая, -ое) вопрос про метод Гаусса, как его реализовать на С++??? что-то совсем запутался... вот что...

Решить систему алгебраических уравнений методом Гаусса - C++
Решить систему алгебраических уравнений методом Гаусса: 6X1-X2-X3=11,33, -X1+6X2-X3=32, -X1-X2+6X3=42;

Методом Гаусса решить систему n линейных алгебраических уравнений - C++
Помогите пожалуйста написать на с++ методом Гаусса решить систему n линейных алгебраических уравнений. Отсюда нашла именно ту тему там...

Написать программу для решения системы уравнений методом Гаусса (c++) - C++
Добрый вечер! Нужно написать программу для решения системы уравнений методом Гаусса. Уравнений всего два: a11*x1 + a12*x2 = z1...

Решение матриц Методом Гаусса - C++
Ребят, не запускается программа на C++ для Решения матриц Методом Гаусса. Пожалуйста, запустите и выясните в чём проблема. И желательно...

Решение СЛУ методом Гаусса - C++
Напишите плз прогу, которая будет решать слу методом Гаусса. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; using...

Решение системы линейного уравнение методом Гаусса - C++
Ребята можешь кто подсказать программу или показать варианты программы , которая может решить данное уравнение по методу Гауса . Очень...

Решение системы методом Гаусса и разбор ошибок - C++
Добрый вечер! Пару дней назад начал изучать C++ для выполнения данного задания. Задание заключается в следующем: &quot;Решить систему равенств с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
20.11.2013, 14:28     Решение уравнений методом Гаусса #2
Почти правильно.
Только получится не диагональная матрица, а треугольная
1 x x | ответ 1
0 1 x | ответ 2
0 0 1 | ответ 3
Из последней строки находим x3=Ответ3
Подставляем в предпоследнюю - находим x2
и т.д.
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
20.11.2013, 14:51  [ТС]     Решение уравнений методом Гаусса #3
Цитата Сообщение от zss Посмотреть сообщение
Почти правильно.
Только получится не диагональная матрица, а треугольная
1 x x | ответ 1
0 1 x | ответ 2
0 0 1 | ответ 3
Из последней строки находим x3=Ответ3
Подставляем в предпоследнюю - находим x2
и т.д.
Но как такое реализовать? Как я понял - это снова цикл в цикле, но немного не улавливаю как строчки вычитать и делить всё вот так.

Добавлено через 9 минут
Так мой вариант же выходит что так же работает,разве нет? Просто он также всё сокращает, меняя сам ответ. По идее в итоге получится всё также, просто в моем случае более наглядно всё видно и в последствии не надо подставлять значения.
Ответ Создать тему
Опции темы

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