Estou procurando uma biblioteca que executa operações de matriz em grandes matrizes esparsas sem sacrificar a estabilidade numérica. As matrizes terão mais de 1000 por 1000 e os valores da matriz estarão entre 0 e 1000. Eu executarei o algoritmo de cálculo do índice , gerando serialmente vetores de linha (esparsos) da matriz. À medida que desenvolvo cada linha, precisarei testar a independência linear. Depois de preencher minha matriz com o número desejado de vetores linearmente independentes, precisarei transformar a matriz em forma de escalão de linha reduzida.
O problema agora é que minha implementação usa a eliminação gaussiana para determinar a independência linear (garantindo a forma do escalão da linha depois que todos os meus vetores de linha forem encontrados). No entanto, dada a densidade e o tamanho da matriz, isso significa que as entradas em cada nova linha se tornam exponencialmente maiores ao longo do tempo, pois o lcm das entradas principais deve ser encontrado para realizar o cancelamento. Encontrar a forma reduzida da matriz agrava ainda mais o problema.
Portanto, minha pergunta é: existe um algoritmo, ou melhor ainda, uma implementação que possa testar a independência linear e resolver o formulário de escalão de linha reduzido, mantendo as entradas o menor possível? Um teste eficiente para independência linear é especialmente importante, pois no algoritmo de cálculo do índice ele é executado de longe.
fonte