Статистика и анализ геологических данных
..pdfГлава 4 МАТРИЧНАЯ АЛГЕБРА
Эта глава посвящена матричной алгебре. Большинство мето дов, которые мы рассмотрим в следующих главах, основано на операциях с матрицами, часто выполняемыми вычислительными машинами. Особое внимание мы уделим математическим опера циям, которые лежат в основе анализа поверхностей тренда, ме тода главных компонент, дискриминантного анализа и др. Вы числительные процедуры, связанные с этими методами, почти невыполнимы без вычислительных машин в связи со сложностью и Многократностью производимых вычислений. С помощью же матричной алгебры их можно представить в доступном и сжатом виде. Таким образом, если читатель владеет основами матрич ной алгебры, то он сможет понять основные процедуры, которые мы рассмотрим ниже.
К сожалению, большинству геологов при обучении не препо дают курс матричной алгебры, несмотря на то что этот не труд ный предмет, по-видимому, более полезен, чем ряд других мате матических курсов. Курс матричной алгебры в колледжах обычно насыщен многочисленными теоремами и их доказатель ствами. Такое изложение непригодно для этой короткой главы, и мы ограничимся только теоремами, которые нам потребуются в последующем изложении. При этом предпочтение будет отдано не Доказательствам, а примерам.
Матрица
Матрица — это набор чисел, расположенный в прямоугольной таблице. Именно такими таблицами мы пользовались в гл. 2 . В Матричной алгебре таблица рассматривается не как набор от дельных элементов, а как единое целое, что приводит к значи тельным упрощениям ряда процедур и зависимостей. Как уже отвечалось во второй главе, отдельный элемент матрицы обычно обозначается буквой с приписанными внизу индексами.
Элементами матрицы могут быть дисперсии и ковариации, ре зультаты наблюдений, коэффициенты системы уравнений и про сто любые числа.
Так, например, в гл. 3 требовалось вычислить оценки диспер сий и ковариаций для содержаний микроэлементов, приведенных в табл. 3.3. Полученные результаты можно представить в виде следующей матрицы:
SCr |
COVcr-Nl |
COVcr-v |
|
C O V N I- сг |
SNI |
|
COVNI- v |
COVv-Сг |
COVv-Ni |
Sv |
|
570 |
|
537,5 |
663,75" |
[537,5 |
562,5 |
718,75 . |
|
|
|
|
1007,5 _ |
663,75 |
718,5 |
|
|
Набор чисел (допустим значений переменной X), представ |
|||
ленный в виде матрицы, |
обычно |
обозначается [X], X, (X) |
или ||Х||.
В этой книге мы будем применять квадратные скобки и обо значать отдельные элементы матрицы заглавными буквами с ин дексами, например Хц. Вообще в литературе встречаются и такие условные обозначения, как [Хц], [Х]ц, или эквивалентные грече ские буквы, как %ij. Символ Хц — означает элемент i-той строки
и j-ro столбца. Например, если |
|
[X] — матрица порядка 3 x 3 : |
"1 |
4 |
7" |
2 |
5 |
8 , |
3 |
6 |
9 |
то Хзз=9, Xi3= 7 , Хг1 = 2 и т. д. Если число столбцов равно числу строк, то матрица называется квадратной, а ее элементы, ин дексы которых равны (т. е. i = j) , называются диагональными элементами. В вышеприведенной матрице характеристик распре деления микроэлементов диагональными являются дисперсии со держаний. Все остальные элементы — ковариации. В следующей матрице диагональные элементы равны соответственно 1, 5 и 9. Чаще всего встречаются квадратные матрицы, но неквадрат ные тоже нередки, несмотря на то что операции с ними подчи нены строгим ограничениям. Особенно часто используются две формы неквадратных матриц: вектор-строка, т. е. матрица по рядка lX m , и вектор-столбец, т. е. матрица порядка m x l.
Очень часто приходится иметь дело с двумя типами квадрат ных матриц. Это симметричная матрица, в которой Xij=Xji, как,
например, матрица вида
Г1 2 3" 2 4 5 .
.3 5 6_
Другим примером матрицы, симметричной относительно глав ной диагонали, может служить матрица дисперсий и ковариаций, приведенная выше.
Единичная матрица — это симметричная матрица, в которой все диагональные элементы равны 1 , а все остальные равны 0 :
1 0 |
|
0 ' |
0 |
1 |
0 . |
0 |
0 |
1 |
Элементарные действия с матрицами
Сложение и вычитание матриц подчиняется законам обычной алгебры, но при одном важном условии: складываемые или вы читаемые матрицы должны иметь равное число строк и равное число столбцов.
При выполнении операции сложения [С ]= [А ]+ [В ] к каж дому элементу матрицы [А] прибавляется соответствующий эле мент матрицы [В]. Если матрицы разных порядков, то операция сложения невыполнима. Вычитание [С ]= [А]— [В] выполняется таким же способом: каждый элемент матрицы [В] вычитается из соответствующего элемента матрицы [А].
В качестве иллюстрации в табл. 4.1 приведена характери стика добычи бентонитовой глины в трех горнодобывающих районах штата Вайоминг.
|
|
|
Т а б л и ц а 4.1 |
|
Добыча бентонитовой глины в штате |
Вайоминг, 1964 г. |
|||
|
(в 1 • 105 т) |
|
|
|
|
Глина для |
Л и тейная |
|
|
Р е ги о н |
бурового |
П рочие глины |
||
глина |
||||
|
раствора |
|
||
|
|
|
||
Восточный |
105 |
63 |
5 |
|
Пограничные районы |
со |
80 |
2 |
|
штатом Монтана |
218 |
|||
Центральный |
220 |
76 |
1 |
Ю З а к а з № 455
Добывается три основных типа глины: один применяется для приготовления бурового раствора, другой — в качестве литейной глины и последний используется как лекарственное и космети ческое средство, для керамических целей и др. Все эти данные можно записать в виде матрицы порядка 3X 3 [А]:
'105 63 5'
IAJ = 218 80 2
220 76 1
Продукцию, добытую в следующем году, также можно оха рактеризовать матрицей [В]:
’ 84 1 02 4*
|
|
|
[В ]- |
240 |
1 2 1 |
1 |
|
|
|
|
|
|
|
|
302 |
28 |
0 |
|
|
Общая продукция за два года в трех районах будет представ |
|||||||||
лять сумму |
[CJ двух матриц |
[А] и [В]: |
|
|
|
||||
|
[А] |
|
+ |
|
[В] |
|
= |
JCI |
9' |
'105 |
63 |
5' |
‘ |
84 |
1 02 |
4" |
'189 |
165 |
|
218 |
80 |
2 |
+ |
240 |
1 2 1 |
1 |
= 458 |
201 |
3 |
22 0 |
76 |
1 _ |
|
302 |
28 |
0 _ |
.522 |
104 |
1 . |
Аналогично изменение добычи можно представить как раз
ность матрицы [А] и матрицы [В], т. е. |
|
|
||||||
|
IB] |
- |
|
[А] |
|
= |
[CJ |
|
' 84 |
1 02 |
4' |
'105 |
63 |
5' |
‘ — 2 1 |
39 |
- Г |
240 |
1 2 1 |
1 — |
218 |
80 |
2 |
—г 2 2 |
41 |
- 1 |
.302 |
28 |
0_ |
.2 2 0 |
76 |
1. |
82 |
- 4 8 |
- 1 . |
Отметим, что положительные элементы матрицы [В}— [А] со
ответствуют росту добычи глины. |
матриц порядка |
пХш |
Как и в обычной алгебре, сложение |
||
коммутативно, т. е. [А ]+ [В ]= [В]+[А ], |
и ассоциативно, |
т. е. |
( [А]+ [В]) + [С ]= [А]+ ( [В ]+ [С]). Порядок матриц при вычита нии, конечно, существен.
Матричное сложение и вычитание можно легко запрограмми ровать для ЭВМ, используя таблицы с двумя входами. Чтобы избежать многократного повторения инструкций по вводу и вы воду данных и повторной записи предложений на формате в ка ждой программе этой главы, мы представим каждую матричную
операцию в виде подпрограммы, которую можно будет использо вать в случае необходимости. Ввод и вывод данных может вы полняться с помощью специальных подпрограмм, выполняющих только эти задания. Таким образом, в этой главе представлена небольшая библиотека программ работы с матрицами. Подпро граммы создаются в расчете на возможные изменения порядка матриц. Конкретные значения порядка матрицы принимаются в списке параметров оператора CALL. Главная программа, есте ственно, должна содержать предложение DIMENSION, описы вающее массив, порядок которого достаточен для размещения
матрицы. Программа |
4.1— это |
подпрограмма |
READM, пред- |
||||||
С |
PROGRAM |
4 - 1 |
|
|
|
|
|
|
|
с |
|
|
|
|
|
|
|
|
|
С |
S U B R O U T IN E |
TO |
READ |
A |
M A T R IX |
|
|||
С |
H A V I N G |
N ROWS |
AND |
М |
COLUMNS |
|
|||
С |
S U B R O U T IN E |
R E A D M ( A , N , M , N I ,M1) |
|
||||||
|
|
||||||||
|
D I M E N S I O N A ( N I , M I ) |
|
|
|
|
||||
C |
READ |
S I Z E OF |
M A T R IX |
|
|
|
|||
|
READ |
( 5 f IO O O ) |
N ,M |
|
|
|
|
||
C |
READ |
M A T R IX |
ONE ROW |
A T |
A T I M E |
|
|||
|
DO 1 0 0 |
1 = 1 . N |
|
|
|
|
|
||
|
READ |
( 5 f I СОI ) |
( A ( I , J ) , J « 1 , M ) |
|
|||||
1 0 0 C O N T IN U E |
|
|
|
|
|
|
|||
1 0 0 0 |
RETURN |
( 2 1 3 ) |
|
|
|
|
|
||
FORMAT |
|
|
|
|
|
||||
10 0 1 |
FORMAT |
( 1 0 F 8 . 0 ) |
|
|
|
|
|||
|
END |
|
|
|
|
|
|
|
|
Программа 4.1. Подпрограмма |
READM |
|
|||||||
назначенная для чтения матриц порядка |
NXM, |
где N — число |
строк, а М — число столбцов. Матрица читается построчно, при чем в строке пробивается не более десяти отверстий (если М > >10, то каждая строка матрицы занимает две карты). Число строк и столбцов должно быть задано до чтения матрицы. Форма представления данных на носителе определяется предложением,
описывающим формат.
Программа 4.2 — это подпрограмма PRINTM для записи мат рицы на устройство построчной печати. Ограничения в этом слу чае такие же, как и в программе 4.1. Матрица печатается бло ками по 10 столбцов, дополнительные столбцы записываются во
втором блоке.
Программа 4.3 — это подпрограмма, называемая ADDM, предназначенная для сложения двух матриц. Все три упомяну тые подпрограммы можно вызвать краткой главной программой, приведенной ниже, которая прочтет и сложит матрицы [А] и [В], а затем получит и напечатает матрицу [С]. Составьте короткую программу, использующую эти подпрограммы, и попробуйте
|
С |
|
PROGRAM 4 - 2 |
|
|
|
|
||
|
С |
|
|
|
|
|
|
|
|
|
С |
|
S U B R O U T IN E Т О P R I N T A M A T R IX |
|
|||||
|
С |
|
H A V I N G |
N ROWS |
AND |
М COLUMNS |
|
||
|
С |
|
SUBROUTINE PRINTM( A', N, M, NI , MI ) |
|
|||||
|
|
|
|
||||||
|
|
|
D I M E N S I O N A ( N 1 , M I ) |
|
|
|
|||
|
C |
|
P R I N T |
M A T R IX |
OUT I N S T R I P S |
O F |
1 0 COLUMNS |
||
|
|
|
DO 1 0 0 I B = 1 , M , I 0 |
|
|
|
|||
|
|
|
I E = I B + 9 |
|
|
|
|
||
|
|
|
I F |
( I E - M ) 2 , 2 , 1 |
|
|
|
||
|
|
1 I E = M |
|
|
|
|
|
||
|
C |
|
P R I N T H E A D I N G |
|
|
|
|
||
|
|
2 W R IT E ( 6 , 2 0 0 0 ) |
( I , I = I B , I E ) |
|
|
||||
|
|
|
DO 101 |
J = I , N |
|
|
|
|
|
|
C |
|
P R I N T |
ROW OF M A T R IX |
|
|
|
||
|
|
|
W R IT E ( 6 , 2 0 0 1 ) J , ( A ( J , K ) , K = I B , I E ) |
||||||
|
101 C O N T IN U E |
|
|
|
|
||||
|
1 0 0 C O N T I N U E |
|
|
|
|
||||
|
|
|
RETURN |
|
|
|
|
||
|
2 0 0 0 FO RM AT ( 1H I , I X , 1 0 1 1 2 ) |
|
|
||||||
|
2 0 0 1 |
FORM AT ( I H 0 , I 5 , I 0 F I 2 . 4 ) |
|
|
|||||
|
|
|
END |
|
|
|
|
|
|
|
|
Программа 4.2. Подпрограмма |
PRINTM |
||||||
C |
PROGRAM |
4 - 3 |
|
|
|
|
|
||
C |
S U B R O U T IN E TO ADD TWO M A T R IC E S |
|
|
||||||
C |
|
|
|||||||
C |
A |
AND |
В |
TO |
FORM C . |
A L L |
H A V E N |
ROWS |
AND M C O L U M N S . |
C |
S U B R O U T IN E A D D M ( A , B , C , N , M , N I , M 1 > |
|
|||||||
|
|
||||||||
|
D I M E N S I O N A ( N 1 , M 1 ) , B ( N 1 , M 1 ) , C ( N 1 , M 1 ) |
|
|||||||
|
DO |
1 0 0 |
1 = 1 , N |
|
|
|
|
||
|
DO |
101 |
J = 1 , M |
|
|
|
|
C ( I , J ) = A ( I , J ) + B ( I , J ) 101 C O N T I N U E
1 0 0 C O N T IN U E R ET U R N END
Программа 4.3. Подпрограмма ADDM
о о о о о
PROGRAM |
4 - 4 |
|
S U B R O U T IN E |
TO S U B T R A C T TWO M A T R IC E S |
|
В FROM A |
TO |
FORM C . A L L HAVE N ROWS AND M C O L U M N S . |
S U B R O U T IN E S U B M ( A , B , C , N , M , N I , M 1 )
D I M E N S I O N A ( N 1 , M I ) , B ( N I , M ! ) , C ( N 1 , M I )
DO |
IO C |
1 = 1 , N |
DO |
101 |
J = 1 , M |
C ( I , J ) = A ( I , J ) - B ( I , J ) 101 C O N T IN U E
1 0 0 C O N T IN U E RETURN END
Программа 4.4. Подпрограмма SUBM
провести матричное вычитание на примере данных по бентонитам: DIMENSION X (20, 20), Y (20, 20), Z (20, 20)
CALL READM (X, 3, 3, 20, 20)
CALL READM (Y, 3, 3, 20, 20) CALL ADDM (X, Y, Z, 3, 3, 20, 20) CALL PRINTM (Z, 3, 3, 2 0 , 20)
CALL EXIT |
\! J\' |
END. |
|
Умножение матрицы на константу сводится к умножению каждого ее элемента на эту константу. Например,
'1 |
4* |
'3 |
1 2 " |
3 . 2 |
5 = |
6 |
15 |
.3 |
6_ |
9 |
18_ |
Аналогично проводится деление матрицы на постоянное число. В качестве простого примера применения этих операций, рас смотрим табл. 4.2, содержащую результаты измерения длины трех осей кремнистых галек, взятых из отложений ледниковых глин. Измерения сделаны в дюймах, а нам нужно перевести их
вмиллиметры. Чтобы получить матрицу, содержащую данные
вмиллиметрах, надо умножить матрицу [А] на постоянную ве25.4.
25 .4 . |
IА] |
— |
|
[С] |
|
|
|
|
|
|
|
"3,4 |
2,2 |
1,8- |
" 86,36 |
55,88 |
45,72' |
4,6 |
4,3 |
4,2 |
116,84 |
109,22 |
106,68 |
25,4- 5,4 |
4,7 |
4,7 = |
137,16 |
119,38 |
119,38 |
3,9 |
2,8 |
2,3 |
99,06 |
|71,12 |
58,42 |
_5,1 |
4,9 |
3,8_ |
.129,54 |
124,46 |
96,52. |
|
|
|
|
Т а б л и ц а 4.2 |
|
Измерение осей кремнистых галек из отложений |
|||||
|
|
ледниковых глин |
|
|
|
|
|
|
Длина оси, дюймы |
|
|
Образец |
|
А |
в |
|
С |
|
|
|
|||
1 |
|
3,4 |
2 ,2 |
|
1.8 |
2 |
|
4,6 |
4,3 |
|
4,2 |
3 |
|
5,4 |
4,7 |
|
4,7 |
4 |
|
3,9 |
2 ,8 |
|
2,3 |
5 |
5,1 |
4,9 |
3,8 |
Подпрограммы CMULT и CDIV (программы 4.5 и 4.6) пред назначены для выполнения операций умножения и деления эле-
С |
PROGRAM |
4 - 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
с |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С |
S U B R O U T IN E |
ТО |
M U L T I P L Y |
EACH E L E M E N T OF |
A |
M A T R IX |
B Y |
A |
||||||||||
C |
C O N S TA N T |
В |
TO |
FORM |
T H E |
M A T R IX |
C . |
|
|
|
|
|||||||
C |
EACH |
M A T R IX HAS |
N |
ROWS |
AND M |
C O L U M N S . |
|
|
|
|
||||||||
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
S U B R O U T IN E C M U L T ( A t B t C , N , M , N I , M I ) |
|
|
|
|
|||||||||||||
|
|
|
|
|
||||||||||||||
|
D I M E N S I O N A ( N I « M l ) , C ( N I , M I ) |
|
|
|
|
|
|
|||||||||||
|
DO |
1 0 0 |
1 = 1 , N |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
DO |
101 |
J = 1 f M |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
С ( I , J ) = B * A ( I , J ) |
|
|
|
|
|
|
|
|
|
|
|
||||||
101 C O N T IN U E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
I 0 0 |
C O N T IN U E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
RETURN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
END |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Программа 4.5. Подпрограмма SMULT |
|
|
|
||||||||||||
C |
PROGRAM |
4 - 6 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
S U B R O U T IN E TO |
D I V I D E |
EACH E L E M E N T OF |
A |
M A T R IX |
B Y |
A |
|||||||||||
C |
C O N S T A N T В TO |
FORM |
T H E |
M A T R IX |
C . |
|
|
|
|
|||||||||
C |
EACH |
M A T R IX |
HAS |
N |
ROWS |
AND |
M |
COLUMNS |
|
|
|
|
||||||
C |
S U B R O U T IN E C D I V ( A , B , C , N f M f N I t M I ) |
|
|
|
|
|||||||||||||
|
|
|
|
|
||||||||||||||
|
D I M E N S I O N A ( N I 9M I ) VC ( N I 9M J ) |
|
|
|
|
|
|
|||||||||||
|
DO |
1 0 0 |
1 = 1 t N |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
DO |
101 |
J = l t M |
|
|
|
|
|
|
|
|
|
|
|
C( I f J ) = A ( I f J ) / B
101C O N T IN U E
10 0 C O N T I N U E
RETU R N
END
Программа 4.6. Подпрограмма CDIV
ментов матриц на константу. Они в точности соответствуют ра нее разработанным программам и могут быть включены для ис пользования в библиотеку программ.
Умножение матриц
Вспомним задачу с бросанием монеты, рассмотренную в гл. 3, где вычислялась вероятность появления последовательности гер бов после ряда бросаний, если вероятность выпадения герба при одном бросании равна 1/2. Вероятность выпадения трех гербов при трех бросаниях равна 72 * 72 - 72, или 1/23- Аналогичную за дачу можно сформулировать при изучении литологической ха рактеристики стратиграфического разреза. Предположим, что
при изучении разреза в нем выделены три литологические разно видности пород: песок, сланец, известняк. Каждый погонный фут разреза можно отнести к одному из перечисленных типов. В итоге можно построить матрицу частот доявления каждого типа пород в разрезе вслед за другими типами:
|
|
В |
|
|
Песок |
Сланец |
Известняк |
Песок |
" 59 |
18 |
2 |
Сланец |
14 |
86 |
41 |
Известняк |
4 |
34 |
51 |
Эта матрица называется матрицей переходных частот и по
казывает нам, |
например, что сланец следует за песком 18 раз, |
а известняк за |
песком — только 2 раза; известняк следует за |
сланцем 41 раз, повторение известняка встречается 51 раз, а за песком — только 2 раза.
Чтобы получить из этих частот вероятности, нужно разделить каждый элемент матрицы на сумму элементов соответствующей строки. Таким образом мы получим матрицу переходных вероят ностей, приведенную ниже, которая содержит вероятности собы тий, заключающихся в том, что, порода одного типа следует за породой другого типа:
В
|
Песок |
Глина |
Известняк |
Песок |
'0 ,7 4 |
0,23 |
0,03 |
Глина |
0,10 |
0,61 |
0,29 |
Известняк |
0,05 |
0,38 |
0,57 |
Этот вопрос будет рассмотрен |
детально |
в следующей главе |
в анализе временных рядов. Теперь же нас интересует матрица вероятностей, аналогичных вероятностям в задаче о бросании монеты.
Так же как и в задаче о бросании монеты, где мы определили вероятность выпадения последовательности гербов с помощью возведения в степень вероятности выпадения герба при одном бросании, мы можем определить вероятность появления опреде ленных последовательностей пород в заданном интервале. Для этого достаточно возвести в степень матрицу переходных вероят ностей, и полученная после п таких перемножений матрица ве
роятностей [Р7] будет равна матрице |
[Р]п. Матрица в |
степени |
п — это просто результат умножения |
матрицы на себя |
п раз. |
Однако для выполнения этой операции нужно знать правила перемножения матриц.
Самая простая форма матричного умножения — это умноже ние двух квадратных матриц [А] и [В] одинакового порядка, произведение которых снова является квадратной матрицей [CJ. При этом удобно располагать матрицы следующим образом:
[В].
[А] [результат].
Чтобы получить значение элемента Су, нужно умножить каж дый элемент i-й строки матрицы [А] (начиная слева) на соот ветствующий элемент j-ro столбца матрицы [В], начиная сверху. Для получения искомого элемента Су все эти произведения сум мируются. Ниже на примере двух матриц показана последова тельность операций при матричном умножении:
'1 |
4 |
Г |
"1 |
2 |
3" |
2 |
5 |
8 X |
3 |
4 |
5 |
.3 |
6 |
9 |
5 |
6 |
7_ |
Сначала умножим Ац на Ви и в результате получим 1:
'1 |
4 |
7" |
"1 |
2 |
3' |
2 |
5 |
8 X |
3 |
4 |
5 |
.3 |
6 |
9_ |
5 |
6 |
7_ |
Далее, умножая А12 на В21, получаем 1 2 :
' 1 |
4 |
Г |
1 |
2 |
3' |
2 |
5 |
8 X |
3 |
4 |
5 |
_3 |
6 |
9_ |
.5 |
6 |
7. |
Наконец, умножая А13 на В31, получаем 35:
‘ 1 |
4 |
Т |
‘ 1 |
2 |
3' |
2 |
5 |
8 X |
3 |
4 |
5 |
_3 |
6 |
9_ |
_5 |
6 |
7. |
Значение элемента Си представляет собой сумму трех вы численных значений 1 + 12+ 35=48. Последовательность этих операций изображена на приведенной ниже диаграмме. Отме тим, что каждый элемент Су произведения матриц получается в результате умножения и последовательного сложения произ ведений элементов i-й строки матрицы [А] на элементы j-ro столбца матрицы [В}.