Tengo una gran matriz, alrededor de $10\times10$ . Cada elemento individual de la propia matriz es también un número muy grande, aproximadamente del orden $10^{30}$ .
Sé que las matrices pueden utilizarse para resolver ecuaciones lineales. Así que si hay una ecuación $ax + by = c$ entonces puedo denotar el $10\times10$ matriz, $a$ , utilizando $x\text{ and }y$ que son sólo $2$ números reales y $b\text{ and }c$ que son matrices. ¿Se puede utilizar esto para comprimir la matriz más grande?
Si no es así, ¿hay alguna otra forma que pueda utilizar para poder usar alguna forma de expresión corta que pueda ser evaluada en la matriz más grande?
0 votos
Para una matriz arbitraria, no se puede comprimir. ¿Conoces alguna otra información sobre la estructura de la matriz? ¿Podrías publicar una matriz de ejemplo? (Si lo haces, utiliza el formato de código de Stack Exchange: pon 4 espacios al principio de cada línea de la matriz).
0 votos
Hay muchas formas de generar matrices grandes a partir de la semilla pequeña (como $n \times n$ matriz identidad), pero en general es muy difícil hacerlo en sentido contrario (es decir, a partir de la matriz generar una semilla que pueda utilizarse posteriormente para regenerarla), a menos que la matriz en cuestión tenga una estructura definida con mucha precisión (e incluso entonces probablemente no será fácil). Suerte
1 votos
Por cierto, el teorema de la sección 9.2 de las FAQ de comp.compresión justifica mi primera frase. Pero no te desanimes: si tu matriz tiene alguna estructura más, deberías poder comprimirla.
0 votos
Aparte de las dimensiones de la matriz, no hay ningún otro patrón en la estructura. Quizá tenga suerte convirtiendo la matriz en otra cosa...
1 votos
@ritratt: Si realmente no hay ningún patrón, entonces no podrás comprimirlo. Véase el teorema que he enlazado.
1 votos
Suponiendo que los números sean enteros y que se utilice un almacenamiento eficiente, necesitará aproximadamente $1kb$ (un kilobyte) para almacenar la matriz. Lo cual no es mucho hoy en día. Podrías perder precisión en los números si quieres comprimirla de todos modos.
1 votos
Muchas matrices basadas en aplicaciones tienen bloques de bajo rango en la parte no diagonal. Es posible sustituir estos bloques por una aproximación de bajo rango (basada en una SVD). Pero $10 \times 10$ es demasiado pequeño para esperar una compresión razonable por la molestia extra que supone introducir las descomposiciones.