Одним из пунктов задания является построение матриц определенного вида. То есть нужно найти закон, по которому определяется каждый элемент матрицы. Рассмотрим примеры.
Пример 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 элемента.