Calcolo numerico - elaborato 2
Scopo
La funzione GAUSS calcola la risoluzione di un sistema lineare di n equazioni in n incognite del tipo: Ax=b.
Specifica
L'intestazione della funzione è [x,d]=gauss(A,b).
Parametri di input
- A (array bidimensionale di reali) matrice quadrata dei coefficienti del sistema, di dimensione n (triangolare inferiore, triangolare superiore o piena).
- b (array monodimensionale di reali) vettore dei termini noti del sistema, di dimensione n.
Parametri di output
- x (array monodimensionale di reali) vettore della soluzione del sistema, di dimensione n.
- d parametro opzionale, determinante di A.
Descrizione
La funzione utilizza:
- L'algoritmo di forward substitution se A è triangolare inferiore.
- L'algoritmo di back substitution se A è triangolare superiore.
- L'algoritmo di Gauss con pivoting parziale virtuale se A è piena.
- La funzione si arresta con un messaggio di errore per l'utente nel caso di singolarità del sistema.
Indicatori di errore
- Too many input arguments: Controllore definito dal Matlab. Indica che sono stati inseriti più parametri di ingresso di quelli consentiti.
- Too many output arguments: Controllore definito dal Matlab. Indica che sono stati inseriti più parametri di uscita di quelli consentiti.
- Nessun input specificato: Indica che non è stato inserito nessun parametro di ingresso.
- Matrice non quadrata: Indica che la matrice A inserita non è quadrata.
- Utilizzare matrici NxN e vettori 1xN: Indica che le dimensioni della matrice A e del vettore b non permettono il corretto svolgimento della function, infatti A deve essere NxN e b deve essere 1xN.
- Vettore pluridimensionale: Indica che il vettore b dei termini noti inserito è una matrice.
- Sistema singolare: Indica che è stata inserita una matrice A singolare che non permette di proseguire con i calcoli.
berragazzo 1/5
Calcolo numerico - elaborato 2
Esempi d'uso
GAUSS con determinante
>> [x,d]=gauss(rand(5,5),rand(1,5))
x = -0.79400921648986 -0.21185732449647 0.03698826581038 2.48223534857465 -0.32381167895828
d = 0.04854891685187
GAUSS senza determinante
>> x=gauss(rand(5,5),rand(1,5))
x = -0.97264425632274 -0.72129250503284 1.86803314120408 0.34216944189633 0.05605382576106
Situazioni di errore
>> [x,d]=gauss(rand(5,5),rand(1,5),rand(1,5))
??? Error using ==> gauss
Too many input arguments.
>> [x,y,d]=gauss(rand(5,5),rand(1,5))
??? Error using ==> gauss
Too many output arguments.
>> [x,d]=gauss
??? Error using ==> espo
Nessun input specificato.