Дюймы - сантиметры
1 д = 2.54 см.
2 д = 5.08 см.
3 д = 7.62 см.
4 д = 10.16 см.
5 д = 12.7 см.
6 д = 15.24 см.
7 д = 17.78 см.
8 д = 20.32 см.
9 д = 22.86 см.
10 д = 25.4 см.
11 д = 27.94 см.
12 д = 30.48 см.
13 д = 33.02 см.
14 д = 35.56 см.
15 д = 38.1 см.
16 д = 40.64 см.
17 д = 43.18 см.
18 д = 45.72 см.
19 д = 48.26 см.
20 д = 50.8 см.
21 д = 53.34 см.
22 д = 55.88 см.
23 д = 58.42 см.
24 д = 60.96 см.
25 д = 63.5 см.
26 д = 66.04 см.
27 д = 68.58 см.
28 д = 71.12 см. .
29 д = 73.66 см.
30 д = 76.2 см.
Матрицы не очень сложны для понимания и использования. Более того, они нужны для написания быстрых преобразований и очень полезны для представления математических операций в компактной форме.
Матрица - это множество чисел, сгруппированных в колонки и столбцы. Здесь изображены две матрицы: Матрица А и Матрица В.
56_1.gif (1163 b)
Матрица А - это матрица 2х3 (то есть у нее две строки и три столбца), тогда как матрица В - это матрица 3х3. Мы можем получить доступ к элементу матрицы А, используя запись А[m,n], где m - это строка, а n - столбец. Элемент в верхнем углу матрицы А будет обозначаться А[0,0] и он равен единице.
Произведение операций над матрицами
Вы можете производить большинство операций над матрицами так же, как Вы оперируете и с нормальными числами. Например, Вы можете их складывать или вычитать, соответственно складывая или вычитая каждый из компонентов.
Для примера, рассмотрим сложение двух матриц размерностью 2х3 - матрицы А и матрицы С:
56_2.gif (650 b)
При сложении матриц А и С нужно складывать каждый из элементов m, n. Суммы элементов займут в результирующей матрице соответствующие места:
56_3.gif (896 b)
Мы также можем умножить матрицу на скаляр k. Например, чтобы умножить матрицу А на 3, мы должны умножить на 3 каждый ее элемент.
56_4.gif (725 b)
Теперь поговорим об умножении двух матриц. Эта операция немного отличается от умножения на скалярную величину. Вы должны запомнить несколько правил:
Количество столбцов в первой матрице (n) должно быть равно количеству строк во второй (также n). Это значит, что если размерность первой матрицы (m x n), то размерность второй матрицы должна быть (n x r). Два остальных измерения m и к могут быть любыми.
Произведение матриц не коммутативно, то есть А х В не равно В х А.
Умножение матрицы m x n на матрицу n x r может быть описано алгоритмически следующим образом:
Для каждой строки первой матрицы:
Умножить строку на столбец другой матрицы поэлементно. Сложить полученный результат;
Поместить результат в позицию [i,j] результирующей матрицы, где i - это строка первой матрицы, а j - столбец второй матрицы.
Для простоты посмотрите на рисунок:
56_5.gif (4629 b)
Мы можем это сделать намного проще, написав программу на Си. Давайте определим матрицу 3х3 и напишем функцию, умножающую матрицы. Ниже показан исходный код:
// общая структура матрицы
typedef struct matrix_typ
{
float elem[3][3]; // место для хранения матрицы
} matrix, *matrix_ptr;
void Mat_Mult3x3(matrix_ptr matrix_1, matrix_ptr matrix_2,
matrix_ptr result)
{
index i, j, k;
for(i=0; i < 3; j++)
{
for(j=0; j < 3; j++)
{
result[i][j] = 0; // инициализация элемента
for(k = 0; k < 3; k++)
{
result->elem[i][j] += matrix_1->elem[i][k]
* matrix_2->elem[k][j];
} // конец цикла по k
} // конец цикла по j
} // конец цикла по i
} // конец функции
Единичная матрица
Прежде чем закончить говорить о матрицах, скажем еще об одной вещи: о единичной матрице. Не углубляясь в математические термины, я хочу сказать, что нам нужна такая матрица, умножая на которую мы получали бы исходную матрицу.
Говоря попросту, нам нужно иметь матрицу размерностью