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

Найти решение системы линейных уравнений методом Гаусса с выбором главного элемента в столбце - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица С++ http://www.cyberforum.ru/cpp-beginners/thread693840.html
Здравствуйте! Помогите пожалуйста решить задание по программированию: Необходимо удалить из исходной матрицы нулевые строки или столбцы, и вывести преобразованную матрицу. Пример Исходная матрица: 1034 0000 4031 Преобразованная матрица: 134
C++ Подскажите в чем ошибка Ребят, я только начала изучать язык...написала программу с примера в книге...но она почему то выполняется не верно... вот текст программы: //Подсчет числа буквенных оценок #include <iostream> using namespace std; int main(){ setlocale(LC_ALL,""); http://www.cyberforum.ru/cpp-beginners/thread693839.html
Определить номера строк и столбцов всех седловых точек матрицы C++
// пваава.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <ctime> #include <cstdlib> #include <iostream> #include <conio.h> #include <stdio.h> using namespace std;
C++ Решение задач с Си++
Код доступа к банковскому счету представляет собой набор из 9 десятичных цифр. При проведении банковских операций онлайн клиента, в целях безопасности, просят ввести три некоторых символа, содержащихся в его коде доступа. Например, если клиента с кодом доступа "590734401" попросили ввести 4-й, 5-й и 9-й символы, то доступ к банковскому счету будет открыт после введения символов "731". К вам...
C++ Как переписать cout и cin на printf http://www.cyberforum.ru/cpp-beginners/thread693822.html
Помогите глупому новичку! Как переписать в данных кодах эти cout и cin на простые например на printf? cout<<"1. Сгенерировать массивы"<<endl; cout<<"2. Заполнить массивы в ручную"<<endl; cin>>answer; if(answer==1) { for(int i = 0; i<n-2; i++)
C++ Старшая цифра Написать функцию, которая по целым числом определяет старшую цифру его десятичной записи. С++ подробнее

Показать сообщение отдельно
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
10.11.2012, 16:16     Найти решение системы линейных уравнений методом Гаусса с выбором главного элемента в столбце
Решить систему линейных уравнений методом Гаусса с выбором главного элемента в столбце.
Вот моя программа
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
#include "stdafx.h"
#include <locale>
#include <iostream>
using namespace std;
const int n=4;
int i, j, m, k;
double aa, bb;
 
double a[n][n+1]={{  3,   4, -9,   5, -14},   //матрица коэффициентов, где последний столбец - правая часть системы
               {-15, -12,  50, -16, 44}, 
               {-27, -36,  73,   8, 142},
               {  9,  12, -10, -16, -76}};
 
void main()
{
    setlocale(LC_ALL, "Russian");
    double* x; 
    x = (double *)malloc(n* sizeof(double));
 
    for (k = 0; k<n; k++) //Поиск максимального элемента в первом столбце
    {
        aa = abs(a[k][k]);
        i = k;
        for(m = k+1; m<n; m++)
            if(abs(a[m][k])>aa)
            {
                i = m;
                aa = abs(a[m][k]);
            }
 
            if (aa == 0)   //проверка на нулевой элемент
            {
                cout<<"Система не имеет решений"<<endl;
            }
 
        if (i != k)  //  перестановка i-ой строки, содержащей главный элемент k-ой строки
        {
         for (j=k; j < n+1; j++)
         {
            bb = a[k][j];
            a[k][j] = a[i][j];
            a[i][j] = bb;
         }
        }
        aa = a[k][k];//преобразование k-ой строки (Вычисление масштабирующих множителей)
        a[k][k] = 1;   
        for (j=k+1;j<n;j++) 
            a[k][j] = a[k][j]/aa;
        for (i = k+1; i < n; i++)//преобразование строк с помощью k-ой строки
        {
         bb = a[i][k];
         a[i][k] = 0;
         if (bb!=0)
            for (j=k+1; j< n+1; j++)
              a[i][j]=a[i][j]-bb*a[k][j];
        }
    }
 
    for (i=n; i>0; i--)   //Нахождение решений СЛАУ
    {
      x[i] = 0;
      aa = a[i][n+1];
      for (j = n; j>i; j--) 
         aa = aa-a[i][j]*x[j];
      x[i] = aa;
    }
 
   cout<<"Решение системы:"<<endl;  //вывод решений
   for (i = 1; i< n+1; i++)
   {
      cout<<"x["<<i<<"]="<<x[i];
      cout<<endl;
   }
   system("PAUSE");
}
на выходе должно получиться: х1 = -8; х2 = -2; х3 = -2; х4 = 0
У меня выводится что-то непонятное. Подскажите пожалуйста где ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru