что такое главная и побочная диагональ матрицы
Матрицы. Виды матриц
Матрицей называется прямоугольная таблица из чисел с некоторым количеством 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 называется симметричной матрицей.
Для симметричных матриц имеет место равенство:
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 |
Учитывая, что первая цифра в программе будет соответствовать счетчику i, а вторая — счетчику j, то из таблицы можно вывести формулы:
Главная диагональ матрицы в Паскаль имеет формулу:
i=j
Побочная диагональ матрицы в Паскаль имеет формулу:
n=i+j-1 (или j=n-i+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 |
0 | 1 | -7 | ||
0 | 0 | 2 | ||