Producto Hadamard (matrices)


En matemáticas , el producto de Hadamard (también conocido como producto de elemento , producto de entrada [1] : cap. 5  o producto de Schur [2] ) es una operación binaria que toma dos matrices de las mismas dimensiones y produce otra matriz de la misma dimensión que los operandos, donde cada elemento i , j es el producto de los elementos i , j de las dos matrices originales. Debe distinguirse del producto de matriz más común . Se atribuye y lleva el nombre del matemático francésJacques Hadamard o el matemático ruso alemán Issai Schur .

El producto de Hadamard es asociativo y distributivo . A diferencia del producto de matrices, también es conmutativo . [3]

Para dos matrices A y B de la misma dimensión m × n , el producto de Hadamard (o [4] [5] [6] ) es una matriz de la misma dimensión que los operandos, con elementos dados por [3]

Para matrices de diferentes dimensiones ( m × n y p × q , donde mp o nq ), el producto de Hadamard no está definido.

El producto de Hadamard de dos matrices semidefinidas positivas es semidefinido positivo. [3] [8] Esto se conoce como el teorema del producto de Schur, [7] en honor al matemático ruso Issai Schur . Para dos matrices A y B semidefinidas positivas , también se sabe que el determinante de su producto de Hadamard es mayor o igual que el producto de sus respectivos determinantes: [8]

La multiplicación de Hadamard está integrada en ciertos lenguajes de programación con varios nombres. En MATLAB , GNU Octave , GAUSS y HP Prime , se conoce como multiplicación de arreglos , o en Julia multiplicación de transmisión , con el símbolo .*. [12] En Fortran , R , [13] APL , J y Wolfram Language ( Mathematica ), se realiza a través del operador de multiplicación simple *, mientras que el producto matricial se realiza a través de la función matmul,,%*%+.×+/ .*y los operadores , .respectivamente. En Python con la biblioteca numérica NumPy , la multiplicación de objetos de matriza*b produce el producto de Hadamard y la multiplicación a@bproduce el producto de matriz. Con la biblioteca simbólica SymPy , la multiplicación de objetos de matriz como ambos y producirá el producto de matriz, el producto de Hadamard se puede obtener con . [14] En C++, la biblioteca Eigen proporciona una función miembro para la clase Matrix ( ), mientras que la biblioteca Armadillo usa el operadora*ba@ba.multiply_elementwise(b)cwiseProducta.cwiseProduct(b)%para hacer expresiones compactas ( a % b; a * bes un producto de matrices). El paquete R matrixcalc presenta la función hadamard.prod()para el producto de Hadamard de matrices numéricas o vectores.


El producto de Hadamard opera en matrices de forma idéntica y produce una tercera matriz de las mismas dimensiones.
El producto de cara penetrante de matrices.