самир1078
?>

По заданному алгоритму составь блок схему​

Информатика

Ответы

artashhovhan

Матрицы не очень сложны для понимания и использования. Более того, они нужны для написания быстрых преобразований и очень полезны для представления математических операций в компактной форме.

Матрица - это множество чисел, сгруппированных в колонки и столбцы. Здесь изображены две матрицы: Матрица А и Матрица В.

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

} // конец функции

Единичная матрица

Прежде чем закончить говорить о матрицах, скажем еще об одной вещи: о единичной матрице. Не углубляясь в математические термины, я хочу сказать, что нам нужна такая матрица, умножая на которую мы получали бы исходную матрицу.

Говоря попросту, нам нужно иметь матрицу размерностью

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

По заданному алгоритму составь блок схему​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Татьяна1856
smnra219
СмыковаДарья1969
kristina1989
keti0290103
vapebroshop
mariashapar
zrv85
egamedicalbuh
Natalya1895
antrotip
ПодлеснаяМакарова1883
Ионов202
serge-lysoff
Irinalobanowa