Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

5 votos

Optimización de una multiplicación de la matriz

Dada la siguiente operación: (f(1)f(2)f(n))(11101n221202n2n1n0nn2)

Así que un n×1 vector multiplicado por un n×n matriz. Como un ejemplo de la n=4 matriz sería

(11111/21241/31391/41416)

Estoy buscando algo que pueda tomar ventaja de reducir la complejidad de esta operación de

O(n2)

a algo mejor. La realización de una transformada de Fourier Discreta (DFT) para el ejemplo se utiliza la cíclico de la propiedad de la exponencial de una transformada de Fourier para abaratar la operación. Que no se aplica aquí, ya no estoy utilizando una sinusoide, pero me pregunto si hay algo que se puede lograr el mismo efecto para esta matriz.

3voto

MrHat Puntos 56

Su Matriz se parece a una matriz de Vandermonde(https://en.wikipedia.org/wiki/Vandermonde_matrix). Parece que el vector-la multiplicación de la matriz puede ser acelerado para este tipo de matriz de acuerdo a este artículo http://www.netlib.org/utk/people/JackDongarra/etemplates/node384.html

Para ser más específicos, si usted tiene una matriz de Vandermonde V=[1a1an11a2an21akank] y un vector b=[b0bn] la multiplicación es la misma como la evaluación de la polinomio f(a)=Σbiai a los k puntos. Esto se puede hacer en O(klogn) (ver http://mathoverflow.net/questions/69476/fast-evaluation-of-polynomials). En su caso sería O(nlogn) desde su matriz es cuadrada.

Voy a tratar de pensar si hay una manera de usar también el hecho de que en su caso es ak+1=ak+1 a reducir aún más el cálculo

0voto

mathreadler Puntos 3517

EDITAR Para ser más específica y sistemática podemos definir

D=[1000020000300004],L=[1000100010001000],C=[0100001000011000]

  • C es la representación de la generación de los elementos de un grupo cíclico,

  • L actúa como una matriz de selección.

  • D realiza cada uno de los incrementos de potencia.

Podemos entonces sistemáticamente construir la matriz de Vandermonde como este:

VT=D(L+D(L+D(L+DLC)C)C)C

Si evaluamos esto nos da VT=[11112481639278141664256]

Por favor, tenga en cuenta que C L sólo la tecla mayús y seleccione los índices y sólo la adición y la multiplicación por D realiza cualquier aritmética y esas multiplicaciones son escasos. La transposición de no complicar mucho las cosas desde todas las matrices involucradas son tan simples.

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