Sto cercando una libreria che esegua operazioni con matrici su grandi matrici sparse senza sacrificare la stabilità numerica. Le matrici saranno 1000+ per 1000+ e i valori della matrice saranno compresi tra 0 e 1000. Eseguirò l'algoritmo di calcolo dell'indice, quindi genererò i vettori (sparsi) di riga della matrice in serie. Mentre sviluppo ogni riga, dovrò testare l'indipendenza lineare. Una volta riempito la mia matrice con il numero desiderato di vettori linearmente indipendenti, dovrò quindi trasformare la matrice in una forma di scaglione ridotto.
Il problema ora è che la mia implementazione utilizza l'eliminazione gaussiana per determinare l'indipendenza lineare (assicurando la forma del tratteggio di riga una volta trovati tutti i miei vettori di riga). Tuttavia, data la densità e le dimensioni della matrice, ciò significa che le voci in ogni nuova riga diventano esponenzialmente più grandi nel tempo, poiché è necessario trovare il mcm delle voci iniziali per eseguire la cancellazione. Trovare la forma ridotta della matrice aggrava ulteriormente il problema.
Quindi la mia domanda è: esiste un algoritmo, o meglio ancora un'implementazione, che può testare l'indipendenza lineare e risolvere il modulo di scaglione di riga ridotta mantenendo le voci più piccole possibili? Un test efficiente per l'indipendenza lineare è particolarmente importante poiché nell'algoritmo di calcolo dell'indice viene eseguito di gran lunga il più.