---------------------------------------- Especificacion TOL de una matriz sparse: ---------------------------------------- Una matriz "sparse" se define mediante un conjunto donde el primer elemento especifica un tipo de "sparsidad" y los elementos restantes definen los valores distintos de cero: {"TYPE", S_1, S_2, ..., S_k} Se tienen los tipos de matrices "sparse": - "IDENT" : matriz identidad. - "DIAG" : matriz diagonal densa por bloques. - "SDIAG" : matriz diagonal "sparse" por bloques. - "ROW" : matriz fila densa por bloques. - "SROW" : matriz fila "sparse" por bloques. - "COL" : matriz columna densa por bloques. - "SCOL" : matriz columna "sparse" por bloques. - "TRIPLET" : matriz rectangular "sparse" por bloque dada por coordenadas de bloques. La matriz identidad se define con un valor que indica el tamaƱo de la matriz: [["IDENT", N]] La forma de los elementos S_i depende del tipo "sparsidad" "TYPE" y hacen referencia a submatrices o bloques. Un bloque puede ser: - Un valor escalar : Real. - Una matriz densa : Matrix. - Una matriz sparse : definicion recursiva. En adelante una submatriz o bloque se denominara BLOCK. Para cada block B, m(B) nos da la cantidad de filas del bloque; y n(B), la cantidad de columnas del bloque. Por simplicidad de notacion se puede usar m_i, n_i para denotar la cantidad de filas y columnas del bloque i-esimo cuando el referido bloque quede claro en el contexto. Especificamos ahora para cada tipo la forma de lo elementos S_i. "DIAG" El tipo "DIAG" define una matriz diagonal por bloque que se obtiene al concatenar en diagonal cada uno de los bloques S_i. El bloque S_1 comienza en la coordenada (1,1). Si la diagonal principal de S_i termina en las coordenadas (d_i,d_i), d_i = min(m_i,n_i), entonces el bloque S_{i+1} comienza en la coordenada (di+1,di+1). "SDIAG" El tipo "SDIAG" define una matriz diagonal "sparse" por bloque que se obtiene de colocar cada bloque en sus coordenadas diagonal especificada. La forma de S_i es {d_i, B_i}. El bloque B_i se coloca a partir de las coordenadas (d_i,d_i). "ROW" El tipo "ROW" define una matriz fila por bloques que se obtiene de concatenar horizontalmente cada uno de los bloques S_i. El bloque S_1 comienza en la coordenada (1,1). El bloque S_{i+1} comienza en las coordenadas (1,n_i +1). "SROW" El tipo "SROW" define una matriz fila "sparse" por bloque que se obtiene de colocar cada bloque en sus coordenadas de fila especificada. La forma de S_i es {n_i, B_i}. El bloque B_i se coloca a partir de las coordenadas (1,n_i). "COL" El tipo "COL" define una matriz columna por bloques que se obtiene de concatenar verticalmente cada uno de los bloques S_i. El bloque S_1 comienza en la coordenada (1,1). El bloque S_{i+1} comienza en las coordenadas (m_i+1,1). "SCOL" El tipo "SCOL" define una matriz fila "sparse" por bloque que se obtiene de colocar cada bloque en sus coordenadas de columna especificada. La forma de S_i es {m_i, B_i}. El bloque B_i se coloca a partir de las coordenadas (m_i,1). "TRIPLET" El tipo "TRIPLET" define una matriz rectangular "sparse" por bloque que se obtiene de colocar cada bloque en las coordenadas rectangulares especificadas. La forma de S_i es {m_i, n_i, B_i}. El bloque B_i se coloca a partir de las coordenadas (m_i, n_i). Set sX = [["diag", 1, 2, 3, 4]]; Matrix y = Col(1,1,1,1); Set reg = SparseLinearRegression(y, sX);