Advertisement
Tobiasz931

I fail it for the plot.

May 20th, 2013
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.63 KB | None | 0 0
  1. % Metody teoretyczne
  2.  
  3. clear
  4. N=1; T=2; % falsz, prawda
  5.  
  6. %zadawanie wartosci prawdopodobienstw
  7.  
  8. %wirus
  9. pw(T)=0.001;
  10. pw(N)=1-pw(T);
  11.  
  12. % błąd użytkownika
  13. pu(T)=0.5;
  14. pu(N)=1-pu(T);
  15.  
  16. % wysoka temp
  17. pt(T)=0.05;
  18. pt(N)=1-pt(T);
  19.  
  20. % błąd sys
  21. ps(T,N,N)=0.005;
  22. ps(T,N,T)=0.007;
  23. ps(T,T,N)=0.55;
  24. ps(T,T,T)=0.6;
  25. ps(N,N,N)=1-ps(T,N,N);
  26. ps(N,N,T)=1-ps(T,N,T);
  27. ps(N,T,N)=1-ps(T,T,N);
  28. ps(N,T,T)=1-ps(T,T,T);
  29.  
  30. % awaria sprzętu
  31. pa(T,T)=0.1;
  32. pa(T,N)=0.01;
  33. pa(N,T)=1-pa(T,T);
  34. pa(N,N)=1-pa(T,N);
  35.  
  36. %zawieszenie
  37. pz(T,T,T)=0.95;
  38. pz(T,N,T)=0.90;
  39. pz(T,T,N)=0.40;
  40. pz(T,N,N)=0.001;
  41. pz(N,T,T)=1-pz(T,T,T);
  42. pz(N,N,T)=1-pz(T,N,T);
  43. pz(N,T,N)=1-pz(T,T,N);
  44. pz(N,N,N)=1-pz(T,N,N);
  45.  
  46. % tablica prawdopodobienstw lacznych
  47.  
  48. for S=1:2
  49.   for A=1:2
  50.     for Z=1:2
  51.       for U=1:2
  52.         for W=1:2
  53.             for T=1:2
  54.                p(S,A,Z,U,W,T)=pw(W)*pu(U)*pt(T)*ps(S,W,U)*pa(A,T)*pz(Z,S,A);
  55.             end
  56.         end
  57.       end
  58.     end
  59.   end
  60. end
  61.  
  62. % Sprawdzenie czy suma wszystkich prawdopodobienstw jest rowna 1
  63. sum(sum(sum(sum(sum(sum(p))))))
  64.  
  65.  
  66. % Na podstawie tablicy prawdopodopienstw lacznych mozna obliczyc dowolne prawdopodobienstwo, np.P(A|S)=P(A,S)/P(S)
  67.  
  68. PA=sum(sum(sum(sum(sum(p(:,2,:,:,:,:))))))
  69. PUZ=sum(sum(sum(sum(p(:,:,2,2,:,:)))))/sum(sum(sum(sum(sum(p(:,:,2,:,:,:))))))
  70.  
  71. % -------------------------------------------------------
  72. % Metody Monte Carlo
  73.  
  74. K=10000; % jednorazowa porcja taktow
  75. close
  76. hold on                             % polecenie zostawia wykres, nastepne beda rysowane na tym samym
  77. plot([1 100],[PUZ PUZ])          % wykres P(A|S) wyznaczonego teoretycznie
  78. axis([0 100 0 1])                % zadanie skali rysunku
  79.  
  80. PLOCIK=[]
  81. SR=[]
  82.  
  83. for j=1:100
  84.     w=rand(1,K)<pw(T);
  85.     u=rand(1,K)<pu(T);
  86.     sNN=rand(1,K)<ps(T,N,N);
  87.     sNT=rand(1,K)<ps(T,N,T);
  88.     sTN=rand(1,K)<ps(T,T,N);
  89.     sTT=rand(1,K)<ps(T,T,T);
  90.     s=(w&u&sTT)|(w&~u&sTN)|(~w&u&sNT)|(~w&~u&sNN);
  91.  
  92.     t=rand(1,K)<pt(T);
  93.    
  94.     aN=rand(1,K)<pa(T,N);
  95.     aT=rand(1,K)<pa(T,T);
  96.     a=(t&aT)|(~t&aN);
  97.    
  98.     zNN=rand(1,K)<pz(T,N,N);
  99.     zNT=rand(1,K)<pz(T,N,T);
  100.     zTN=rand(1,K)<pz(T,T,N);
  101.     zTT=rand(1,K)<pz(T,T,T);
  102.     z=(s&a&zTT)|(s&~a&zTN)|(~s&a&zNT)|(~s&~a&zNN);
  103.    
  104.     temp=sum(u&z)/sum(z)
  105.     PLOCIK(j)=temp
  106.     temp2=0;
  107.     for i=1:length(PLOCIK)
  108.         temp2=temp2+PLOCIK(i);
  109.     end
  110.     temp2=temp2/length(PLOCIK);
  111.     SR(j)=temp2;
  112.     % obliczenie czestosci w j-tym kroku na podstawie odpowiednich tablic jedynek, np. P(A|S)= sum(a&s)/sum(s)
  113.  
  114.     % usrednienie czestosci dla wszystkich dotychczasowych krokow
  115.  
  116.     % narysowanie wykresu: plot([1:j], tablica_srednich_czestosci)
  117.  
  118.  
  119. end
  120.  
  121.     plot([1:j], SR(1:j))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement