Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
nicenice
3 / 3 / 2
Регистрация: 22.11.2011
Сообщений: 168
#1

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

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

Может у кого есть прога? Нужна срочно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2012, 22:05
Ответы с готовыми решениями:

Как привести матрицу к треугольному виду
Нужно привести матрицу к треугольному виду, можно написать прогу , а то какие...

Привести матрицу к треугольному виду
Написать программу для работы с динамическим целочисленным двумерным массивом,...

Привести матрицу к треугольному виду
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С...

Как привести матрицу к верхнему треугольному виду? С++ (Имеется код нахождения нижней треуг. матрицы)
Нахождение нижней треуг. матрицы: for (i=0, k=nn-1;...

Задача: привести матрицу к треугольному виду
Блин, я никак не разберусь, может тут кто знает? Задание: Дана квадратная...

6
SunTechnic
20 / 20 / 0
Регистрация: 05.02.2011
Сообщений: 65
30.01.2012, 22:25 #2
Вот, держи! Это исходники программы, которая производит все основные операции над матрицами. Не на С++, но при желании можно переписать на него используя данный алгоритм. Удачи!
0
nicenice
3 / 3 / 2
Регистрация: 22.11.2011
Сообщений: 168
30.01.2012, 22:28  [ТС] #3
Я Си путём не знаю, куда уж мне переписать...
А нужный алгоритм не увидел.
0
edward_jonson
160 / 160 / 68
Регистрация: 23.02.2011
Сообщений: 392
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 - свободных членов
1
nicenice
3 / 3 / 2
Регистрация: 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;
}
Прога неправильно работает
0
edward_jonson
160 / 160 / 68
Регистрация: 23.02.2011
Сообщений: 392
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;
}
и напоминаю, что матрица А должна быть невырожденная, чтобы метод Гаусса мог быть применим
0
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:39 #7
nicenice, вот тебе рабочий код метода Гаусса
Методом Гаусса решить систему n линейных алгебраических уравнений
Хочешь треугольную матрицу - это void PryamoiHod(int n, double **a, double *b);
Переписывать на плюсы просто влом, там кроме выделения памяти и вывода на экран всё и так под С++...
0
03.02.2012, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2012, 13:39

Привести матрицу к треугольному виду Гауссом (не могу найти работающий код)
Нужен код для приведения матрицы к треугольному виду (матрица статическая,...

Привести вектор к треугольному виду
Я решаю систему лин. уравнений одной малоизвестной модификацией метода Гаусса. ...

Двумерные массивы (СЛАУ). Привести систему к треугольному виду
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы.С...


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

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

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