Шаг 3. Реализация операций над матрицами.
Подробно рассмотрим операцию произведения матриц, сумму и транспонирование - останется реализовать самостоятельно.
Итак у нас есть две матрицы A(а1, а2) и B(b1, b2). Найти произведение матриц и вывести на монитор исходные матрицы и результирующую C(а1, b2) построчно.
Условимся, что здесь и далее в обозначении размеров матриц первый элемент указывает число строк, а второй – число столбцов.
Вспомним алгебру. Во-первых, матрицы можно умножить только в том случае, если число столбцов первой матрицы равно числу строк второй.
На число строк первой матрицы и число столбцов второй ограничений не накладывается. Число строк результирующей матрицы равно числу строк первой, а число ее столбцов – числу столбцов второй матрицы. Приведем пример:
A ( 2,3 ) B ( 3,4 ) C ( 2,4 )
1,1 | 1,2 | 1,3 | 1,1 | 1,2 | 1,3 | 1,4 | 1,1 | 1,2 | 1,3 | 1,4 | ||
2,1 | 2,2 | 2,3 | X | 2,1 | 2,2 | 2,3 | 2,4 | = | 2,1 | 2,2 | 2,3 | 2,4 |
3,1 | 3,2 | 3,3 | 3,4 |
Элемент матрицы C(i, j) получается путем поэлементного умножения i-й строки матрицы A на j-й столбец матрицы B. Для приведенного примера результат получается так (смотри заштрихованные ячейки):
C(2,3) = A(2,1)*B(1,3) + A(2,2)*B(2,3) + A(2,3)*B(3,3)
А теперь реализуйте и разберите код выполнения данной операции.
Операция транспонирования заключается в том, что строки и столбцы в исходной матрице меняются ролями.
В транспонированной матрице первым столбцом служит первая строка исходной матрицы, вторым столбцом - вторая строка исходной матрицы и т.д. Например,
A(2,3) tA (3,2)
-1 | -2 | -1 | |||
-2 |
При сложении матриц складываются элементы, стоящие на одинаковых местах. Соответственно нужно проверить, чтобы матрицы были одинаковых размеров
+ | = | ||||||
-1 | -2 |
Если Вы все успели сделать и у Вас осталось еще немного времени: сделайте так, чтобы матрицы не объявлялись глобально, а использовались как параметры в круглых скобках Ваших методов.
Дата добавления: 2015-04-05; просмотров: 501;