1. Главная
  2. Библиотека
  3. Высшая математика
  4. Перемножьте две матрицы! На вход программе подаются две...
Разбор задачи

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

  • Предмет: Высшая математика
  • Автор: Кэмп
  • #Линейная алгебра и аналитическая геометрия
  • #Вычислительная математика
Перемножьте две матрицы! На вход программе подаются две матрицы, каждая в следующем формате: на первой строке два целых положительных числа и , разделенных пробелом - размерность матрицы. В следующей строке находится целых чисел, разделенных пробелами -

Условие:

Перемножьте две матрицы!

На вход программе подаются две матрицы, каждая в следующем формате: на первой строке два целых положительных числа (n) и (m), разделенных пробелом - размерность матрицы. В следующей строке находится (n \cdot m) целых чисел, разделенных пробелами - элементы матрицы. Подразумевается, что матрица заполняется построчно, то есть первые (m) чисел - первый ряд матрицы, числа от (m+1) до (2 \cdot m) - второй, и т.д.

Напечатайте произведение матриц (XY^T), если они имеют подходящую форму, или строку "matrix shapes do not match", если формы матриц не совпадают должным образом.

В этот раз мы проделали за вас подготовительную работу по считыванию матриц (когда вы начнёте решать, этот код будет уже написан): \nx_shape = tuple(map(int, input().split()))\nX = np.fromiter(map(int, input().split()), np.int).reshape(x_shape)

Несколько комментариев: \nmap(f, iterable, …) — встроенная функция языка Python, возвращает результат поэлементного применения функции f к элементам последовательности iterable; если f принимает несколько аргументов, то на вход должно быть подано соответствующее число последовательностей: результатом map(f, x, y, z) будет итератор, возвращающий поочерёдно f(x[0], y[0], z[0]), f(x[1], y[1], z[1]), f(x[2], y[2], z[2]) и так далее; результат применения f к очередному набору аргументов вычисляется только тогда, когда требуется использовать этот результат, но не ранее, подробнее и короче в справке;\nnp.fromiter создаёт NumPy-массив из итератора, то есть заставляет итератор вычислить все доступные значения и сохраняет их в массив;\ninput() — встроенная функция языка Python, читает одну строку (последовательность символов вплоть до символа переноса строки) из входного потока данных и возвращает её как строку;\nsplit() — метод класса string, возвращает список слов в строке (здесь слова — последовательности символов, разделённые пробельными символами); принимает дополнительные аргументы, подробнее в справке.

Напишите программу.

Решение:

Здравствуйте! Я готов помочь вам решить эту задачу по матричным операциям.

Задача состоит в том, чтобы вычислить произведение матриц XYTX Y^T (где YTY^T — транспонированная матрица YY) и вывести результат, либо сообщить об ошибке, если размеры матриц не позволяют выполнить умножение.

Мы будем использовать библиотеку NumPy, как это уже заложено в предоставленном коде.

1. Дано

Даны две матрицы XX и YY, считанные из стандартного ввода, вместе с их размерностями.

Размерность XX: nx×mxn_x \times m_x. Размерность YY: ny×myn_y \times m_y.

2. Найти

Необходимо вычислить произведение Z=XYTZ = X Y^T...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое условие должно быть выполнено для того, чтобы можно было вычислить произведение матриц $X Y^T$, где $X$ имеет размерность $n_x \times m_x$, а $Y$ имеет размерность $n_y \times m_y$?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет