Funzione 'sislin'
Scopo
Calcolare la soluzione di m sistemi lineari di n equazioni in n incognite, nel caso di due parametri in input, o dell'inversa di una matrice, nel caso di un unico parametro di input.
Specifiche
x=sislin(A,b)
Descrizione algoritmo
Per il calcolo della soluzione, la funzione fa uso di tre algoritmi.
- L'algoritmo di fattorizzazione LU con pivoting parziale e scambio virtuale delle righe, per calcolare le matrici triangolari inferiori e superiori L ed U, e la matrice P delle permutazioni (virtuale).
- L'algoritmo di forward substitution per calcolare y tale che Ly=Pb.
- L'algoritmo di back substitution per calcolare la soluzione x tale che Ux=y.
Lista parametri
Input:
- A matrice quadrata dei coefficienti reali delle n equazioni, o matrice quadrata di cui calcolare l'inversa.
- b facoltativo matrice n×m dei termini noti, per la risoluzione di m sistemi lineari di n equazioni in n incognite. Se b non viene dato in input, la funzione calcola l'inversa della matrice A.
Output:
- x matrice inversa della matrice A, nel caso di un solo dato in input.
- x matrice n×m, le cui colonne sono le m soluzioni degli m sistemi lineari Ax=b, nel caso di due dati di input.
Indicatori di errori
- 'Numero di dati in input insufficiente' - Non ci sono parametri di input.
- 'b deve avere lo stesso numero di righe di A' - Il vettore/matrice b deve avere tanti termini noti quante sono le equazioni del sistema lineare.
- 'A deve essere una matrice di reali' - La matrice A inserita è una stringa.
- 'La matrice è vuota, nulla da calcolare' - A è una matrice vuota.
- 'Attenzione matrice non quadrata' - A non è una matrice quadrata n×n.
- 'A deve essere una matrice di reali' - A deve essere una matrice di reali.
- 'b deve essere una matrice di reali' - La matrice b inserita è una stringa o una matrice di complessi.
- 'Attenzione il sistema è singolare. Il programma verrà arrestato!' - Il sistema da risolvere è un sistema singolare, quindi la soluzione non è unica.
- 'Attenzione sistema singolare su ultimo passo. Il programma verrà arrestato!' - Il sistema da risolvere è un sistema singolare, quindi la soluzione non è unica.
Complessità
La complessità spaziale di tale algoritmo è S(n)=O(n2), in quanto l'algoritmo è di tipo in place, cioè l'unico spazio di memoria che occupa è quello della matrice n×n, usando per le variabili interne lo spazio di memoria già allocato e non più utile.