Anteprima
Vedrai una selezione di 1 pagina su 3
Factorpivot Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Funzione factorpivot.m

function [A,x,flag,detA]=factorpivot(A,b);
if nargin==0 %Se i parametri di ingresso sono inesistenti, segnala l'errore
    error('ERRORE! Non hai inserito alcun parametro in ingresso.');
end
if nargin==1 %Se b non è stato inserito, segnala l'errore
    error('ERRORE! Non hai inserito il vettore b.');
end
flag=0; %Creazione di flag
detA=1; %Creazione di detA
epsmac=eps*norm(A); %Creazione dell'epsilon macchina
if (ischar(A)==1||length(A)==1) %Se A è un carattere o uno scalare, segnala l'errore
    error('ERRORE! Matrice A non valida.');
end
[n,m]=size(A); %Ricerca delle dimensioni di A
if n~=m %Se A non è quadrata, segnala l'errore
    error('ERRORE! Matrice A non quadrata.');
end
[nb,mb]=size(b); %Ricerca delle dimensioni di b
if (nb~=n || mb~=1 || ischar(b)==1) %Se b non ha dimensioni valide o è un carattere, segnala l'errore
    error('ERRORE! Vettore b non idoneo.');
end
%Creazione del
vettore degli indici di accesso alle righe di Apivind=1:n;%Fattorizzazione LU con pivoting parziale
for k=1:n-1
    [pivot,i]=max(abs(A(pivind(k:n),k))); %Ricerca del pivot e dell'indice di posizione
    i=i+k-1;
    if i~=k %Se i è diverso da k, moltiplica detA per -1 e fai lo scambio degli indici delle righe
        detA=detA*-1;
        pivind([k i])=pivind([i,k]);
    endif
    if abs(A(pivind(k),k))<=epsmac %Se il pivot è nullo, cambia flag e segnala l'errore
        flag=1;
        error('ERRORE! Matrice singolare.');
    end
Dettagli
Publisher
A.A. 2012-2013
3 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Calcolo numerico e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof D'Alessio Alessandra.