Как найти произведение элементов побочной диагонали матрицы

0 / 0 / 0

Регистрация: 18.10.2010

Сообщений: 25

1

Найти произведение элементов побочной диагонали квадратной матрицы

18.10.2010, 19:03. Показов 8171. Ответов 3


Студворк — интернет-сервис помощи студентам

Дана квадратная матрица порядка N. Найти произведение элементов побочной диагонали квадратной матрицы. C++



0



Mayonez

392 / 284 / 53

Регистрация: 26.12.2009

Сообщений: 874

18.10.2010, 19:42

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
//задайте матрицу
   int matrix[3][3]={ {2, 4, 3},
                    {8, 11, 19},
                    {2, 12, 7} };
   int n;
   cin >> n;
//и ёё порядок
   int dob = 1;
   for(int i = n-1, j=0; i >= 0; i--, j++)
             dob*=matrix[i][j];
             
   cout << dob << endl;
   system ("pause");
}



3



MILAN

899 / 793 / 186

Регистрация: 21.02.2009

Сообщений: 1,722

18.10.2010, 22:43

3

Лучший ответ Сообщение было отмечено как решение

Решение

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
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    srand((unsigned)time(NULL));
    int **arr;
    int mult=1,N;
    cout<<"Введите N: ";
    cin>>N;
    arr = new int*[N];
    cout<<"Матрица: "<<endl;
     for(int i=0; i<N; i++)
       {
         arr[i]=new int[N];
           for(int j=0; j<N; j++)
               {
                  arr[i][j]=rand()%9;
                  cout<<arr[i][j]<<" ";
               }
             cout<<endl;
       }
     cout<<endl;
     for(int i=0; i<N; i++)
       {
          for(int j=0; j<N; j++)
               {
                  if(i+j==N-1)
                    {
                        mult*=arr[i][j];
                    }
               }
       }
    cout<<endl;
    cout<<"mult is "<<mult<<endl;
    for(int i=0; i<N; i++)
      delete arr[i];
        delete [] arr;
  system("pause");
  return 0;
}



3



VoronReki

0 / 0 / 0

Регистрация: 17.10.2018

Сообщений: 51

12.12.2018, 02:43

4

При разных размерах матрицы считает ищет максимальные элементы по-разному.
С чем может быть связано?

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <time.h>
#include <conio.h> 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(nullptr));
    int n, i, j, max1, max2;
    cout << "Введите нечетное число, больше 1: ";
    cin  >> n;
    cout << "Вывод исходного массива: " << endl;
    int **arr = new int *[n];
    for (int i = 0; i < n; i++)
    {
        arr[i]=new int [n];
        for (j = 0; j < n; j++)
        {
            arr[i][j] =rand()%10;
            cout << arr[i][j] << "t";
        }
        cout<<endl;
    }
    cout << endl;
        max1 = arr[0][0];
        cout << endl;
        for(i = 0; i < n; ++i)
        {
            for(j = 0; j < n; ++j)
            {
                if(max1 < arr[i][j])
                {
                    max1 = arr[i][j];
                }
            }           
        }
        cout<<"Максимальный элемент: t"<<max1<<endl;
    //ищем максимальный элемент на побочной диагонали
   max2=arr[0][n-1];    
        for(int i = n-1, j=0; i >= 0; i--, j++)
        {
            if (max2<arr[i][j])
            {
                max2=arr[i][j];
            }
        }
        cout<<"Максимальный элемент: t"<<max2<<endl;
        cout << endl;
        system ("pause");
        return 0;
}



0



Как найти произведение элементов расположенных на побочной диагонали?

……. ……..



Ученик

(98),
на голосовании



11 лет назад

Как найти произведение элементов расположенных на побочной диагонали матрицы?

Дополнен 11 лет назад

На языке с++.

Голосование за лучший ответ

counter

Гуру

(2683)


11 лет назад

пусть у тебя матрица в массиве T **a,первый индекс – номер строки, тогда это просто
T sum=0;
for (int i = 0; i < n; ++i)
sum*=a[n-i-1];

Похожие вопросы

Содержание:

  • Вычисления определителей второго порядка
  • Методы вычисления определителей третьего порядка
  • Приведение определителя к треугольному виду
  • Правило треугольника
  • Правило Саррюса
  • Разложение определителя по строке или столбцу
  • Разложение определителя по элементам строки или столбца
  • Теорема Лапласа

В общем случае правило вычисления определителей
$n$-го порядка
является довольно громоздким. Для определителей второго и третьего порядка существуют рациональные способы их вычислений.

Вычисления определителей второго порядка

Чтобы вычислить определитель матрицы второго порядка, надо от произведения
элементов главной диагонали отнять произведение
элементов побочной диагонали:

$$left| begin{array}{ll}{a_{11}} & {a_{12}} \ {a_{21}} & {a_{22}}end{array}right|=a_{11} cdot a_{22}-a_{12} cdot a_{21}$$

Пример

Задание. Вычислить определитель второго порядка
$left| begin{array}{rr}{11} & {-2} \ {7} & {5}end{array}right|$

Решение. $left| begin{array}{rr}{11} & {-2} \ {7} & {5}end{array}right|=11 cdot 5-(-2) cdot 7=55+14=69$

Ответ. $left| begin{array}{rr}{11} & {-2} \ {7} & {5}end{array}right|=69$

Методы вычисления определителей третьего порядка

Для вычисления определителей третьего порядка существует такие правила.

Правило треугольника

Схематически это правило можно изобразить следующим образом:

Определитель матрицы по правилу треугольника

Произведение элементов в первом определителе, которые соединены прямыми,
берется со знаком “плюс”; аналогично, для второго определителя – соответствующие произведения берутся со знаком “минус”, т.е.

$$left| begin{array}{ccc}{a_{11}} & {a_{12}} & {a_{13}} \ {a_{21}} & {a_{22}} & {a_{23}} \ {a_{31}} & {a_{32}} & {a_{33}}end{array}right|=a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32}-$$

$$-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31}$$

236

проверенных автора готовы помочь в написании работы любой сложности

Мы помогли уже 4 396 ученикам и студентам сдать работы от решения задач до дипломных на отлично! Узнай стоимость своей работы за 15 минут!

Пример

Задание. Вычислить определитель $left| begin{array}{rrr}{3} & {3} & {-1} \ {4} & {1} & {3} \ {1} & {-2} & {-2}end{array}right|$ методом треугольников.

Решение. $left| begin{array}{rrr}{3} & {3} & {-1} \ {4} & {1} & {3} \ {1} & {-2} & {-2}end{array}right|=3 cdot 1 cdot(-2)+4 cdot(-2) cdot(-1)+$

$$+3 cdot 3 cdot 1-(-1) cdot 1 cdot 1-3 cdot(-2) cdot 3-4 cdot 3 cdot(-2)=54$$

Ответ. $left| begin{array}{rrr}{3} & {3} & {-1} \ {4} & {1} & {3} \ {1} & {-2} & {-2}end{array}right|=54$

Правило Саррюса

Справа от определителя дописывают первых два столбца и произведения элементов на главной диагонали и на диагоналях, ей
параллельных, берут со знаком “плюс”; а произведения элементов побочной диагонали и диагоналей, ей параллельных,
со знаком “минус”:

$$-a_{13} a_{22} a_{31}-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}$$

Пример

Задание. Вычислить определитель $left| begin{array}{rrr}{3} & {3} & {-1} \ {4} & {1} & {3} \ {1} & {-2} & {-2}end{array}right|$ с помощью правила Саррюса.

Решение.

$$+(-1) cdot 4 cdot(-2)-(-1) cdot 1 cdot 1-3 cdot 3 cdot(-2)-3 cdot 4 cdot(-2)=54$$

Ответ. $left| begin{array}{rrr}{3} & {3} & {-1} \ {4} & {1} & {3} \ {1} & {-2} & {-2}end{array}right|=54$

Разложение определителя по строке или столбцу

Определитель равен сумме произведений элементов строки определителя на их
алгебраические дополнения. Обычно выбирают
ту строку/столбец, в которой/ом есть нули. Строку или столбец, по которой/ому ведется разложение, будет обозначать стрелкой.

Пример

Задание. Разложив по первой строке, вычислить определитель $left| begin{array}{lll}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right|$

Решение. $left| begin{array}{lll}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right| leftarrow=a_{11} cdot A_{11}+a_{12} cdot A_{12}+a_{13} cdot A_{13}=$

$1 cdot(-1)^{1+1} cdot left| begin{array}{cc}{5} & {6} \ {8} & {9}end{array}right|+2 cdot(-1)^{1+2} cdot left| begin{array}{cc}{4} & {6} \ {7} & {9}end{array}right|+3 cdot(-1)^{1+3} cdot left| begin{array}{cc}{4} & {5} \ {7} & {8}end{array}right|=-3+12-9=0$

Ответ. $left| begin{array}{lll}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right|=0$

Этот метод позволяет вычисление определителя свести к вычислению определителя более низкого порядка.

Пример

Задание. Вычислить определитель $left| begin{array}{lll}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right|$

Решение. Выполним следующие
преобразования над строками определителя: из второй строки отнимем четыре
первых, а из третьей первую строку, умноженную на семь, в результате, согласно свойствам определителя, получим определитель,
равный данному.

$$left| begin{array}{ccc}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right|=left| begin{array}{ccc}{1} & {2} & {3} \ {4-4 cdot 1} & {5-4 cdot 2} & {6-4 cdot 3} \ {7-7 cdot 1} & {8-7 cdot 2} & {9-7 cdot 3}end{array}right|=$$

$$=left| begin{array}{rrr}{1} & {2} & {3} \ {0} & {-3} & {-6} \ {0} & {-6} & {-12}end{array}right|=left| begin{array}{ccc}{1} & {2} & {3} \ {0} & {-3} & {-6} \ {0} & {2 cdot(-3)} & {2 cdot(-6)}end{array}right|=0$$

Определитель равен нулю, так как вторая и третья строки являются пропорциональными.

Ответ. $left| begin{array}{lll}{1} & {2} & {3} \ {4} & {5} & {6} \ {7} & {8} & {9}end{array}right|=0$

Для вычисления определителей четвертого порядка и выше применяется либо разложение по строке/столбцу, либо приведение
к треугольному виду, либо с помощью теоремы Лапласа.

Разложение определителя по элементам строки или столбца

Пример

Задание. Вычислить определитель
$left| begin{array}{llll}{9} & {8} & {7} & {6} \ {5} & {4} & {3} & {2} \ {1} & {0} & {1} & {2} \ {3} & {4} & {5} & {6}end{array}right|$ , разложив его по элементам какой-то строки или какого-то столбца.

Решение. Предварительно выполним
элементарные преобразования над строками определителя, сделав
как можно больше нулей либо в строке, либо в столбце. Для этого вначале от первой строки отнимем девять третьих,
от второй – пять третьих и от четвертой – три третьих строки, получаем:

$$left| begin{array}{cccc}{9} & {8} & {7} & {6} \ {5} & {4} & {3} & {2} \ {1} & {0} & {1} & {2} \ {3} & {4} & {5} & {6}end{array}right|=left| begin{array}{cccc}{9-1} & {8-0} & {7-9} & {6-18} \ {5-5} & {4-0} & {3-5} & {2-10} \ {1} & {0} & {1} & {2} \ {0} & {4} & {2} & {0}end{array}right|=left| begin{array}{rrrr}{0} & {8} & {-2} & {-12} \ {0} & {4} & {-2} & {-8} \ {1} & {0} & {1} & {2} \ {0} & {4} & {2} & {0}end{array}right|$$

Полученный определитель разложим по элементам первого столбца:

$$left| begin{array}{rrrr}{0} & {8} & {-2} & {-12} \ {0} & {4} & {-2} & {-8} \ {1} & {0} & {1} & {2} \ {0} & {4} & {2} & {0}end{array}right|=0+0+1 cdot(-1)^{3+1} cdot left| begin{array}{rrr}{8} & {-2} & {-12} \ {4} & {-2} & {-8} \ {4} & {2} & {0}end{array}right|+0$$

Полученный определитель третьего порядка также разложим по элементам строки и столбца, предварительно получив нули,
например, в первом столбце. Для этого от первой строки отнимаем две вторые строки, а от третьей – вторую:

$$left| begin{array}{rrr}{8} & {-2} & {-12} \ {4} & {-2} & {-8} \ {4} & {2} & {0}end{array}right|=left| begin{array}{rrr}{0} & {2} & {4} \ {4} & {-2} & {-8} \ {0} & {4} & {8}end{array}right|=4 cdot(-1)^{2+2} cdot left| begin{array}{ll}{2} & {4} \ {4} & {8}end{array}right|=$$

$$=4 cdot(2 cdot 8-4 cdot 4)=0$$

Ответ. $left| begin{array}{cccc}{9} & {8} & {7} & {6} \ {5} & {4} & {3} & {2} \ {1} & {0} & {1} & {2} \ {3} & {4} & {5} & {6}end{array}right|=0$

Замечание

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

Приведение определителя к треугольному виду

С помощью элементарных преобразований над строками или столбцами определитель приводится к треугольному виду и тогда его
значение, согласно свойствам определителя, равно произведению
элементов стоящих на главной диагонали.

Пример

Задание. Вычислить определитель
$Delta=left| begin{array}{rrrr}{-2} & {1} & {3} & {2} \ {3} & {0} & {-1} & {2} \ {-5} & {2} & {3} & {0} \ {4} & {-1} & {2} & {-3}end{array}right|$ приведением его к треугольному виду.

Решение. Сначала делаем нули в первом столбце под главной диагональю. Все преобразования
будет выполнять проще, если элемент $a_{11}$ будет
равен 1. Для этого мы поменяем местами первый и второй столбцы определителя, что, согласно свойствам определителя,
приведет к тому, что он сменит знак на противоположный:

$$Delta=left| begin{array}{rrrr}{-2} & {1} & {3} & {2} \ {3} & {0} & {-1} & {2} \ {-5} & {2} & {3} & {0} \ {4} & {-1} & {2} & {-3}end{array}right|=-left| begin{array}{rrrr}{1} & {-2} & {3} & {2} \ {0} & {3} & {-1} & {2} \ {2} & {-5} & {3} & {0} \ {-1} & {4} & {2} & {-3}end{array}right|$$

Далее получим нули в первом столбце, кроме элемента $a_{11}$ ,
для этого из третьей строки вычтем две первых, а к четвертой строке прибавим первую, будем иметь:

$$Delta=-left| begin{array}{rrrr}{1} & {-2} & {3} & {2} \ {0} & {3} & {-1} & {2} \ {0} & {-1} & {-3} & {-4} \ {0} & {2} & {5} & {-1}end{array}right|$$

Далее получаем нули во втором столбце на месте элементов, стоящих под главной диагональю. И снова, если
диагональный элемент будет равен $pm 1$ , то
вычисления будут более простыми. Для этого меняем местами вторую и третью строки (и при этом меняется на
противоположный знак определителя):

$$Delta=left| begin{array}{rrrr}{1} & {-2} & {3} & {2} \ {0} & {-1} & {-3} & {-4} \ {0} & {3} & {-1} & {2} \ {0} & {2} & {5} & {-1}end{array}right|$$

Далее делаем нули во втором столбце под главной диагональю, для этого поступаем следующим образом:
к третьей строке прибавляем три вторых, а к четвертой – две вторых строки, получаем:

$$Delta=left| begin{array}{rrrr}{1} & {-2} & {3} & {2} \ {0} & {-1} & {-3} & {-4} \ {0} & {0} & {-10} & {-10} \ {0} & {0} & {-1} & {-9}end{array}right|$$

Далее из третьей строки выносим (-10) за определитель и делаем нули в третьем столбце под
главной диагональю, а для этого к последней строке прибавляем третью:

$$Delta=-10 left| begin{array}{rrrr}{1} & {-2} & {3} & {2} \ {0} & {-1} & {-3} & {-4} \ {0} & {0} & {1} & {1} \ {0} & {0} & {-1} & {-9}end{array}right|=$$

$$=-10 cdot left| begin{array}{cccc}{1} & {-2} & {3} & {2} \ {0} & {-1} & {-3} & {-4} \ {0} & {0} & {1} & {1} \ {0} & {0} & {0} & {-8}end{array}right|=(-10) cdot 1 cdot(-1) cdot 1 cdot(-8)=-80$$

Ответ. $Delta=-80$

Теорема Лапласа

Теорема

Пусть $Delta$ – определитель
$n$-го порядка. Выберем в нем произвольные
$k$ строк (или столбцов), причем
$k leq n-1$ . Тогда сумма произведений всех
миноров
$k$-го порядка, которые содержатся в выбранных
$k$ строках (столбцах), на их
алгебраические дополнения равна определителю.

Пример

Задание. Используя теорему Лапласа, вычислить определитель
$left| begin{array}{rrrrr}{2} & {3} & {0} & {4} & {5} \ {0} & {1} & {0} & {-1} & {2} \ {3} & {2} & {1} & {0} & {1} \ {0} & {4} & {0} & {-5} & {0} \ {1} & {1} & {2} & {-2} & {1}end{array}right|$

Решение. Выберем в данном определителе пятого порядка две строки –
вторую и третью, тогда получаем (слагаемые, которые равны нулю, опускаем):

$$left| begin{array}{rrrrr}{2} & {3} & {0} & {4} & {5} \ {0} & {1} & {0} & {-1} & {2} \ {3} & {2} & {1} & {0} & {1} \ {0} & {4} & {0} & {-5} & {0} \ {1} & {1} & {2} & {-2} & {1}end{array}right|=left| begin{array}{cc}{1} & {-1} \ {4} & {-5}end{array}right| cdot(-1)^{2+4+2+4} cdot left| begin{array}{ccc}{2} & {0} & {5} \ {3} & {1} & {1} \ {1} & {2} & {1}end{array}right|+$$

$$+left| begin{array}{ll}{1} & {2} \ {4} & {0}end{array}right| cdot(-1)^{2+4+2+5} cdot left| begin{array}{rrr}{2} & {0} & {4} \ {3} & {1} & {0} \ {1} & {2} & {-2}end{array}right|+left| begin{array}{cc}{-1} & {2} \ {-5} & {0}end{array}right| cdot(-1)^{2+4+5} cdot left| begin{array}{ccc}{2} & {3} & {0} \ {3} & {2} & {1} \ {1} & {1} & {2}end{array}right|=$$

$$=-23+128+90=195$$

Ответ. $left| begin{array}{rrrrr}{2} & {3} & {0} & {4} & {5} \ {0} & {1} & {0} & {-1} & {2} \ {3} & {2} & {1} & {0} & {1} \ {0} & {4} & {0} & {-5} & {0} \ {1} & {1} & {2} & {-2} & {1}end{array}right|=195$

Читать дальше: обратная матрица.

Задачи с использованием главной или побочной диагонали матрицы

Существует
множество задач, в которых необходимо
использовать элементы главной или
побочной диагонали матрицы (эти понятия
имеют смысл только для квадратных
матриц!).

Пусть
дана матрица а(4,4).

a11,
a22,
a33,
a44
– элементы главной диагонали матрицы.
На главной диагонали индексы строки и
столбца равны, то есть i
= j.
Элемент главной диагонали можно
обозначать как a[i,i].

У
элементов матрицы, лежащих выше главной
диагонали, i
< j,
а у тех, которые ниже, i
> j.

a14,
a23,
a32,
a41
– элементы побочной диагонали матрицы.
На побочной диагонали сумма индексов
строки и столбца постоянна и на единицу
больше размера матрицы, т. е. для
матрицы a(4,
4) сумма индексов i
+ j
= 5, поэтому элемент побочной диагонали
можно обозначать как a[i,5
i].

У
элементов a[ij],
лежащих выше побочной диагонали сумма
индексов i
+ j
< 5, а у элементов a[i,
j],
лежащих ниже побочной диагонали, сумма
индексов i
+ j
> 5.

Задача
1. Найти
сумму элементов, расположенных на
главной диагонали матрицы a.

sum:=0;

for
i:=1
to 4 do

for
j:=1
to
4 do

if
i=j then sum
:=sum
+ a[i,
j];

Другой
вариант:

sum:=0;

for
i:=1
to 4 do

sum:=sum
+ a[i,
i];

Задача
2. Найти
сумму элементов матрицы а,
расположенных выше ее главной диагонали.

sum
= 0;

for
i:=1
to 4 do

for
j:=1
to 4 do

if
i
< j
then sum:=sum
+ a[i,
j];

Задача
3.
Найти сумму элементов побочной диагонали
матрицы a.

sum:=0;

for
i:=1
to 4 do

for
j:=1
to
4 do

if
i+=5j then sum
:=sum
+ a[i,
j];

Другой
вариант:

sum:=0;

for
i:=1
to 4 do

sum:=sum
+ a[i,
5-i];

sum
= 0;

for
i
: = 1 to 4 do

sum
: = sum
+ a[i,
5 – i];

Задача
4. Найти
сумму элементов матрицы a,
лежащих выше ее побочной диагонали.

sum
= 0;

for
i:=1
to 4 do

for
j:=1
to 4 do

if
i+j<5
then sum:=sum
+ a[i,
j];

Пример выполнения задания 6

Дана
матрица a(4,
4). Получить матрицу b(4,
4) по правилу:

а
также произведение элементов строки,
содержащей наименьший элемент матрицы.

program
lab4;

uses
crt;

var
к,
i, j
:
integer;

b,
a
:
array [1 .. 4, 1 .. 4] of real;

p,
min
: real;

begin
clrscr;

writeln
(введите
матрицу
d);

for
i:=1
to 4 do

for
j:=1
to 4 do read (a[i,
j]);

min:=a[l,
1];
k:=1;

{формирование
матрицы b
и
в этом же цикле}

{поиск
минимального элемента и номера строки,

в
которой он находится}

for
i:=1
to
4 do

for
j:=1
to 4 do

begin

if
a[i,
j]
> 0 then b[i,
j]:=2*a[i,
j]
else

b[i,
j]:=0;

if
a[i,
j]
<
min
then

begin
min:=a[i,
j];

к:=i

end

end;

p:=1;

for
j:=1
to
4 do

p:=p*a[k,
j];
{вычисление
произведения элементов

k-ой
строки}

writeln
(вывод
b(4,
4));

for
i:=1
to 4 do

begin

for
j:=1
to 4 do write(b[i,
j]:8:2);

writeln

end;

writeln
(минимальный
элемент = ,
min
:8:2);

writeln
(произведение
элементов ,
k,
строки =,
p:5:2)

readkey

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Добавить комментарий