Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Zestaw 16 %
- % http://si-lab.cba.pl/bayes_utrata2.htm %
- % Obliczyc P(D) oraz P(Pr|D) teoretycznie %
- % oraz P(Pr|D) za pomoca monte carlo %
- % v0.001 - zrobiona czesc teoretyczna %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Metody teoretyczne
- clear
- N=1; T=2; % falsz, prawda
- %zadawanie wartosci prawdopodobienstw
- %Pr - błąd programisty
- %B - błąd w systemie
- %N - skok napięcia
- %D - błąd na dysku
- %U - utrata danych
- %Prawdopodobieństwa dane:
- % blad programisty
- pPr(T) = 0.70;
- pPr(N) = 1 - pPr(T);
- % skok napiecia
- pN(T) = 0.07;
- pN(N) = 1 - pN(T);
- % blad w systemie
- pBPr(T,T) = 0.13;
- pBPr(T,N) = 0.05;
- pBPr(N,T) = 1 - pBPr(T,T);
- pBPr(N,N) = 1 - pBPr(T,N);
- % blad na dysku
- pDNB(T,T,T) = 0.80;
- pDNB(T,N,T) = 0.15;
- pDNB(T,T,N) = 0.45;
- pDNB(T,N,N) = 0.06;
- pDNB(N,T,T) = 1 - pDNB(T,T,T);
- pDNB(N,N,T) = 1 - pDNB(T,N,T);
- pDNB(N,T,N) = 1 - pDNB(T,T,N);
- pDNB(N,N,N) = 1 - pDNB(T,N,N);
- %Utrata danych
- pUDB(T,T,T) = 0.50;
- pUDB(T,N,T) = 0.30;
- pUDB(T,T,N) = 0.20;
- pUDB(T,N,N) = 0.05;
- pUDB(N,T,T) = 1 - pUDB(T,T,T);
- pUDB(N,N,T) = 1 - pUDB(T,N,T);
- pUDB(N,T,N) = 1 - pUDB(T,T,N);
- pUDB(N,N,N) = 1 - pUDB(T,N,N);
- % tablica prawdopodobienstw lacznych
- %Pr - błąd programisty
- %B - błąd w systemie
- %N - skok napięcia
- %D - błąd na dysku
- %U - utrata danych
- for Pr=1:2
- for B=1:2
- for N=1:2
- for D=1:2
- for U=1:2
- p(Pr,B,N,D,U)=pPr(Pr)*pN(N)*pBPr(B,Pr)*pDNB(D,N,B)*pUDB(U,D,B);
- end
- end
- end
- end
- end
- % Sprawdzenie czy suma wszystkich prawdopodobienstw jest rowna 1
- sum(sum(sum(sum(sum(p)))))
- % Na podstawie tablicy prawdopodopienstw lacznych mozna obliczyc dowolne prawdopodobienstwo, np.P(A|S)=P(A,S)/P(S)
- pD = sum(sum(sum(sum((p(:,:,:,2,:))))))
- pPrD = sum(sum(sum(p(2,:,:,2,:))))/pD
- %pwas=sum(sum(sum(p(2,:,2,:,:))))/sum(sum(sum(sum(p(:,:,2,:,:)))))
- %pwnas=sum(sum(sum(p(1,:,2,:,:))))/sum(sum(sum(sum(p(:,:,2,:,:)))))
- % -------------------------------------------------------
- % Metody Monte Carlo
- K=10000; % jednorazowa porcja taktow
- close
- hold on % polecenie zostawia wykres, nastepne beda rysowane na tym samym
- plot([1 1000],[pPrD pPrD]) % wykres P(A|S) wyznaczonego teoretycznie
- axis([0 1000 0 0.9]) % zadanie skali rysunku
- for j=1:1000
- pr=rand(1,K)<pPr(T);
- d=rand(1,K)<pD(T);
- aNN=rand(1,K)<pwawu(T,N,N);
- aNT=rand(1,K)<pwawu(T,N,T);
- aTN=rand(1,K)<pwawu(T,T,N);
- aTT=rand(1,K)<pwawu(T,T,T);
- a=(w&u&aTT)|(w&~u&aTN)|(~w&u&aNT)|(~w&~u&aNN);
- % ......itd.............
- % obliczenie czestosci w j-tym kroku na podstawie odpowiednich tablic jedynek, np. P(A|S)= sum(a&s)/sum(s)
- % usrednienie czestosci dla wszystkich dotychczasowych krokow
- % narysowanie wykresu: plot([1:j], tablica_srednich_czestosci)
- pause
- end
- .;;,
- : `.
- . ,
- ,
- :
- ,
- ##### ;
- : # `#
- ; # ;; ##
- : ##### #
- ; # #
- : # #
- # # '
- :
- ;
- :
- ;
- : ,
- `,
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- `,.
- ##,
- .#
- ,
- `: ; `: '
- , ' . '
- ` ' ` '
- ` ; ` ;
- : :
- # # : ##### :
- #` # # ,'
- : ## # : # ,:
- ' #.; # ` ; ##### `
- ; # # # ; # #
- . # ## . # #
- `# ## ` #####; `
- : # # : ; :
- : :
- , : ,
- , : ` ` , :
- :';', : :';',
- ;
- '
- , ,
- . . ;
- . ;
- ' .
- '
- ,
- . :
- ` .
- ' ` ;
- : ;
- . .
- , '
- ' .
- . ,
- . ;
- , ' ;
- ` ` .
- ## ##;
- ,## '. `:; '#.
- # , ';
- ` . .
- ` ;
- . ; ;
- ` ###' .
- : # .# .
- # # '
- # # :
- # # : .
- # # ' ;
- , # `# . ;
- , ###' .
- ` ;
- `
- `
- . ' .
- `;` .' ;
- , ;
- : .
- ;
- ;
- ;
- ' .
- ' ;
- ' ;
- ; .
- ;
- :
- :
- , .
- . ;
- . ;
- ` .
- `
- `
- .##,
- '#
- #
- # '` :,
- ## ' .
- :#; ,
- , ,
- ,
- # # ;
- ` # # `
- ; # #
- ' # #
- ' # #
- ; # #
- # # `
- ` #### ,
- .
- :
- , .
- : .
- ,;``.'
Advertisement
Add Comment
Please, Sign In to add comment