Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 13.05.2015
Сообщений: 19

Метод Гаусса (подстановки) решения СЛАУ

13.12.2015, 21:01. Показов 1310. Ответов 1

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, написал я одну недопрограмму, потому как сделал её наполовину. Не хватает мне опыта и знания математики и опыта в программировании чтобы написать метод решение Гаусса СЛАУ. Смысл программы в том что мы выбираем каким способом нам будеть решать программа слау, методом гаусса (подстановки) или методом Крамера.Метод Крамера написал с Гауссом проблемы. Кто исправит недокод, буду очень признательный..
Хочу сделать, для начала без функций, без динамического массива, и потихоньку его оттачивать.

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
int main(){
    srand(time(NULL));
 
    const int n = 3, m = n;         
    double a[n][n],b[m],x[n],q[4];      
    double o[n],s = 0;
    int count;
 
    
    for(int j = 0; j < m; j++)                  
        x[j] = rand()%7;                
        cout << endl << " Matrica :\n\n";
    
    for(int i = 0; i < n;i++){          // random i vvuvod matrici
        for(int j = 0; j < m; j++){
            a[i][j] = rand()%50-25; 
            cout << " " << a[i][j]  ;
            cout << "\t";}
         cout << endl;}cout << endl;
         
    cout << " SLAU : \n\n";                 // etot cukl vuvodit slay
        for(int i = 0; i < n;i++)
        {
            for(int j = 0; j < m; j++)
            {
                s += a[i][j]*x[j];
                
                if(a[i][j] > 0)
                    cout << " " << a[i][j] << "*" << x[j];
                else
                    cout << " ("<< a[i][j]  << ")*" << x[j];
            if(j != n-1 )
                cout << " + " ;
                
            }
 
            cout << " = " << s << " ;" << endl;
            b[i] = s;
            s = 0;
        };cout << endl;
                
                
             
    start:
        cout << " Kramerom - 1, Gaussom - 2, na vuhod - 3" << "\n ";
        cin >> count;
        cout << endl;
    switch(count){                  //ot togo chto ne smog napisat` po Gaussu rewil nemnogo blagoystroitsa
        
        case 1:
            {
            goto kramer;            // eto perehod na rewenie po Kramery
            break;
            }
            case 2:
                {
                    goto gaus;      // Zdes` doljen bul but`  perehod na rewenie po Gaussu
                    break;
                }
            case 3:
                {
                    cout << " the end ";    // eto prosto vuhod
                    return 0;
                }
                default:
                    goto start;             // nepravil`no vvel, probyi ewe
    }       
        kramer:            // eto metodom Kramera
 
        
    q[0] = a[0][0]*a[1][1]*a[2][2] + a[0][1]*a[1][2]*a[2][0]  -  a[0][2]*a[1][0]*a[2][1]  -  a[2][0]*a[1][1]*a[0][2]  -  a[0][1]*a[1][0]*a[2][2]  -  a[0][0]*a[1][2]*a[2][1];   
    q[1] = b[0]*a[1][1]*a[2][2]    + a[0][1]*a[1][2]*b[2]     -  a[0][2]*b[1]*a[2][1]     -  b[2]*a[1][1]*a[0][2]     -  a[0][1]*b[1]*a[2][2]     -   b[0]*a[1][2]*a[2][1];
    q[2] = a[0][0]*b[1]*a[2][2]    + b[0]*a[1][2]*a[2][0]     -  a[0][2]*a[1][0]*b[2]     -  a[2][0]*b[1]*a[0][2]     -  b[0]*a[1][0]*a[2][2]     -  a[0][0]*a[1][2]*b[2];
    q[3] = a[0][0]*a[1][1]*b[2]    + a[0][1]*b[1]*a[2][0]     -  b[0]*a[1][0]*a[2][1]     -  a[2][0]*a[1][1]*b[0]     -  a[0][1]*a[1][0]*b[2]     -  a[0][0]*b[1]*a[2][1];
            
    for(int j = 0; j < n; j++){
        o[j] = ((q[1+j])/(q[0]));
            cout << " Koren` ¹" << j+1 << " : " << o[j] << endl;}cout << endl;
            
            goto end;
            gaus:           // a vot ewe nepoyavivshuisya na svet Gaus s ego metodom reweniy slay
                            
    
    
    end:
    _getch();
    return 0;
}
Добавлено через 15 часов 36 минут
Чтобы легче было разбираться, немного дополню a[n][m] содержит коєффинциєнты при иксах, b[n] это массив ответов уравнений , x[n] содержит значения иксов, q[4] массив определителей.

Добавлено через 1 час 47 минут
Эх, щас бы помочь парню с заданием, показать насколько я крут в плюсах

Добавлено через 2 часа 28 минут
и неустанно я поднимаю тему, с надеждой на руку спасенья и с тёмного угла незнания и заблужденности
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2015, 21:01
Ответы с готовыми решениями:

Метод Гаусса для решения СЛАУ
Добрый день! Реализовал метод Гаусса для решения СЛАУ. Но проблема с получением ответа. Второй и третий корень считаются правильно,...

Метод Гаусса для решения СЛАУ
Здравствуйте! У меня есть алгоритм решения СЛАУ методом Гаусса, но почему-то он не работает((( Я проверил промежуточные матрицы, все ОК! И...

Метод Гаусса решения СЛАУ с полным выбором. C++
Написал код реализующий метод Гаусса с полным выбором ведущего элемента, но ответ выдает не правильный. Помогите найти ошибку #include...

1
0 / 0 / 1
Регистрация: 13.05.2015
Сообщений: 19
14.12.2015, 21:06  [ТС]
Конец 2ого дня... на горизонте пусто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2015, 21:06
Помогаю со студенческими работами здесь

Метод Гаусса-Зейделя для решения СЛАУ
Дана система СЛАУ, которая уже приведена к нормальному виду, то есть ничего преображать не нужно. Написал метод Зейделя таким вот образом....

Метод Гаусса для решения СЛАУ с использованием одномерного массива
Доброго всем времени суток. У меня есть прога для двумерного массива #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include...

Написать программу, реализующую метод Гаусса для решения СЛАУ с постолбцовым выбором главного элемента
Добрый день. Очень прошу вас помочь мне с программой для лабораторной. Программа должна : - решать СЛАУ Ах=b, А - матрица...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Решения СЛАУ методом Гаусса по шагу
Добрый день! Очередной раз прошу советов! Имеется СЛАУ, которое требуется решить методом Гаусса на с++. Соответственно, на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru