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

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

Войти
Регистрация
Восстановить пароль
 
GaDinka
1 / 1 / 0
Регистрация: 01.02.2011
Сообщений: 64
#1

Определить метод решения матрицы - C++

29.01.2012, 20:24. Просмотров 263. Ответов 0
Метки нет (Все метки)

Доброго времени суток! Есть код программа, которая решает систему уравнений. Помогите, пожалуйста, определить какой именно способ (метод Крамера или Гаусса) для решения систем уравнения в этом коде описан. Вот сам код:
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
    //Найдем решение системы
    
    this->find_solve(N);
}
 
void systems::find_solve(unsigned char current){
    if(!det(current)){
        printf("Error #4\n");
        return ;
    }
    if(!this->A[3*(current-1)][0]){
        if(this->A[3*(current-1)+1][0]) for(int i=0;i<4;i++) this->A[3*(current-1)][i] += this->A[3*(current-1)+1][i]; else
            for(int i=0;i<4;i++) this->A[3*(current-1)][i] += this->A[3*(current-1)+2][i];
    }
    for(int i=3;i>=0;i--) this->A[3*(current-1)+1][i] -= this->A[3*(current-1)][i]*this->A[3*(current-1)+1][0]/this->A[3*(current-1)][0];
    if(!this->A[3*(current-1)+1][1]){
        for(int i=0;i<4;i++) this->A[3*(current-1)+1][i] += this->A[3*(current-1)+2][i]+this->A[3*(current-1)][i];
        for(int i=3;i>=0;i--) this->A[3*(current-1)+1][i] -= this->A[3*(current-1)][i]*this->A[3*(current-1)+1][0]/this->A[3*(current-1)][0];
    }
    //Получаем нули в третьей строке
    for(int i=3;i>=0;i--) this->A[3*(current-1)+2][i] -= this->A[3*(current-1)][i]*this->A[3*(current-1)+2][0]/this->A[3*(current-1)][0];
    for(int i=3;i>=1;i--) this->A[3*(current-1)+2][i] -= this->A[3*(current-1)+1][i]*this->A[3*(current-1)+2][1]/this->A[3*(current-1)+1][1];
    if(!this->A[3*(current-1)+2][2]){
        for(int i=0;i<4;i++) this->A[3*(current-1)+2][i] += this->A[3*(current-1)+1][i]+this->A[3*(current-1)][i];
        for(int i=3;i>=0;i--) this->A[3*(current-1)+2][i] -= this->A[3*(current-1)][i]*this->A[3*(current-1)+2][0]/this->A[3*(current-1)][0];
        for(int i=3;i>=1;i--) this->A[3*(current-1)+2][i] -= this->A[3*(current-1)+1][i]*this->A[3*(current-1)+2][1]/this->A[3*(current-1)+1][1];
    }
    for(int i=3;i>=2;i--){
        this->A[3*(current-1)+1][i] -= this->A[3*(current-1)+2][i]*this->A[3*(current-1)+1][2]/this->A[3*(current-1)+2][2];
        this->A[3*(current-1)][i] -= this->A[3*(current-1)+2][i]*this->A[3*(current-1)][2]/this->A[3*(current-1)+2][2];
    }
    for(int i=3;i>=1;i--) this->A[3*(current-1)][i] -= this->A[3*(current-1)+1][i]*this->A[3*(current-1)][1]/this->A[3*(current-1)+1][1];
    for(int i=0;i<3;i++){
        this->A[3*(current-1)+i][3] /= this->A[3*(current-1)+i][i];
        this->A[3*(current-1)+i][i] /= this->A[3*(current-1)+i][i];
    }
}
Заранее благодарю!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 20:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить метод решения матрицы (C++):

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

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений - C++
прочитал много всего , но сам пример реализовать никак не могу , кто может помогите F(x) = x5+5x+1=0 с...

Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии) - C++
Здравствуйте. Помогите пожалуйста дописать программу. Вот что вымучал, но на сдаче завалили, типо нет вывода корней, не рассмотрены...

Метод решения - C++
С помощью какого метода лучше всего решить на C++ систему уравнений как на картинке ?

Написать метод решения - C++
надо написать метод решения задачи: Дана действительная матрица размера n*m. в которой не все элементы равны нулю. Получить новую...

Метод решения СЛАУ - C++
Здравствуйте! Вот задача с E-Olymp (сложность 91%). Есть решение, но ни один тест не пройден, хотя полностью совпадает с онлайн-сервисами....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 20:24
Привет! Вот еще темы с ответами:

Матричный метод решения СЛАУ - C++
Здравствуйте уважаемые програмисты, не могу осилить данный метод, и в нете инфы очень мало, может у кого есть готовый исходник? Теория...

Метод Гаусса (подстановки) решения СЛАУ - C++
Всем доброго времени суток, написал я одну недопрограмму, потому как сделал её наполовину. Не хватает мне опыта и знания математики и опыта...

Метод Зейделя для решения слау - C++
Пытаюсь реализовать метод Зейделя, подсмотрев реализацию в Википедии, написала функцию Itera(). Она не рабочая, не считает ничего....

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


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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