Sunteți pe pagina 1din 4

Aplicatii Matlab

zeros(n)  matrice patratica cu n linii si n coloane cu toate elementele = 0


zeros(n,m)  matrice cu n linii si m coloane cu toate elementele = 0

ones(n)  matrice patratica cu n linii si n coloane cu toate elementele = 1


ones(n,m)  matrice cu n linii si m coloane cu toate elementele = 1

Exemple : Aplicatia 1.

 p p p
Fie matricea P  X , Y     . Sa se calculeze [ P(X/ Y)] si [ P(Y/ X)] .
 p p p
Sa se calculeze H  X  , H Y  , H  X , Y  , H  X / Y  , H Y / X  .

Rezolvare :

In matricea P  X , Y  avem toate probabilitatile p (x k  y j ) . Aceasta matrice are proprietatea ca


n m

 p  x
k 1 j 1
k  y j   1 , adica suma tutoror probabiliatatilor din matrice trebuie sa fie 1.

1 1/ 6 1/ 6 1/ 6 
6 p 1 p   P  X ,Y    
6 1/ 6 1/ 6 1/ 6 

Din laboratorul 5 avem :


m
Probabilitatea fiecarui simbol de intrare este : p  xk    p  xk  y j  (9)
j 1
n
Probabilitatea fiecarui simbol de iesire este : p  y j    p  xk  y j  (10)
k 1
Din formula (9) putem determina probabilitatea unui simbol de intrare ca suma tuturor probabilitatilor de pe
linie, iar din formula (10) determina probabilitatea unui simbol de iesire ca suma tuturor probabilitatilor de pe
coloana.

1/ 6 1/ 6 1/ 6 
P  X ,Y     => p  x1   1/ 6  1/ 6  1/ 6  1/ 2 si p  x2   1/ 6  1/ 6  1/ 6  1/ 2
1/ 6 1/ 6 1/ 6 
p  y1   1/ 6  1/ 6  1/ 3 , p  y2   1/ 6  1/ 6  1/ 3 , p  y3   1/ 6  1/ 6  1/ 3

Relatiile intre probabilitati sunt : p  xk  y j   p  xk   p  y j / xk  (11) si p  xk  y j   p  y j   p  xk / y j  (12)


Din relatia (11) => p  y j / xk   p  xk  y j  / p  xk  si din relatia (12) => p  xk / y j   p  xk  y j  / p  y j 
Dupa calcule, vor rezulta matricile
1/ 6 1/ 6 1/ 6  1/ 6 1/ 6 1/ 6 
 1/ 3 1/ 3 1/ 3  1/ 2 1/ 2 1/ 2  1/ 2 1/ 2 1/ 2  1/ 3 1/ 3 1/ 3
P X /Y      , P Y / X    
1/ 6 1/ 6 1/ 6  1/ 2 1/ 2 1/ 2  1/ 6 1/ 6 1/ 6  1/ 3 1/ 3 1/ 3
 1/ 3 1/ 3 1/ 3  1/ 2 1/ 2 1/ 2 

n
Cunoscand toate probabilitatile p  xk  , putem determina H  X    p  xk   log p  xk   1
k 1
m
Cunoscand toate probabilitatile p  y j  , putem determina H Y    p  y j   log p  y j   log 3  1, 6
j 1
1 1 1
=> H  X , Y   6   log   log  log 6  log(2  3)  log 2  log 3  1  log 3  2.6
6 6 6

Folosind relatiile ajutatoare (17) vom determina :


H  X / Y   H  X , Y   H Y   1
H Y / X   H  X , Y   H  X   1.6
I  X , Y   H  X   H Y   H  X , Y   0

Matlab :

zeros(3)
zeros(3,4)
ones(3)
ones(3,4)

t=[1 2 3; 4 5 6]

t(:) ///////afiseaza toate elementele matricii in coloana


t(:)’ ///////afiseaza toate elementele matricii in linie
t(i,:) /////afiseaza elementele de pe linia i
t(:,j) /////afiseaza elementele de pe coloana j

sum(t,1) ////// afiseaza suma tuturor liniilor (suma pe coloana)


sum(t,2) /////// afiseaza suma tuturor coloanelor (suma pe linie)
size(t,1) //////// afiseaza numarul de linii a matricii t
size(t,2) //////// afiseaza numarul de linii a matricii t

Aplicatia 1.

p=1/6
P_XY=[p p p;p p p]

format rat

P_XY=[p p p;p p p] /////// matricea P_XY se mai poate scrie in Matlab si ca p*ones(2,3) sau p + zeros(2,3)

P_XY(:) ///////afiseaza toate elementele matricii in coloana


P_XY(:)’ ///////afiseaza toate elementele matricii in linie

P_XY(i,:) /////afiseaza elementele de pe linia i


P_XY(:,j) /////afiseaza elementele de pe coloana j

sum(P_XY,1)
sum(P_XY,2)

size(P_XY,1) //////// afiseaza numarul de linii a matricii P_XY


size(P_XY,2) //////// afiseaza numarul de linii a matricii P_XY

P_X=sum(P_XY,2) ////// determina un vector cu toate prob. simb. de intrare ca suma pe linie (formula (9))
P_Y=sum(P_XY,1) ////// determina un vector cu toate prob. simb. de iesire ca suma pe coloana (formula (10))
for k=1:size(P_XY,1)
for j=1:size(P_XY,2)
P_XCY(k,j)=P_XY(k,j)/P_Y(j); /////////////determinam probabilitatile p  xk / y j   p  xk  y j  / p  y j 
end
end

P_XCY

for k=1:size(P_XY,1)
for j=1:size(P_XY,2)
P_YCX(k,j)=P_XY(k,j)/P_X(k); /////////////determinam probabilitatile p  y j / xk   p  xk  y j  / p  xk 
end
end

H_X=-sum(P_X.*log2(P_X)) ///////calculam H(X), adica entropia de intrare


H_Y=-sum(P_Y.*log2(P_Y)) ///////calculam H(Y), adica entropia de iesire

format short

H_Y=-sum(P_Y.*log2(P_Y))

format rat

P_XY_vect=P_XY(:) //////P_XY fiind o matrice, o transformam in vector

format short

H_XY=-sum(P_XY_vect.*log2(P_XY_vect)) ///////calculam H(X,Y), adica entropia de intare-iesire

H_XCY=H_XY-H_Y ///////calculam H(X/Y), adica ECHIVOCATIA


H_YCX= H_XY-H_X ///////calculam H(Y/X), adica EROAREA MEDIE

Aplicatia 2.

Consideram problema 2 din L6.

1/ 2 0 1/ 2 0 0 0 
 P Y / X     0 0 0 1/ 3 0 2 / 3 .
 0 1/ 6 0 0 5 / 6 0 
Se dau probabilitatile p (x1 )  1/ 2 si am determinat p (x 2 )  p  x3   1/ 4 .
Daca cunoastem doar probabilitatile p  y j / xk  si p (x k ) , atunci determinam cu formula (11):
p  xk  y j   p  xk   p  y j / xk  . Toate aceste probabilitati p  xk  y j  le scriem in matricea  P  X , Y   :

1/ 2 1/ 2 0 1/ 2 1/ 2 0 0 0  1/ 4 0 1/ 4 0 0 0 



 P  X , Y     0 0 0 1/ 4 1/ 3 0  
1/ 4  2 / 3   0 0 0 1/12 0 1/ 6
 0 1/ 4 1/ 6 0 0 1/ 4  5 / 6 0   0 1/ 24 0 0 5 / 24 0 

Din matricea  P  X , Y   putem determina probabilitatea unui simbol de iesire ca suma tuturor probabilitatilor de pe
coloana. => p  y1   1/ 4 , p  y2   1/ 24 , p  y3   1/ 4 , p  y4   1/12 , p  y5   5 / 24 , p  y6   1/ 6
Cunoscand p  y j  , putem determina toate probabilitatile p  xk / y j   p  xk  y j  / p  y j  . Toate aceste probabilitati
p  xk / y j  le scriem in matricea  P  X / Y  

1/ 4 1/ 4 
1/ 4 0 0 0 0 
1/ 4
  1 0 1 0 0 0 
1/12 1/ 6  
 P  X / Y     0 0 0 0  0 0 0 1 0 1 
 1/12 1/ 6  
  0 1 0 0 1 0 
 0 1/ 24 5 / 24
0 0 0 
 1/ 24 5 / 24 

Matlab :

clear
format rat
P_YCX=[1/2 0 1/2 0 0 0 ; 0 0 0 1/3 0 2/3; 0 1/6 0 0 5/6 0]
P_X=[1/2 1/4 1/4]

for k=1:size(P_YCX,1)
for j=1:size(P_YCX,2)
P_XY(k,j)=P_X(k)*P_YCX(k,j); ///////determinam P(X,Y) cu p  xk  y j   p  xk   p  y j / xk 
end
end

P_Y=sum(P_XY,1)

for k=1:size(P_XY,1)
for j=1:size(P_XY,2)
P_XCY(k,j)=P_XY(k,j)/P_Y(j); ///////determinam P(X/Y) cu p  xk / y j   p  xk  y j  / p  y j 
end
end

Aplicatia 3.

clear
syms x1 x2
P_YCX=[2/3 1/3;1/3 2/3]
Y=[1/2 1/2]
[x1 x2]=solve([x1 x2]*P_YCX(:,1)==Y(1),x1+x2==1,x1,x2)

S-ar putea să vă placă și