Что такое побочная диагональ

Диагональные матрицы: определение и свойства

Обновлено: 20 Июля 2021

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

Что такое диагональная матрица

У диагональной матрицы элементы, расположенные вне главной диагонали, равны нулю.

Напомним, что матрица считается квадратной, если количество строк равно количеству столбцов (m = n).

Особенности и свойства

Для начала нужно понять, что такое матричный определитель.

Определитель (детерминант) — это некоторая величина, с которой можно сопоставить любую квадратную матрицу.

Определитель А = (2×2), к примеру, вычисляется по формуле:

Из этого следует свойство №1: определитель диагональной матрицы равен произведению ее диагональных элементов.

Свойство №2: обратная матрица для диагональной равна:

Свойство №3: ранг равен количеству ненулевых диагональных элементов.

Главная и побочная диагонали

Побочной диагональю называют диагональ элементов от правого верхнего угла до нижнего левого. Эти диагонали параллельны друг другу.

Частные случаи диагональных матриц

Существуют три основных подвида: единичная, нулевая, скалярная.

Единичная матрица

У единичной матрицы все диагональные элементы равны единице.

В формулах ее обозначают буквой Е.

Нулевая матрица

В нулевой матрице все элементы, в том числе диагональные, равны нулю.

В формулах ее обозначают цифрой 0.

Скалярная матрица

В скалярной матрице все элементы на главной диагонали равны друг другу.

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

Примеры решения диагональных матриц

Иногда недиагональная матрица может быть приведена к диагональному виду.

Условие: дана матрица А

Задача: привести к диагональному виду.

Решение: характеристическое уравнение равно

Таким образом, диагональная матрица имеет вид:

Изучение данных математических объектов имеет свои подводные камни. Если у вас нет времени на учебу, Феникс.Хелп может помочь вам с решением контрольных, самостоятельных и иных проверочных работ.

Источник

Pascal: Занятие № 10. Двумерный массив в Pascal

Двумерный массив в Pascal

Матрица или двумерный массив – это прямоугольная таблица чисел (или других элементов одного типа). Каждый элемент матрицы имеет два индекса (номер строки и номер столбца).

Исходные данные для решения многих задач можно представить в табличной форме:

Таблица результатов производственной деятельности нескольких филиалов фирмы может быть представлена так:

zavod1: array [1..4] of integer; zavod2: array [1..4] of integer; zavod3: array [1..4] of integer;

Или в виде двумерного массива так:

var A: array[1..3,1..4] of integer; begin

begin var a := new integer[3,4]; <. >end.

Описание, ввод и вывод элементов двумерного массива

Варианты описания двумерного массива (традиционный pascal)

const N = 3; M = 4; var A: array[1..N,1..M] of integer;

const M=10; N=5; type matrix=array [1..M, 1..N] of integer; var A: matrix;

for i:=1 to N do for j:=1 to M do begin write(‘A[‘,i,’,’,j,’]=’); read ( A[i,j] ); end;

for var i:=0 to a.RowCount-1 do for var j:=0 to a.ColCount-1 do a[i,j]:=readinteger;

var a := MatrRandomInteger(3,4,0,10); // целые числа в диапазоне от 0 до 10 var a1 := MatrRandomReal(3,4,1,9) // веществ. числа в диапазоне от 1 до 9

Следующий фрагмент программы выводит на экран значения элементов массива по строкам:

for i:=1 to N do begin for j:=1 to M do write ( A[i,j]:5 ); writeln; end;

begin var a := MatrRandomInteger(3,4,0,10); var a1 := MatrRandomReal(3,4,1,9); a.Println; a1.Println(6,1) // 6 позиций всего на вывод, 1 знак после десят. запятой end.

Рассмотрим следующую задачу: Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:

Номер станции 1-й день 2-й день 3-й день 4-й день
1 -8 -14 -19 -18
2 25 28 26 20
3 11 18 20 25

Т.е. запись показаний в двумерном массиве выглядела бы так:

t[1,1]:=-8; t[1,2]:=-14; t[1,3]:=-19; t[1,4]:=-18;
t[2,1]:=25; t[2,2]:=28; t[2,3]:=26; t[2,4]:=20;
t[3,1]:=11; t[3,2]:=18; t[3,3]:=20; t[3,4]:=25;

Или в pascalabc.NET:

var t := Matr(3,4,-8,-14,-19,-18,25,28,26,20,11,18,20,25); t.Println;

Объявление двумерного массива:

var t: array [1..3, 1..4] of integer;

Самостоятельно подумайте, как находится сумма элементов массива pascal.

Методы матриц для работы со строками и столбцами:

begin var a := MatrRandomInteger(3,4); a.Println; a.Row(0).Sum.Println(); a.Row(1).Average.Println; a.Row(2).Product.Println; a.Col(0).Min.Println; a.Col(1).Max.Println; end.

Читайте также:  Что такое бромгексин таблетки

Главная и побочная диагональ при работе с двумерными матрицами в Pascal

Главная диагональ квадратной матрицы n x n (т.е. той, у которой количество строк равно количеству столбцов) проходит с верхнего левого угла матрицы (элемент 1,1) до правого нижнего угла матрицы (элемент n,n).

Побочная диагональ квадратной матрицы n x n проходит с нижнего левого угла матрицы (элемент n,1) до правого верхнего угла матрицы (элемент 1,n).

Формулу поиска элементов диагоналей проще всего искать, нарисовав элементы матрицы:
Если индексы начинаются с единицы (традиционный Паскаль):

1,1 1,2 1,3 1,4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Если индексы начинаются с нуля (pascalAbc.NET):

0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
3,0 3,1 3,2 3,3

где n — размерность квадратной матрицы

Побочная диагональ матрицы в pascalAbc.Net имеет формулу:
n=i+j+1

где n — размерность квадратной матрицы

var i,j,n:integer; a: array[1..100,1..100]of integer; begin randomize; writeln (‘введите размерность матрицы:’); readln(n); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(10); write(a[i,j]:3); end; writeln; end; writeln; for i:=1 to n do begin for j:=1 to n do begin if (i=j) or (n=i+j-1) then a[i,j]:=0; write(a[i,j]:3) end; writeln; end; end.

var A:array[1..5,1..5] of integer; i,j:integer; sum,sum1,sum2:integer; begin randomize; for i:=1 to 5 do for j:=1 to 5 do A[i,j]:=random(10); write (‘Исходный массив A: ‘); for i:=1 to 5 do begin writeln; for j:=1 to 5 do write (A[i,j]:2,’ ‘); end; sum1:=0; for i:=1 to 5 do for j:=1 to 5 do if (i-j=1) then sum1:=sum1+A[i,j]; sum2:=0; for i:=1 to 5 do for j:=1 to 5 do if (j-i=1) then sum2:=sum2+A[i,j]; sum:=sum1+sum2; writeln; writeln(‘Сумма = ‘,sum); end.

Рассмотрим еще один пример работы с двумерным массивом.

var index1,index2,i,j,N,M:integer; s,min,f:real; a:array[1..300,1..300] of real; begin N:=10; M:=5; for i:=1 to N do begin for j:=1 to M do begin a[i,j]:=random(20); s:=s+a[i,j]; write(a[i,j]:3); end; writeln; end; f:=s/(N*M); writeln(‘srednee znachenie ‘,f); min:=abs(a[1,1]-f); for i:=1 to N do begin for j:=1 to M do begin if abs(a[i,j]-f)

Источник

Матрицы: определение и основные понятия.

Определение матрицы

Количество строк и столбцов задают размеры матрицы.

Обозначение

A = 4 1 -7
-1 0 2

Элементы матрицы

Элементы матрицы A4×4:

A = 4 1 -7 2
-1 0 2 44
4 6 7 9
11 3 1 5

Демонстрация нулевых и ненулевых строк матрицы:

Демонстрация нулевых и ненулевых столбцов матрицы:

4 1 -7

не не нулевой столбец

Диагонали матрицы

Демонстрация главной и побочной диагонали матрицы:

Источник

Матрицы. Виды матриц

Матрицей называется прямоугольная таблица из чисел с некоторым количеством m строк и с некоторым количеством n столбцов. Числа m и n называются порядками или размерами матрицы.

Матрица порядка m × n записывается в форме:

или (i=1,2. m; j=1,2. n).

Числа aij входящие в состав данной матрицы называются ее элементами. В записи aij первый индекс i означает номер строки, а второй индекс j— номер столбца.

Матрица строка

Матрица размером 1×n, т.е. состоящая из одной строки, называется матрицей-строкой. Например:

Матрица столбец

Матрица размером m×1, т.е. состоящая из одного столбца, называется матрицей-столбцом. Например

Нулевая матрица

Квадратная матрица

Матрица A порядка m×n называется квадратной матрицей, если количество строк и столбцов совпадают: m=n. Число m=n называется порядком квадратной матрицы. Например:

Главная диагональ матрицы

Побочная диагональ матрицы

Диагональная матрица

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

Единичная матрица

След матрицы

Сумма главных диагональных элементов матрицы A называется следом матрицы и обозначается Sp A или Tr A. Например:

Верхняя треугольная матрица

Нижняя треугольная матрица

Квадратная матрица порядка n×n называется нижней треугольной матрицей, если равны нулю все элементы матрицы, расположенные над главной диагональю, т.е. aij=0, при всех i T ).

Cтолбцы матрицы A образуют пространство столбцов матрицы и обозначаются через R(A).

Ядро или нуль пространство матрицы

Противоположная матрица

Для любой матрицы A сущеcтвует противоположная матрица -A такая, что A+(-A)=0. Очевидно, что в качестве матрицы -A следует взять матрицу (-1)A, элементы которой отличаются от элементов A знаком.

Кососимметричная (Кососимметрическая) матрица

Кососимметричной называется квадратная матрица, которая отличается от своей транспонированной матрицы множителем −1:

В кососимметричной матрице любые два элемента, расположенные симметрично относительно главной диагонали отличаются друг от друга множителем −1, а диагональные элементы равны нулю.

Пример кососимметрической матрицы:

Разность матриц

Разностью C двух матриц A и B одинакового размера определяется равенством

Для обозначения разности двух матриц используется запись:

Степень матрицы

Пусть квадратная матрица размера n×n. Тогда степень матрицы определяется следующим образом:

где E-единичная матрица.

Из сочетательного свойства умножения следует:

где p,q— произвольные целые неотрицательные числа.

Симметричная (Симметрическая) матрица

Матрица, удовлетворяющая условию A=A T называется симметричной матрицей.

Для симметричных матриц имеет место равенство:

Источник

Главной или побочной диагонали матрицы

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

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

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

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

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

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

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

0 1 -7
0 0 2
sum:=0; for i:=1 to 4 do for j:=1to 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. Найти сумму элементов матрицы а, расположенных выше ее главной диагонали.

var к, i, j : integer;

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

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

Описание функции содержится в главной программе после раздела описания переменных (var) и перед началом (begin) программы.

В общем виде функция записывается следующим образом:

function имя(формальные параметры) :тип результата;

Раздел описаний

Begin

Раздел операторов

Формальные параметры – это наименования переменных (аргументы описываемой функции), через которые передаются входные данные из программы в функцию. Формальными параметрами функции, как правило, являются параметры – значения.

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

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

Например, описания вычисления функции тангенса угла:

function tg(x:real): real;

Вызов и выполнение функции производится при вычислении указателя функции:

имя функции(фактические параметры ).

При этом вызов функции необходимо делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, например синус sin(x). Фактические и формальные параметры должны согласовываться

¾ по порядку следования,

Например, вызов ранее описанной функции tg можно произвести так:

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

Пример. Заданы стороны двух треугольников MNK (стороны m, n, k) и PLF (стороны p, l, f ). Переменной s присвоить значение –1, если площадь треугольника MNK меньше или равнa площади треугольника PLF, и значение 1 в противном случае.

Вычисление площади треугольников по формуле Герона оформить в виде функции pl.

Примечание. Формула Герона для вычисления площади треугольника со сторонами a, b, c:

,

где , где p – полупериметр треугольника.

var m, n, k, l, p, f, h, q: real;

function pl(a, b, c: real): real;

writeln(‘Введите стороны m, n, k, p, l, f’);

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

Нельзя записать так:

function sum(a: array[1..5] of real; var : real):real;

Пример. Пусть заданы два вектора а(8) и b(12). Вычислить для каждого вектора произведение его элементов.

function prl(var x: vect; n: integer): real;

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

где Xk – наибольшее из значений элементов K – го столбца матрицы A.

Вычисление наибольшего значения оформить в виде функции.

type matr = array[1..4,1..4] of real;

function max(y:matr; k: integer): real;

writeln(‘введите матрицу a(4,4)’);

Тема 8

Организация программ

С использованием процедур

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

Избежать дублирования операторов можно, если оформить повторяющуюся последовательность как процедуру и в том месте программы, где надо выполнить эти инструкции, указать ее имя.

В Турбо Паскале процедурой называется часть программы, имеющая имя и предназначенная для решения определенной задачи (вместо термина «процедура», часто используют термин подпрограмма).

Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и заключенного в круглые скобки списка формаль­ных параметров с указанием типа каждого параметра.

В общем виде описание процедуры выглядит так:

procedure имя (формальные параметры);

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

Нетрудно заметить, что структура процедуры копирует структуру программы в целом, т. е. состоит из заголовка, раздела описаний и раз­дела операторов. Различия лишь в заголовках и в том, что в конце про­цедуры ставится точка с запятой вместо точки в конце программы. Процедура помещается в основной программе после раздела описания переменных и перед разделом операторов основной программы.

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

Формальные параметры – это наименование фиктивных переменных, через которые передается информация из программы в процедуру (входные параметры) либо из процедуры в программу (выходные параметры). Выходным параметрам присваиваются результаты вычислений.

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

Имя процедуры(список фактических параметров).

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

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

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

– число фактических параметров должно быть равно числу формальных параметров;

– соответствующие фактические и формальные параметры долж­ны совпадать по порядку следования и по типу.

Данные из основной программы поступают в процедуру. Затем управление передается процедуре. Результаты выполнения процедуры передаются в основную программу и управление передается на оператор, следующий за вызовом процедуры. Соответствующие формальные и фактические пара­метры во избежание путаницы обычно обозначают разными буквами.

Параметры

Параметры, перед которыми отсутствует зарезервированное слово var и за которыми следует тип, называются параметрами-значениями. Например, в описании

procedure korrect (s, к : real; x : integer);

s, k, x –параметры-значения. Фактический параметр, соответствующий параметру-значению, может быть выражением соответствующего типа, например:

Изменение формальных параметров-значений не влияет на значе­ния соответствующих фактических параметров.

Параметры, перед которыми следует ключевое слово var и за кото­рым следует тип, называются параметрами-переменными. Например, в описании

procedure obr(var s, k: real; var x : integer);

s, k, x – параметры-переменные. Фактический параметр, соответствую­щий параметру-переменной, может быть только переменной, например:

где а, b – переменные вещественного типа, а k –целого типа.

Любые изменения в значении формального параметра-переменной отражаются на фактическом параметре.

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

Пример. Решить два квадратных уравнения и ,

считая, что его дискриминант неотрицателен.

procedure sq( a, b, с : real; var xl, x2: real);

Источник

Информационный сайт