Üçüncü proje - WordPress.com

Elektrik Mühendisleri İçin Olasılık Teorisi (ELE 273)
TOBB Ekonomi ve Teknoloji Üniversitesi, Güz 2014
Dr. A. Melda Yüksel Turgut
ELE 273 Proje 3
17 Kasım 2014
Yaptığınız işlemleri ve yorumları, MATLAB kodlarını ve sonuçlarını elden teslim etmelisiniz.
MATLAB kodlarını ayrıca AdSoyad.m dosyası şeklinde dersin asistanı Barış Erol'a eposta ile iletiniz
(ele273guz2014 at gmail.com). Teslim tarihi: 28 Kasım 2014, Cuma, saat 16.00'ya kadar.
ÖNEMLİ UYARI 1: Projelerin notlandırmaya katkısı %15'tir. Ayrıca, dersten geçer not alabilmek için
projelerden en az %40 not toplamış olmanız gerekmektedir. Yani, sınav notlarınız çok yüksek olsa
bile, projeleri yapmadan dersten geçmek mümkün değildir.
ÖNEMLİ UYARI 2: Bu soruları çözmek için herhangi bir kaynaktan yararlanırsanız (kitap, web sitesi,
vb.), bu kaynaklara projeniz içinde atıfta bulunmalısınız, alıntıları tırnak içinde belirtmelisiniz.
Kaynaklardan yararlanmanız sorun değildir, ama atıfta bulunmamak kopya olarak değerlendirilir.
Ayrıca kaynaktan alıntı yapsanız bile, anlayarak yapmanız gerektiğini unutmayın. Dersi ve projeyi
sizin öğrenmeniz için veriyoruz :).
ÖNEMLİ UYARI 3:
Yükseköğretim Kurumları Öğrenci Disiplin Yönetmeliği Madde 9-m'ye göre ``sınavlarda kopya
yapmak veya yaptırmak veya bunlara teşebbüs etmek'' fiilinin suçu YÜKSEKÖĞRETİM
KURUMUNDAN BİR VEYA İKİ YARIYIL İÇİN UZAKLAŞTIRMA cezasıdır.
ÖN BİLGİ: RASTGELE SAYI ÜRETMEK
Diyelim ki ℎ(𝑥𝑥) olasılık yoğunluk fonksiyonuna (OYF) sahip bir rastgele sayı üretmek istiyoruz. 𝐻𝐻(𝑥𝑥)
bu rastgele değişkenin birikimli dağılım fonksiyonu (BDF) olsun. Ayrıca 𝐺𝐺 = 𝐻𝐻 −1 bu fonksiyonun tersi
olsun. 𝑋𝑋 = 𝐺𝐺(𝑈𝑈) olarak tanımlayalım ve 𝑈𝑈 (0,1) arasında düzgün dağılımlı bir rastgele sayı olsun. Bu
durumda
𝐹𝐹𝑋𝑋 (𝑡𝑡) = 𝑃𝑃(𝑋𝑋 ≤ 𝑡𝑡) = 𝑃𝑃(𝐺𝐺(𝑈𝑈) ≤ 𝑡𝑡 ) = 𝑃𝑃�𝑈𝑈 ≤ 𝐺𝐺 −1 (𝑡𝑡)� = 𝑃𝑃�𝑈𝑈 ≤ 𝐻𝐻(𝑡𝑡)� = 𝐻𝐻(𝑡𝑡) olur.
En son eşitlik düzgün dağılımlı rastgele sayıdan dolayıdır. Bu durumda rastgele sayının nasıl
üretileceği açıktır.
i.
ii.
Bir düzgün dağılımlı U sayısı üret (rand komutuyla)
X=G(U) değeri OYF’su H(x) olan bir rastgele sayı olur. Amacımıza ulaşmış oluyoruz. Burada
𝐺𝐺 = 𝐻𝐻 −1 yani istediğimiz BDF’nin ters fonksiyonudur.
Matlab’da Gauss dağılımı, düzgün dağılım, üssel dağılım vb. dağılımlar zaten tanımlı olduğu için sık
kullanılan bu dağılımlar için Matlab ile doğrudan işlem yapmak mümkündür. Ancak Matlab’da
tanımlı olmayan bir olasılık yoğunluk fonksiyonuna göre rastgele sayı üretmek gerektiğinde
yukarıda açıklanan yöntemi kullanmak gerekir.
Örnek: Üssel (𝜆𝜆) r.d’i üretelim.
ℎ𝑋𝑋 (𝑥𝑥) = 𝜆𝜆𝑒𝑒 −𝜆𝜆 , 𝑥𝑥 ≥ 0
𝐻𝐻𝑋𝑋 (𝑥𝑥) = 1 − 𝑒𝑒 −𝜆𝜆𝜆𝜆
1
𝐺𝐺(𝑡𝑡) = − ln(1 − 𝑡𝑡)
𝜆𝜆
1
Bu durumda üssel bir rastgele değişken Matlab’da𝑥𝑥 = − log(1 − 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟) komutuyla üretilir.
𝜆𝜆
1
− log�1 −
𝜆𝜆
Eğer 10000 adet rastgele sayı üretmek istiyorsanız 𝑥𝑥 =
𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟(1,10000)�kullanabilirsiniz.
Aşağıdaki kod dağılımla üretilen rastgele sayıların histogramının gerçek OYF’na uyduğunu gösteriyor.
%Asagidaki kod üssel(3) dagilimli 100000 adet rastgele sayiuretir:
m=100000;
lambda=3;
U=rand(1,m);
X=-1/lambda*log(1-U);
%Asagida 30 bolgelihistogramciziliyor(30 olmak zorunda degil, mesela 40
%da olabilir)Histogrammin(X) ile max(X) arasindaki bölgeyi 1/d esit
%parcaya böler ve her bölgeye denk gelen X'lerinsayisini verir.
d=1/30;
[r,s]=hist(X,1/d);
%r: her bolgedekiorneksayisi, s: her bolgenin orta noktasi
r=r/(d*m*(max(X)-min(X)));
%Yukaridakiislemi yaparak histograminormalizeetmis oluyoruz ve Riemann
%toplami 1’e esit oluyor. %Bu sekildehistogram ile olasilikyogunluk
%fonksiyonu f(x) karsilastirilabilir hale geliyor.
plot(s,r,'o')
%histogrami dairelerle cizdirdik. Simdi gercekOYF’yiduzcizgi ile
cizdirecegiz.
holdon
x=0:0.01:max(X);
y=lambda*exp(-lambda*x);
plot(x,y)
grid
xlabel('x')
ylabel('olasilik yogunluk fonksiyonu')
Yukarıdaki kodu Matlab’da çalıştırıp çıkan grafiği görebilirsiniz. Kod içindeki yorumları
okuyup bilgi sahibi olabilirsiniz.
3
histogram
gerçek OYF
olasilik yogunluk fonksiyonu
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
x
3
3.5
4
4.5
Soru 1) Olasılık yoğunluk fonksiyonu aşağıdaki şekilde olan rastgele sayılar üretiniz.
Yukarıdaki kodu değiştirebilirsiniz. Yukarıdaki grafiğin bir benzerini (histogram ve gerçek
OYF) çıkartın.
𝑒𝑒 𝑥𝑥
𝑓𝑓𝑋𝑋 (𝑥𝑥) = �𝑒𝑒 − 1 0 ≤ 𝑥𝑥 ≤ 1
0
𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
Oluşturduğunuz bu rastgele değişkenin beklenen değerini ve değişintisini hem analitik (elle
hesaplayarak) hem de Matlab’da hesaplayın. Sonuçları karşılaştırın.
Soru 2) Olasılık yoğunluk fonksiyonu aşağıdaki şekilde (Weibull) olan rastgele sayılar
üretiniz. Yukarıdaki kodu yine değiştirebilirsiniz. Yukarıdaki grafiğin bir benzerini (histogram
ve gerçek OYF) çıkartın.
𝑓𝑓𝑋𝑋 (𝑥𝑥) =
𝑘𝑘
𝑘𝑘 𝑥𝑥 𝑘𝑘−1 −�𝑥𝑥 �
𝜆𝜆
�
�
𝑒𝑒
�𝜆𝜆 𝜆𝜆
0
, 𝑥𝑥 ≥ 0 , ( 𝑘𝑘 = 1.5, 𝜆𝜆 = 1 )
, 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
Oluşturduğunuz bu rastgele değişkenin beklenen değerini ve değişintisini hem analitik (elle
hesaplayarak) hem de Matlab’da hesaplayın. Sonuçları karşılaştırın.
Soru 3) Son olarak olasılık kütle fonksiyonu ayrık bir tür (~Geometrik(0.2)) olan rastgele
sayılar üretiniz. Bu sefer ayrık r.d. olduğuna dikkat edin. Histogram’dan farklı bir şeyler
yapmanız gerekebilir). Öncekilerden daha zor değil, hatta daha kolay. Olasılık kütle
fonksiyonunun ne anlama geldiğini düşünün. Yine bir grafik açarak, ürettiğiniz rastgele
sayıların histogramını ve gerçek OKF’unu çizdirin
𝑝𝑝𝑋𝑋 (𝑘𝑘) = �
𝑝𝑝(1 − 𝑝𝑝)𝑘𝑘−1
0
, 𝑘𝑘 = 1,2,3, …
, ( 𝑝𝑝 = 0.2)
, 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑
Oluşturduğunuz bu rastgele değişkenin beklenen değerini ve değişintisini hem analitik (elle
hesaplayarak) hem de Matlab’da hesaplayın. Sonuçları karşılaştırın.