| 1 | ----------------------------------------
|
|---|
| 2 | Especificacion TOL de una matriz sparse:
|
|---|
| 3 | ----------------------------------------
|
|---|
| 4 |
|
|---|
| 5 | Una matriz "sparse" se define mediante un conjunto donde el primer
|
|---|
| 6 | elemento especifica un tipo de "sparsidad" y los elementos restantes
|
|---|
| 7 | definen los valores distintos de cero:
|
|---|
| 8 |
|
|---|
| 9 | {"TYPE", S_1, S_2, ..., S_k}
|
|---|
| 10 |
|
|---|
| 11 | Se tienen los tipos de matrices "sparse":
|
|---|
| 12 |
|
|---|
| 13 | - "IDENT" : matriz identidad.
|
|---|
| 14 |
|
|---|
| 15 | - "DIAG" : matriz diagonal densa por bloques.
|
|---|
| 16 |
|
|---|
| 17 | - "SDIAG" : matriz diagonal "sparse" por bloques.
|
|---|
| 18 |
|
|---|
| 19 | - "ROW" : matriz fila densa por bloques.
|
|---|
| 20 |
|
|---|
| 21 | - "SROW" : matriz fila "sparse" por bloques.
|
|---|
| 22 |
|
|---|
| 23 | - "COL" : matriz columna densa por bloques.
|
|---|
| 24 |
|
|---|
| 25 | - "SCOL" : matriz columna "sparse" por bloques.
|
|---|
| 26 |
|
|---|
| 27 | - "TRIPLET" : matriz rectangular "sparse" por bloque dada por
|
|---|
| 28 | coordenadas de bloques.
|
|---|
| 29 |
|
|---|
| 30 | La matriz identidad se define con un valor que indica el tamaño de la
|
|---|
| 31 | matriz:
|
|---|
| 32 | [["IDENT", N]]
|
|---|
| 33 |
|
|---|
| 34 | La forma de los elementos S_i depende del tipo "sparsidad" "TYPE" y
|
|---|
| 35 | hacen
|
|---|
| 36 | referencia a submatrices o bloques. Un bloque puede ser:
|
|---|
| 37 |
|
|---|
| 38 | - Un valor escalar : Real.
|
|---|
| 39 |
|
|---|
| 40 | - Una matriz densa : Matrix.
|
|---|
| 41 |
|
|---|
| 42 | - Una matriz sparse : definicion recursiva.
|
|---|
| 43 |
|
|---|
| 44 | En adelante una submatriz o bloque se denominara BLOCK. Para cada block
|
|---|
| 45 | B,
|
|---|
| 46 | m(B) nos da la cantidad de filas del bloque; y n(B), la cantidad de
|
|---|
| 47 | columnas
|
|---|
| 48 | del bloque. Por simplicidad de notacion se puede usar m_i, n_i para
|
|---|
| 49 | denotar la
|
|---|
| 50 | cantidad de filas y columnas del bloque i-esimo cuando el referido
|
|---|
| 51 | bloque
|
|---|
| 52 | quede claro en el contexto.
|
|---|
| 53 |
|
|---|
| 54 | Especificamos ahora para cada tipo la forma de lo elementos S_i.
|
|---|
| 55 |
|
|---|
| 56 | "DIAG"
|
|---|
| 57 |
|
|---|
| 58 | El tipo "DIAG" define una matriz diagonal por bloque que se obtiene al
|
|---|
| 59 | concatenar en diagonal cada uno de los bloques S_i. El bloque S_1
|
|---|
| 60 | comienza en la coordenada (1,1). Si la diagonal principal de S_i
|
|---|
| 61 | termina en las coordenadas (d_i,d_i), d_i = min(m_i,n_i), entonces el
|
|---|
| 62 | bloque S_{i+1} comienza en la coordenada (di+1,di+1).
|
|---|
| 63 |
|
|---|
| 64 | "SDIAG"
|
|---|
| 65 |
|
|---|
| 66 | El tipo "SDIAG" define una matriz diagonal "sparse" por bloque que se
|
|---|
| 67 | obtiene de colocar cada bloque en sus coordenadas diagonal
|
|---|
| 68 | especificada. La forma de S_i es {d_i, B_i}. El bloque B_i se coloca a
|
|---|
| 69 | partir de las coordenadas (d_i,d_i).
|
|---|
| 70 |
|
|---|
| 71 | "ROW"
|
|---|
| 72 |
|
|---|
| 73 | El tipo "ROW" define una matriz fila por bloques que se obtiene de
|
|---|
| 74 | concatenar horizontalmente cada uno de los bloques S_i. El bloque S_1
|
|---|
| 75 | comienza en la coordenada (1,1). El bloque S_{i+1} comienza en las
|
|---|
| 76 | coordenadas (1,n_i +1).
|
|---|
| 77 |
|
|---|
| 78 | "SROW"
|
|---|
| 79 |
|
|---|
| 80 | El tipo "SROW" define una matriz fila "sparse" por bloque que se
|
|---|
| 81 | obtiene de colocar cada bloque en sus coordenadas de fila
|
|---|
| 82 | especificada. La forma de S_i es {n_i, B_i}. El bloque B_i se coloca a
|
|---|
| 83 | partir de las coordenadas (1,n_i).
|
|---|
| 84 |
|
|---|
| 85 | "COL"
|
|---|
| 86 |
|
|---|
| 87 | El tipo "COL" define una matriz columna por bloques que se obtiene de
|
|---|
| 88 | concatenar verticalmente cada uno de los bloques S_i. El bloque S_1
|
|---|
| 89 | comienza en la coordenada (1,1). El bloque S_{i+1} comienza en las
|
|---|
| 90 | coordenadas (m_i+1,1).
|
|---|
| 91 |
|
|---|
| 92 | "SCOL"
|
|---|
| 93 |
|
|---|
| 94 | El tipo "SCOL" define una matriz fila "sparse" por bloque que se obtiene
|
|---|
| 95 | de colocar cada bloque en sus coordenadas de columna especificada. La
|
|---|
| 96 | forma de
|
|---|
| 97 | S_i es {m_i, B_i}. El bloque B_i se coloca a partir de las coordenadas
|
|---|
| 98 | (m_i,1).
|
|---|
| 99 |
|
|---|
| 100 | "TRIPLET"
|
|---|
| 101 |
|
|---|
| 102 | El tipo "TRIPLET" define una matriz rectangular "sparse" por bloque
|
|---|
| 103 | que se obtiene de colocar cada bloque en las coordenadas rectangulares
|
|---|
| 104 | especificadas. La forma de S_i es {m_i, n_i, B_i}. El bloque B_i se
|
|---|
| 105 | coloca a partir de las coordenadas (m_i, n_i).
|
|---|
| 106 |
|
|---|
| 107 |
|
|---|
| 108 | Set sX = [["diag", 1, 2, 3, 4]];
|
|---|
| 109 | Matrix y = Col(1,1,1,1);
|
|---|
| 110 | Set reg = SparseLinearRegression(y, sX);
|
|---|