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

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

20.11.2013, 14:19. Показов 1336. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Был создан двухмерный динамический пассив, где указываем кол-во строк и столбцов, а затем записываем значение каждого числа всех строк поочередно. Вышло что-то такое:
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.

Прошу дать идейку и пару примеров - как такое реализовать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2013, 14:19
Ответы с готовыми решениями:

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

Решение линейных уравнений методом Гаусса
Всем привет. Поставлена задача создать программу, способную решать линейные уравнения методом...

Решение системы уравнений методом Гаусса
Всем доброго времени суток. Нужно написать программу для решения СЛАУ методом Гаусса. #include...

Решение системы линейных уравнений методом Гаусса
необходимо решить данную задачу в visual studio c++, если можно с комментариями, в консольном...

2
Модератор
Эксперт С++
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
20.11.2013, 14:28 2
Почти правильно.
Только получится не диагональная матрица, а треугольная
1 x x | ответ 1
0 1 x | ответ 2
0 0 1 | ответ 3
Из последней строки находим x3=Ответ3
Подставляем в предпоследнюю - находим x2
и т.д.
0
12 / 12 / 7
Регистрация: 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 минут
Так мой вариант же выходит что так же работает,разве нет? Просто он также всё сокращает, меняя сам ответ. По идее в итоге получится всё также, просто в моем случае более наглядно всё видно и в последствии не надо подставлять значения.
0
20.11.2013, 14:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 14:51
Помогаю со студенческими работами здесь

Решение системы линейных уравнений методом Гаусса
Всем привет! Ребята, пожалуйста помогите мне с решением системы линейных уравнений с помощью метода...

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

Решение систем линейных уравнений методом Гаусса
Помогите написать программу в С++ код в паскале Текст программы &quot;Решение систем линейных...

Решение системы линейных уравнений методом Гаусса
помогите найти ошибку, выводит результат, но не точный. Например в системе 10 9 19 9 8 17...


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

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