Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicio de multiplicación de matrices de dos dimensiones - Prof. 13794, Traducciones de Física

En este documento se explica cómo definir y realizar el producto de dos matrices de dos dimensiones utilizando python. Se detalla el proceso de crear una matriz vacía, recorrerla con bucles for y rellenarla con ceros, luego sumar los productos de filas y columnas de las matrices originales para obtener el resultado. Se incluyen ejemplos de multiplicación correcta y incorrecta de matrices 3x3 y 2x3.

Tipo: Traducciones

2018/2019

Subido el 01/06/2019

usuario desconocido
usuario desconocido 🇪🇸

1 / 3

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Ejercicio 4. Producto de dos matrices de dos dimensiones
En primer lugar, definimos la función estableciendo dos parámetros de input (def
producto(matriz1,matriz2) y, a continuación, creamos una matriz vacía de la siguiente forma:
matriz3=[], que nos servirá para crear una segunda matriz vacía que tenga el número de filas de
la matriz1 y el número de columnas de la matriz2 (puesto que es uno de los requisitos del
producto de matrices).
En segundo lugar, creamos un bucle for que nos recorra los valores des de 0 hasta la longitud de
la matriz1 mediante el parámetro j (teniendo en cuenta que, por definición, matriz1 es una lista
de listas), es decir, el recorrido de j será por filas de la matriz1. Dentro del bucle usamos la
función .append() para añadir tantos elementos vacíos cómo la longitud de matriz2 en su
elemento 0, es decir, la longitud de la primera fila de matriz2, que corresponde a su número de
columnas. Así obtenemos la matriz vacía de las dimensiones resultantes del producto de las dos
matrices (matriz3).
A continuación, crearemos un total de 3 bucles for integrados uno dentro del otro. El primero
tomará unos valores de i tales irán desde 0 hasta la longitud de la matriz uno (recorre la matriz1
por filas). El siguiente for, dentro del anterior, nos recorrerá la matriz por columnas de la
siguiente manera: j in range la longitud del primer elemento de la lista de listas matriz2. En
definitiva, estos dos bucles seguidos nos servirán para rellenar nuestra matriz3 vacía creada
previamente con ceros de manera que la posición [i][j], de la matriz3 sea 0. En cada iteración se
rellena con un 0 la posición correspondiente a i (número de filas) y a j (número de columnas).
El último bucle for está integrado dentro del anterior, y nos recorre por columnas matriz1
mediante la variable k. En cada iteración se actualiza el contenido de matriz3 en las posiciones
[i],[j] (que a su vez también cambian a cada iteración) de manera que se suma el resultado de
multiplicar el elemento [i],[k] de matriz1 por el elemento [k],[j] de matriz2 más el valor de
matriz3 de la iteración anterior (multiplica los elementos de las filas de matriz1 por los
elementos de las columnas de matriz2 y los suma para obtener la posición [i],[j] de matriz3).
Obtenemos el resultado por pantalla mediante return (matriz3).
La creación de las matrices, para evitar errores de cambio de formato (str comúnmente), la
definimos dentro del main creando para cada matriz el número de filas y el de columnas.
También pediremos los elementos de cada matriz mediante un bucle for de tal manera que se
recorra la matriz por filas añadiendo un elemento vacío con la función .append que se rellenará
con el número que el usuario introduzca hasta el número de columnas concretp mediante otro
bucle for que nos recorre la matriz por columnas. Seguimos el mismo procedimiento para
obtener las dos matrices y creamos un bucle if que sólo nos acepte las matrices si tienen el
mismo número de filas que de columnas. Si esa condición se cumple (columnas1==filas2), se
realiza el producto, en caso contrario, se muestra “La primera matriz debe tener el mismo
número de columnas que el número de columnas de la segunda.
Juego de pruebas
Multiplicaremos dos matrices 3x3, una 2x3 por una 3x3 y una 2x3 por una 2x3.
pf3

Vista previa parcial del texto

¡Descarga Ejercicio de multiplicación de matrices de dos dimensiones - Prof. 13794 y más Traducciones en PDF de Física solo en Docsity!

Ejercicio 4. Producto de dos matrices de dos dimensiones

En primer lugar, definimos la función estableciendo dos parámetros de input ( def producto(matriz1,matriz2 ) y, a continuación, creamos una matriz vacía de la siguiente forma: matriz3=[] , que nos servirá para crear una segunda matriz vacía que tenga el número de filas de la matriz1 y el número de columnas de la matriz2 (puesto que es uno de los requisitos del producto de matrices).

En segundo lugar, creamos un bucle for que nos recorra los valores des de 0 hasta la longitud de la matriz1 mediante el parámetro j (teniendo en cuenta que, por definición, matriz1 es una lista de listas), es decir, el recorrido de j será por filas de la matriz1. Dentro del bucle usamos la función .append() para añadir tantos elementos vacíos cómo la longitud de matriz2 en su elemento 0, es decir, la longitud de la primera fila de matriz2, que corresponde a su número de columnas. Así obtenemos la matriz vacía de las dimensiones resultantes del producto de las dos matrices ( matriz3 ).

A continuación, crearemos un total de 3 bucles for integrados uno dentro del otro. El primero tomará unos valores de i tales irán desde 0 hasta la longitud de la matriz uno (recorre la matriz por filas). El siguiente for , dentro del anterior, nos recorrerá la matriz por columnas de la siguiente manera: j in range la longitud del primer elemento de la lista de listas matriz2. En definitiva, estos dos bucles seguidos nos servirán para rellenar nuestra matriz3 vacía creada previamente con ceros de manera que la posición [i][j] , de la matriz3 sea 0. En cada iteración se rellena con un 0 la posición correspondiente a i (número de filas) y a j (número de columnas).

El último bucle for está integrado dentro del anterior, y nos recorre por columnas matriz mediante la variable k. En cada iteración se actualiza el contenido de matriz3 en las posiciones [i] , [j] (que a su vez también cambian a cada iteración) de manera que se suma el resultado de multiplicar el elemento [i] , [k] de matriz1 por el elemento [k] , [j] de matriz2 más el valor de matriz3 de la iteración anterior (multiplica los elementos de las filas de matriz1 por los elementos de las columnas de matriz2 y los suma para obtener la posición [i] , [j] de matriz3 ).

Obtenemos el resultado por pantalla mediante return (matriz3).

La creación de las matrices, para evitar errores de cambio de formato ( str comúnmente), la definimos dentro del main creando para cada matriz el número de filas y el de columnas. También pediremos los elementos de cada matriz mediante un bucle for de tal manera que se recorra la matriz por filas añadiendo un elemento vacío con la función .append que se rellenará con el número que el usuario introduzca hasta el número de columnas concretp mediante otro bucle for que nos recorre la matriz por columnas. Seguimos el mismo procedimiento para obtener las dos matrices y creamos un bucle if que sólo nos acepte las matrices si tienen el mismo número de filas que de columnas. Si esa condición se cumple (columnas1==filas2), se realiza el producto, en caso contrario, se muestra “La primera matriz debe tener el mismo número de columnas que el número de columnas de la segunda.

Juego de pruebas

Multiplicaremos dos matrices 3x3, una 2x3 por una 3x3 y una 2x3 por una 2x3.

Multiplicación correcta para las dos 3x3.

Funciona correctamente para una 2x3 por una 3x3.