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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
#1

Как привести матрицу к треугольному виду по методу гауса? - C++

30.01.2012, 22:05. Просмотров 4039. Ответов 6
Метки нет (Все метки)

Может у кого есть прога? Нужна срочно!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2012, 22:05     Как привести матрицу к треугольному виду по методу гауса?
Посмотрите здесь:
Как привести матрицу к треугольному виду C++
C++ Привести матрицу к треугольному виду
C++ Как привести матрицу к верхнему треугольному виду? С++ (Имеется код нахождения нижней треуг. матрицы)
C++ Задача: привести матрицу к треугольному виду
C++ Привести матрицу к треугольному виду Гауссом (не могу найти работающий код)
Привести вектор к треугольному виду C++
C++ Двумерные массивы (СЛАУ). Привести систему к треугольному виду
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SunTechnic
20 / 20 / 1
Регистрация: 05.02.2011
Сообщений: 65
30.01.2012, 22:25     Как привести матрицу к треугольному виду по методу гауса? #2
Вот, держи! Это исходники программы, которая производит все основные операции над матрицами. Не на С++, но при желании можно переписать на него используя данный алгоритм. Удачи!
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
30.01.2012, 22:28  [ТС]     Как привести матрицу к треугольному виду по методу гауса? #3
Я Си путём не знаю, куда уж мне переписать...
А нужный алгоритм не увидел.
edward_jonson
158 / 158 / 25
Регистрация: 23.02.2011
Сообщений: 390
30.01.2012, 22:59     Как привести матрицу к треугольному виду по методу гауса? #4
C
1
2
3
4
5
6
7
8
9
10
for (k=0;k<n;k++)
{
   for (i=k+1;i<n;i++)
   {
      mu=A[i][k]/A[k][k];
      for (j=0;j<n;j++)
         A[i][j]-=A[k][j]*mu;
      b[i]-=b[k]*mu;
   }
}
A - матрица коэффициентов, b - свободных членов
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
30.01.2012, 23:23  [ТС]     Как привести матрицу к треугольному виду по методу гауса? #5
Я не понимаю что надо вывести?
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
#include <stdio.h>
#include <conio.h>
 
const int n=4;
 
int main()
{
    int A[n][n],b[n];
    int i, j, k, mu=0;
    printf("vvedite matricu: \n");
 
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
            scanf ("%d", &A[i][j]);
    }
 
    for (k=0;k<n;k++)
    {   
        for (i=k+1;i<n;i++)
        {
            mu=A[i][k]/A[k][k];
            for (j=0;j<n;j++)
                A[i][j]-=A[k][j]*mu;
                b[i]-=b[k]*mu;
        }
 
for (i=0;i<n;i++)
    {
        for (j=0;i<n;j++)
            printf ("%d\t", A[i][j]);
        printf ("\n");
    }   
    }
    getch();
    return 0;
}
Прога неправильно работает
edward_jonson
158 / 158 / 25
Регистрация: 23.02.2011
Сообщений: 390
03.02.2012, 01:50     Как привести матрицу к треугольному виду по методу гауса? #6
у вас опечатки, например в 30 строке должно быть j<n, скобка из 34-й строки должна быть в 27-й, коэффициент mu должен быть double, и вообще советую тип матрицы брать double, т.к. в противном случае погрешность будет довольно велика

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
#include <stdio.h>
#include <conio.h>
 
const int n=4;
 
int main()
{
   int A[n][n],b[n];
   int i, j, k;
   double mu;
   printf("vvedite matricu: \n");
   for (i=0;i<n;i++)
      for (j=0;j<n;j++)
         scanf ("%d", &A[i][j]);
   for (k=0;k<n;k++)
   {
      for (i=k+1;i<n;i++)
      {
         mu=(double)A[i][k]/A[k][k];
         for (j=0;j<n;j++)
            A[i][j]-=A[k][j]*mu;
       //  b[i]-=b[k]*mu;
      }
   }
   for (i=0;i<n;i++)
   {
      for (j=0;j<n;j++)
         printf ("%d\t", A[i][j]);
      printf ("\n");
   }
   getch();
   return 0;
}
и напоминаю, что матрица А должна быть невырожденная, чтобы метод Гаусса мог быть применим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2012, 13:39     Как привести матрицу к треугольному виду по методу гауса?
Еще ссылки по теме:
C++ С помощью допустимых изменений привести систему к треугольному виду...
C++ Свести матрицу к треугольному виду
C++ Привести матрицу 3 на 3 к диагональному виду
Привести заданную квадратную матрицу к виду C++
C++ приведение матрицы к треугольному виду

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:39     Как привести матрицу к треугольному виду по методу гауса? #7
nicenice, вот тебе рабочий код метода Гаусса
Методом Гаусса решить систему n линейных алгебраических уравнений
Хочешь треугольную матрицу - это void PryamoiHod(int n, double **a, double *b);
Переписывать на плюсы просто влом, там кроме выделения памяти и вывода на экран всё и так под С++...
Yandex
Объявления
03.02.2012, 13:39     Как привести матрицу к треугольному виду по методу гауса?
Ответ Создать тему
Опции темы

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