30.06.2013 Views

Leader (and sub Leader) Election per uniformare e ... - Automatica

Leader (and sub Leader) Election per uniformare e ... - Automatica

Leader (and sub Leader) Election per uniformare e ... - Automatica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

E.4<br />

Codice MATLAB CAP 7.<br />

E.4.1 Implementazione del metodo di controllo<br />

ValoreFinaleMinimo.<br />

function soluzione = Msistema(Mg,tempo,alfa)<br />

dim = size (Mg);<br />

% Trovo la matrice da risolvere<br />

S = [];<br />

for i = 1:dim(1,1)<br />

rad = zeros(dim(1,1),1);<br />

rad(i,1) = 1;<br />

O = MaFigliEquispaziati(Mg,rad);<br />

O = O * ones(dim(1,1),1);<br />

S = [S O];<br />

end<br />

Q = inv(S) * ones(dim(1,1),1) - quadprog (2*S’*S ,<br />

zeros(dim(1,1),1) , eye(dim(1,1)) , (inv(S) * ones(dim(1,1),1)));<br />

% Normalizzo la soluzione in funzione del tempo di simulazione<br />

lambda = (alfa+1) * (tempo+1) + alfa * (tempo+1) / (ones(1,dim(1,1)) * Q);<br />

Q = Q * (lambda - (1+alfa) * (tempo+1)) / alfa;<br />

% Approssimo la soluzione a valori naturali<br />

vet = zeros(dim(1,1),1);<br />

for i = 1: dim(1,1)<br />

vet(i,1) = fix (Q(i,1));<br />

end<br />

n = tempo - vet’ * ones(dim(1,1),1); % Quanti valori <strong>per</strong>do con la<br />

% approssimazione. Devo rimetterli<br />

for i = 1: n<br />

vet (i,1) = vet (i,1) + 1;<br />

end<br />

soluzione = vet;<br />

63

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!