View Full Version : sommatoria in Matlab
MattiaAnimeRex
06-01-2011, 11:58
Ciao a tutti, il mio problema e' abbastanza semplice: solo che uso
Matlab da poco e non riesco a uscirne!
Sia dato il vettore A = [9 1;3 2; 5 8;4 9]' e il vettore M=[ 1 1]' (gli apici indicano che i vettori sono trasposti in modo che ogni coppia risulti un vettore colonna e non riga)
Devo implementare in Matlab un'espressione del tipo:
E=Σ ( (x(i)-M) * (x(i)-M)' )
dove la sommatoria va da 1 al numero di componenti di A (ossia sommatoria per i da 1 a 4),
per cui x(1)=(9 1), x(2)=(3 2) ecc
Come posso fare?
Spero che qualcuno di voi mi possa aiutare!!
MattiaAnimeRex
06-01-2011, 13:42
sum(x(:,i)) ti restituisce la somma sulla componente i-esima.
Scusa ma non ho capito, o forse non mi sono spiegato io :D
La sommatoria va fatta per ogni i, per cui al passo 1 avrei:
((9 1)-(1 1)) * ((9 1) - (1 1))' = [ 64 0; 0 0]
questo genera una matrice 2x2;
al passo successivo avro' invece
((3 2)-(1 1)) * ((3 2) - (1 1))' = [4 2; 2 1]
che andra' sommato al risultato precedente e dara': [68 2; 2 1]
e cosi' via fino all'ultima iterazione
Potresti scrivere direttamente il codice che devo utilizzare per fare cio' per favore?
Grazie
MattiaAnimeRex
06-01-2011, 22:26
beh, allora č ancora pių semplice:
result = zeros(2,2);
for i = 1:4
result = result + ((A(:,i)-M)*(A(:,i)-M).';
end
Scusa ma facendo cosi' non fa la somma di tutti,
bensi' restituisce result=result(i=3)+result(i=4)
l'avevo gia' provato.
Tuttavia non ho capito a cosa serve il punto che hai messo prima dell'apice:
.'
MattiaAnimeRex
07-01-2011, 09:11
cosė funziona, l'ho provato in matlab. restituisce la sommatoria dei valori in cui result contiene ogni volta il valore temporaneo fino all'indice i-esimo della sommatoria... lo vedi semplicemente esplicitando ciascun passaggio per ogni i. per
i=1; result(1) = primo_val_sommatoria;
i=2; result(2) = result(1) + secondo_val_sommatoria
ecc.ecc.ecc...
il " .' " equivale semplicemente all'operazione di trasposta, mentre il " ' " equivale all'hermitiana, ovvero alla trasposta coniugata. per numeri reali coincidono, ma č buona norma specificare.
Grazie mille, ora lo provo :D:D :D :D
EDIT: perfetto!!Grazie mille!!!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.