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

Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Abysss
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 6
09.01.2012, 15:28     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++ #1
Программный код для формирования матрицы, а так же нахождения обратной матрицы

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
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
    int nn,i,j;
double A[8][8], L[8][8];
int main()
{
 
cout<<"Dimension of the matrix (<=8):"; 
cin>>nn;
cout<<"Enter the matrix of the element: "<<endl;
 
 
 
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)    {
       cout<<"\nElement:"<<i+1<<":"<<j+1<<endl;                                            
     float k; 
     cin>>k; 
     A[i][j] = k;
   }
 
 
 
 
cout<<"The formation of the identity matrix"<<endl;
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)
       if (i!=j) L[i][j]=0;      
   else L[i][j]=1; 
 j = 0;
 int m=0;
 int n;
 do    { 
 
          m = j; 
    for (n=j+1; n<nn; n++) 
      if (fabs(A[m][j])<fabs(A[n][j])) m = n;
        double prm=0;
 
 
 
    for (n=0; n<nn; n++)
   
 
    prm = A[j][j];
    for (n=0; n<nn; n++)
    { A[j][n] = double (A[j][n]/prm);
      L[j][n] = double (L[j][n]/prm);
    }
    for (i=0; i<=nn; i++)
      if (i!=j)
      { prm = A[i][j];
    for (n=j; n<=3; n++) A[i][n] = A[i][n]- double (prm*A[j][n]);
    for (n=0; n<=3; n++) L[i][n] = L[i][n]- double (prm*L[j][n]);
      }
    j++;
    }
  while (j<nn);
 
 
 
 cout<<"\nInverse matrix:\n";
 for (i=0; i<nn; i++)
   for (j=0; j<nn; j++)
   { if (j==0) cout<<"\n";  
            else cout<<"\t";
     printf("%f", L[i][j]);
   }
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 15:28     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++
Посмотрите здесь:

Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
Найти сумму и число элементов матрицы, которые находятся над главной диагональю и на ней C++
Массив: Вычислить сумму и число элементов матрицы, находящихся под главной диагональю и на ней C++
C++ вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали
Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур C++
C++ Вычислить произведение нечетных отрицательных элементов расположенных под главной диагональю матрицы
Определить сумму отрицательных элементов матрицы, расположенных под главной диагональю (Pascal -> C++) C++
Вычислить сумму отрицательных элементов расположенных под главной диагональю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.01.2012, 16:58     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++ #2
Сделал немного по-своему:
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <conio.h> 
using namespace std;
        int nn,i,j;
double A[8][8], L[8][8];
int main()
{
 srand(time(NULL));
cout<<"Dimension of the matrix (<=8):"; 
cin>>nn;
 
 
 
 
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)    
   {
           cout<<"\nElement:"<<i+1<<":"<<j+1<<endl;                                                                                        
 
   
     A[i][j] = rand()%10;
     printf("%f",A[i][j]);
   }
 
 
 
 
cout<<"The formation of the identity matrix"<<endl;
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)
           if (i!=j) L[i][j]=0;          
   else L[i][j]=1; 
 j = 0;
 int m=0;
 int n;
 do    { 
 
              m = j; 
    for (n=j+1; n<nn; n++) 
      if (fabs(A[m][j])<fabs(A[n][j])) m = n;
            double prm=0;
 
 
 
    for (n=0; n<nn; n++)
   
 
    prm = A[j][j];
    for (n=0; n<nn; n++)
    { A[j][n] = double (A[j][n]/prm);
      L[j][n] = double (L[j][n]/prm);
    }
    for (i=0; i<=nn; i++)
      if (i!=j)
      { prm = A[i][j];
        for (n=j; n<=3; n++) A[i][n] = A[i][n]- double (prm*A[j][n]);
        for (n=0; n<=3; n++) L[i][n] = L[i][n]- double (prm*L[j][n]);
      }
    j++;
    }
  while (j<nn);
 
 
 
 cout<<"\nInverse matrix:\n";
 for (i=0; i<nn; i++)
   for (j=0; j<nn; j++)
   { 
    if (j==0) 
     cout<<"\n";  
      else cout<<"\t";
     printf("%5.2f", L[i][j]);
   }
  
  
   printf("\n");
   printf("\n");
   float sum1=0;      
    for (i=0; i<nn; i++)
   {     
    for (j=0; j<nn; j++) 
     {
                               if (j<i) 
                               {
                               sum1=sum1+L[i][j];
      printf("%5.2f ",L[i][j]);   //Вывод элементов под диагональю
      }
      }
    printf("\n");  
   }
   printf("\n");
   printf("\n");
   float sum2=0;        
    for (i=0; i<nn; i++)
   {     
    for (j=0; j<nn; j++) 
     {
                               if (j>i) 
                               {
                               sum2=sum2+L[i][j];
      printf("%5.2f ",L[i][j]);  //Вывод элементов над диагональю
      }
      }
    printf("\n");  
   }
printf("\nPod diagonal`y: %5.2f",sum1);
printf("\nNad diagonal`y: %5.2f",sum2);     
getch();
return 0;
}
Элементы вводятся рандомно, и округление стоит до сотых.
Abysss
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 6
09.01.2012, 17:09  [ТС]     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++ #3
ММм Спасибо огромное))))) Осталось только переписать на С++.
А не подскажете ещё как вывести на печть треугольную матрицу, имеющую большую сумму?? то есть необходимо сравнить полученные результаты над и под диагональю, и вывести на печать треугольную матрицу, сумма эллементов которой больше.
Yandex
Объявления
09.01.2012, 17:09     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++
Ответ Создать тему
Опции темы

Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru