Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Ciupacabra
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38

Метод Жордан-Гаусс

27.11.2019, 00:05. Показов 1050. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу создать программу для вычесления Х из равнения Х=А*B, где все три матрицы и решаеться методом Жордано-Гаусс
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
#include <iostream>
#include <stdlib.h> 
#include <stdio.h> 
#include <time.h>
#include <ctime>
#include <cstdlib>
#include <math.h>
using namespace std;
 
class JGI{
    float **a,*b,*x,l;
    int n,m;
    public:
        void citire();
        double elim1();
};
 
void JGI::citire(){
    int i,j,l=0;
    cout<<"n=";cin>>n;
    a=new float*[100];
    for(i=0;i<100;i++){
        a[i]=new float[100];
    }
    b=new float[100];
    x=new float[100];
    srand(time(NULL));
    cout<<"Matricea A:"<<endl;
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
                a[i][j]=rand()%10+1;
                cout<<a[i][j]<<" ";
            }
            cout<<endl;
        }
    cout<<endl<<endl;
    
}
 
double JGI::elim1(){
    int i,j;
    float k,s=0,s1=0,s2=0,s3=0,k1,k2;
    while(i<n){
        i=0;
        while(j<n){
            j=0;
            if(a[i+1][j]!=0){
                k1=(0-a[i][j]);
                cout<<"k1="<<k1<<endl;
                k2=a[i+1][j];
                cout<<"k2="<<k2<<endl;
                l=i+1;
                break;
            }
            j++;
        }
        i++;
        if(a[i+1][j]!=0){
            break;
        }
    }
    for(j=0;j<n;j++){
        cout<<a[0][j]<<" ";
    }
    cout<<endl;
    cout<<"Test 1"<<endl;
    for(i=l;i<n;i++){
        cout<<"Test 2.1."<<i<<endl;
        for(j=0;j<n;j++){
            cout<<"Test 2.2."<<j<<endl;
                if(i==l){
                //  cout<<"Test 2.3."<<j<<endl;
                    s1=a[i][j]*k1;
                    cout<<"s1="<<s1<<endl;
                //  cout<<"Test 2.4."<<j<<endl;
                    s2=a[i-1][j]*k2;
                    cout<<"s2="<<s2<<endl;
                //  cout<<"Test 2.5."<<j<<endl;
                    a[i][j]=s1+s2;
                    cout<<"a="<<a[i][j]<<endl;
                    if(i==l){ cout<<"test 3"<<endl;break;}
                }
            }
            cout<<endl;
        }
    double elim();
}
 
int main(){
    JGI t;
    t.citire();t.elim1();
}
Да вот только, хоть ты лопни хоть ты тресни, когда доходит до подсчета s2 на 76 строке, прога крашиться.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2019, 00:05
Ответы с готовыми решениями:

Решени СЛУ по Гаусу и ГАус-Жордан
Народ помогите плизз, лабу сдать надо, а я не шарю нифига в дельфи... нужно решить СЛУ методом Гауса и гауса-жордана

Гаусс Visual C++
Собственно это моя первая программа на с++ и на c++ в частности, но в ней обнаружилась серьезная ошибка о_О. Введя коэф все 1, а свободные...

Гаусс для коллекции
double abs(double x) { if (x&lt;0) { return -x; } return x; } void Gauss(double *a, double *b, double *&amp;x, unsigned...

2
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
27.11.2019, 04:29
Цитата Сообщение от Ciupacabra Посмотреть сообщение
a=new float*[100];
for(i=0;i<100;i++){
a[i]=new float[100];
почему выделяется 100 элементов? У тебя же точный размер матрицы известен и введён с клавиатуры!

Добавлено через 1 минуту
вычесления
решаеться
для вычисления
решается.

Добавлено через 2 минуты
Цитата Сообщение от Ciupacabra Посмотреть сообщение
for(i=0;i<n;i++){
for(j=0;j<n;j++){
a[i][j]=rand()%10+1;
cout<<a[i][j]<<" ";
как бэ рандомная матрица не факт что задаёт однозначно решаемую систму.
Ранг матрицы может тупо не совпасть с рангом системы.

Добавлено через 1 минуту
Цитата Сообщение от Ciupacabra Посмотреть сообщение
double elim();
что за абракадабрина в строке 86?

Добавлено через 2 минуты
C++
1
2
3
4
    while(i<n){
        i=0;
        while(j<n){
            j=0;
как бээ наоборот надо инициализировать циклы. i=0; while(i<n) А вообще в чём тут сакральный смысл цикла while вместо for?
0
 Аватар для Ciupacabra
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 38
02.12.2019, 20:31  [ТС]
Спасибо за все что отвели, и я также отвечу на ваши вопросы.
Ну во первых это очень сырая версия. Насчет 100 элементов - я проверял возможности, это потом понял что это тупая идея.
Во вторых, насчет рандома это я пофиксил так как теперь значения теперь беруться из внешнего файла.
И в третьих, из-за неизвестной мне магии цикл for не косплейл Виктора Януковича (то бишь, не прекращался) а шел до конца, а с while таких проблем не происходило.

Добавлено через 3 минуты
Да насчет абракадабры с double elim(). Это я не сперва заметил, но потом поменял на double elim1(). Результат - поезд сделал бум... При компиляции прога сразу останавливается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.12.2019, 20:31
Помогаю со студенческими работами здесь

Гаусс-4, откуда взялись коэффициенты?
subroutine gauss4(a, b, n, rez) REAL*8 a, b, n, rez, h rez=0.0D00 h=(b-a)/n q1=0.652145154862546D00 ...

Методы решения СЛАУ (Гаусс, Зейдель)
Адаптирован для SciLab и немного упрощён программно известный итерационный метод решения СЛАУ - Гаусса-Зейделя. Для Matlab данный метод и...

Надо провести через Гаусс n раз
По заданным условиям получается x1 и x2, которые надо занести в формулу матрицы известных значений и получить новые x1 и x2 и суммировать...

Линейная уравнения методом Гаусс, Крамер на Matlab
Здравствуйте! Как решит система нелинейных уравнений методом Гаусс и Крамер на MatLab. Я решил по методу Гаусс, но что то тяжеловата. ...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru