Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборные_Ответы_Вопросы_МСиП_v1.docx
Скачиваний:
20
Добавлен:
15.01.2025
Размер:
31.36 Mб
Скачать

Перемножение комплексных матриц и векторов

– мы считали, что элементы A и X действительные числа

Мы высчитали, что сложность примерно 2

Как можно сделать иначе

Метод 3М – метод трёх умножений

Что получается? Если традиционным методом у нас было бы 4 векторно матричных умножения и 2 сложения вектора. При традиционном выполнении для вычисления вектора C требуется 4 раза перемножить действительные матрицы и вектор и 2 раза сложить действительные векторы.

При использовании метода 3М требуется: 3 раза умножить действительную матрицу и вектор, 1 раз сложить действительные матрицы и 4 раза сложить действительные векторы.

Сложение 2 матриц – Перемножение матрицы на вектор тоже

Общий выигрыш здесь будет не 25%, а будет меньше Применение метода 3М для данного случая даёт выигрыш 12,5%, при этом результат получаем тот же.

Если у нас какие-то большие матрицы и векторы, то нужен процессор суперкомпьютера, если на 12,5% требования производительности снижаем, то цена примерно на 30% снизится

Перемножение двух комплексных матрицы

Традиционный метод: 4 операции перемножения двух действительных матриц (N3) и 2 операции сложения двух действительных матриц (N2)

Здесь требуется 4 умножения матриц R и 2 сложения матриц R

Теперь с помощью метода 3М:

Вместо 4 умножений матриц здесь требуется только 3 (2N3), но 5 матричных сложений (N2)

Получается, что метод 3М при перемножении матриц даёт выигрыш в вычислительной сложности порядка 25%, т.е. то, что добавляется сложение это мало существенно.

За счёт рационального исключения повторяющихся операций получаем выигрыш в 25% — это весьма много – сократит стоимость процессора.

Если удалось придумать способ более быстро умножать матрицы – у вашей компании процессоры могут быть проще – будет дешевле и блок питания для него, габариты будут меньше – всё будет меньше и дешевле – изделие с меньшей стоимостью и габаритами.

Рассмотрим теперь метод рационального выбора порядка выполнения операций.

, - вектор

Второй способ предпочтительнее, а результат будет одинаковый

Перемножение 2ух матриц – 2N3, а умножение матрицы на вектор 2N2

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

Изменять порядок выполнения операций нужно аккуратно.

Вернёмся к методу 3М и какой результат он имеет, если перемножить 2 вектора

Рассмотрим применение метода 3М для случая перемножения двух векторов (вектор строка на вектор столбец)

Видно, что 2 обычных сложения, и 4 перемножения векторов

Теперь методом 3М

Теперь 3 умножения векторных 2 векторных сложений и ещё одно простое сложение – незначительно. В итоге тоже 8N

Получается, что при перемножении двух векторов, а точнее при вычислении скалярного произведения двух векторов применение метода 3М выигрыша не даёт.

В случае традиционного: 4 умножения 4N2, 2 сложение и вычитание матриц N2 – в итоге 6N2

Теперь метод 3М: 3 перемножения 3N2. 2 сложение двух векторов N (+2N). 2 Сложение матриц +2N2. В итоге получается 6N2 – в этом случае метод 3М тоже не даёт выигрыш

При вычислении внешнего произведения матриц метод 3М выигрыша вычислительной сложности не даёт – даже некоторый проигрыш получается.