Построение матриц по заданному виду
Одним из пунктов задания является построение матриц определенного вида. То есть нужно найти закон, по которому определяется каждый элемент матрицы. Рассмотрим примеры.
Пример 8. Построить матрицу C размера (6*6) следующего вида:
PROGRAM PR8;
VAR C : ARRAY [1..6, 1..6] OF REAL;
i, j : INTEGER;
BEGIN
FOR i:=1 TO 6 DO
FOR j:=1 TO 6 DO
IF j <= i THEN C[i, j]:=6-i+j
ELSE C[i, j]:=0;
{Вывод на экран матрицы C (см. примеры 3, 4)};
END.
Пояснения к программе: Условие оператора IF определяет элементы, находящиеся на главной и ниже главной диагонали матрицы. При выполнении этого условия элементы матрицы вычисляются по определенному закону. В противном случае элементам присваивается 0.
Пример 9. Построить матрицу C размера (6*6) следующего вида:
PROGRAM PR9;
CONST n = 6;
VAR C : ARRAY [1..n, 1..n] OF REAL;
i, j : INTEGER;
L : BOOLEAN;
BEGIN
FOR i:=1 TO n DO
FOR j:=1 TO n DO BEGIN
L:=((j>=2) AND (j<=5) AND ((i=1) OR (i=6))) OR
((i>=2) AND (i<=5) AND ((j=1) OR (j=6)));
IF L THEN C[i, j]:=0
ELSE C[i, j]:=n;
END;
{Вывод на экран матрицы C (см. примеры 3, 4)};
END.
Пояснения к программе: В данном примере используется переменная L логического типа. Если переменная L принимает значение TRUE, то элементу матрицы присваивается 0. Если переменная L принимает значение FALSE, то элементу матрицы присваивается значение n.
Пример 10. Построить матрицу C размера (6*6) следующего вида:
PROGRAM PR10;
CONST n=6;
VAR C : ARRAY [1..n, 1..n] OF REAL;
i, j : INTEGER;
BEGIN
FOR i:=1 TO n DO
FOR j:=1 TO n DO
IF j >= i THEN C[i, j]:=j-i+1
ELSE C[i, j]:=0;
{Вывод на экран матрицы C (см. примеры 3, 4)};
END.
УМНОЖЕНИЕ МАТРИЦ
Из курса «Линейной алгебры» известно, что произведение двух матриц возможно тогда и только тогда, когда число столбцов первого множителя равно числу строк второго множителя. В результате умножения получается матрица, у которой столько строк, сколько у первой матрицы, и столько столбцов, сколько их у второй матрицы.
Произведением матрицы В размера (4*6) на матрицу С размера (6*3) является матрица D размера (4*3), элементы которой определяются по формулам: .
Рассмотрим примеры.
Пример 11. Вычислить D=B*C, где матрица В размера (4*6), матрица С размера (6*3).
PROGRAM PR11;
VAR B : ARRAY [1..4, 1..6] OF REAL;
C : ARRAY [1..6, 1..3] OF REAL;
D : ARRAY [1..4, 1..3] OF REAL;
i, j, k : INTEGER;
BEGIN
{Ввести элементы матриц B и C(способы задания матриц приведены в примерах 1, 2)}
FOR i:=1 TO 4 DO
FOR j:=1 TO 3 DO BEGIN
d[i, j]:=0;
FOR k:=1 TO 6 DO
d[i, j]:=d[i, j]+b[i, k]*c[k, j];
END;
{Вывод на экран матрицы D (см. примеры 3, 4)};
END.
Пример 12. Вычислить D=B*C, где В вектор-строка, содержащая 6 элементов, а матрица С размера (6*3).
PROGRAM PR12;
VAR B : ARRAY [1..6] OF REAL;
C : ARRAY [1..6, 1..3] OF REAL;
D : ARRAY [1..3] OF REAL;
i, k : NTEGER;
BEGIN
{Ввести элементы вектора B и матрицы C (способы задания матриц приведены в примерах 1, 2)}
FOR i:=1 TO 3 DO BEGIN
d[i]:=0;
FOR k:=1 TO 6 DO
d[i]:=d[i]+b[k]*c[k, i];
END;
{Вывод на экран матрицы D (см. примеры 3, 4)};
END.
Пояснения к программе: Результатом умножения, в данном случае, будет являться вектор-строка D, содержащая 3 элемента.