Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Calcolo Numerico - Elaborato 2

Test dei casi funzionanti:

% GAUSS con determinante

>> [x,d]=gauss(rand(5,5),rand(1,5))

x =

0.30787703065830 -0.64159754351901 -0.08666380789320 0.48375517501043 0.62635117908815

d =

-0.05116330414697

% GAUSS senza determinante

>> x=gauss(rand(5,5),rand(1,5))

x =

0.81718944077268 10.03235448475336 -14.44552798303867 -6.27593098132794 3.48161963104765

Confronto con il Matlab:

>> A=rand(7,7);

>> b=rand(1,7);

>> [x,d]=gauss(A,b)

x =

Columns 1 through 5

0.32678601543795 0.29645596425731 0.21483592145287 -0.77679523070997 0.97237122889521

Columns 6 through 7

-0.53464082251967 0.04955257812158

d =

-0.12901949540796

>> b=b';

>> (A\b)'

ans =

Columns 1 through 5

0.32678601543795 0.29645596425731 0.21483592145287 -0.77679523070997 0.97237122889521

Columns 6 through 7

-0.53464082251967 0.04955257812158

>> det(A)

ans =

-0.12901949540796

berragazzo 3/5

Calcolo Numerico - Elaborato 2

File gauss.m:

function[x,d]=gauss(A,b)

% GAUSS calcola la soluzione di un sistema del tipo Ax=b

%

% Parametri di ingresso:

%

% A = Matrice dei coefficienti del sistema (NxN)

% b = Vettore dei termini noti (1xN)

%

% Parametri di uscita:

%

% x = Vettore con le soluzioni del sistema

% d = Determinante della matrice A (facoltativo)

%

% Esempio d'uso: tenendo conto di [x,d]=gauss(A,b) si può avere

%

% >> [x,d]=gauss(rand(5,5),rand(1,5))

%

% x =

%

% Columns 1 through 3

%

% 1.86811067945846 1.69348271548917 1.35507405114225

%

% Columns 4 through 5

%

% -2.71083980957990 -1.00471453788528

%

%

% d =

%

% 0.03974489824553

format long;

if (nargin==0) input specificato.');

error('Nessun

end

bsize=size(b);

asize=size(A);

N=asize(1);

if asize(1)~=asize(2)

error('Matrice non quadrata.')

end

if bsize(2)~=asize(1)

error('Utilizzare matrici NxN e vettori 1xN.')

end

if bsize(1)~=1 pluridimensionale.')

error('Vettore

end

c=0; % Controllore matrice

if triu(A)==A

c=1; % Matrice triangolare superiore

end

if tril(A)==A

c=-1; % Matrice triangolare inferiore

end

if c==0 % Algoritmo di eliminazione di Gauss con pivoting parziale

for k=1:(N-1)

r=min(find((abs(A([1:N],k)))==max(abs(A([k+1:N],k))))); % Determinare il più piccolo r:|A(r,k)|=max|A(i,k)|, i>=k

if A(r,k)~=0

[A(k,:),A(r,:)]=deal(A(r,:),A(k,:)); % Scambia riga k con riga r

[b(k),b(r)]=deal(b(r),b(k)); % Scambia b(r) con b(k)

A([k+1:N],k)=A([k+1:N],k)/A(k,k);

berragazzo 4/5


ACQUISTATO

2 volte

PAGINE

5

PESO

57.07 KB

AUTORE

Sara F

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F 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à Napoli Federico II - Unina o del prof D'Amore Luisa.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Calcolo numerico

Elaborati D'Alessi
Appunto
Calcolo Numerico – Funzione Espo
Appunto
Calcolo Numerico – Fitting dei dati
Appunto
Calcolo numerico - Esercitazione
Esercitazione