14 votos

Expresar el producto Hadamard como un producto de matrices normal

Tengo $N^2$ ecuaciones que puedo escribir como el siguiente producto de Hadamard. ¿Hay alguna forma de eliminar el producto de Hadamard y expresarlo mediante las operaciones matriciales habituales?

$\left[ \begin{matrix} 0 & a_{21} & \cdots & a_{n1} \\ a_{12} & 0 & \cdots & a_{n2} \\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} &\cdots & 0\\ \end{matrix} \right]\bigcirc \left[\begin{matrix} b_1 & b_2 & \cdots & b_n \\ b_1 & b_2 & \cdots & b_n \\ \vdots & \vdots & \ddots & \vdots\\ b_1 & b_2 & \cdots & b_n\\ \end{matrix} \right]=\left[ \begin{matrix} c_{11} & c_{21} & \cdots & c_{n1} \\ c_{12} & c_{22} & \cdots & a_{n2} \\ \vdots & \vdots & \ddots & \vdots\\ c_{1n} & c_{2n} &\cdots & c_{nn}\\ \end{matrix} \right]$

2 votos

Podrías escribir la primera matriz como un vector columna y la segunda como un vector fila.

10voto

heisthedon Puntos 1042

Puede lograr el objetivo indicado aplicando el operación vec a ambos lados de la ecuación $$\eqalign{ A\circ B &= C \cr {\rm vec}(A)\circ {\rm vec}(B) &= {\rm vec}(C) \cr {\rm Diag}\Big({\rm vec}(A)\Big) {\rm vec}(B) &= {\rm vec}(C) \cr {\cal A}\,b &= c \cr }$$ ¿pero por qué demonios querrías hacer eso?

Desde $\,b,c\in {\mathbb R}^{N^2}$ y $\,{\cal A}\in{\mathbb R}^{N^2\times N^2}$ el recuento de operaciones pasó de $N^2$ a $N^4$

3voto

a2r Puntos 74

Como se indica en este hilo determinada tarea es imposible en general. Si tratas de expresarlo en términos de ser $$ A \circ B = X \cdot B $$

para su caso contraejemplo se reduce a lo siguiente:

$$ A=\begin{pmatrix} 0 & 1 \\ 1 & 0 \\ \end{pmatrix},\, B=\begin{pmatrix} 1 & 1 \\ 1 & 1 \\ \end{pmatrix} $$ entonces $$ 2 = rank (A) = rank(A \circ B) = rank(X \cdot B) \le rank (B) = 1 $$

lo que obviamente es incorrecto. Lo mismo podría deducirse para otros casos de A o B generales, que satisfagan sus condiciones.

Creo que esto todavía puede ser posible si se restringe A y B para cumplir con el rango, y tal vez otras condiciones.

2voto

greg Puntos 156

Definir el ${\mathbb R}^n$ vectores $$b = \pmatrix{b_1\\b_2\\ \vdots\\b_n},\quad u = \pmatrix{1\\1\\ \vdots\\1}$$ y observe que $B=ub^T$

Entonces podemos utilizar el operador Diag() para escribir $$\eqalign{ C &= A\circ ub^T \cr &= {\rm Diag}(u)\cdot A\cdot{\rm Diag}(b) \cr &= I\cdot A\cdot{\rm Diag}(b) \cr &= A\cdot{\rm Diag}(b) \cr }$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X