Merkezi Limit Teoremi ile ilgili sayısal bir uygulama yapılacaktır. Bu uygulamada öncelikle rasgele sayılardan oluşturulan bir dağılım yapılacaktır. Ardından bu dağılımın ortalaması ve standart sapması hesaplanacaktır. Dağılımdan n tane rasgele sayı alınacak, ve bu işlem m defa tekrar edilecek alınan sayıların histogram grafiği çizdirilecektir. Sonuç olarak elde edilen histogram, normal dağılım olacaktır.
Rasgele bir veri dizisi oluşturalım. Bu veri dizisi 100 tane veri içersin ve değerleri rasgele olsun.
t_max = 100; Y = 3*rand([1 t_max])+1; plot(Y); xlabel('#'); ylabel('Y'); title('Rasgele Sayılar'); ylim([0 5]);
Oluşturulan verilerin ortalamasını ve standart sapmasını elde edelim.
meanY = mean(Y); stdY = std(Y); fprintf('Ortalama: %f\nStd. : %f\n', meanY, stdY);
Ortalama: 2.376872 Std. : 0.825175
Veri setinden, rasgele n tane nokta seçilecektir. Bu verileri rasgele tam sayı üreten randi fonksiyonu kullanarak yapabiliriz. Örneğin 5 tane rasgele sayı seçmek için aşağıdaki komutlar kullanılarabilir:
r1 = randi(t_max, [1 5]); y1 = Y(r1); disp('Rasgele #:'), disp(r1); disp('Rasgele seçim değerleri:'), disp(y1); clear r1 y1;
Rasgele #: 92 38 45 3 77 Rasgele seçim değerleri: 1.4718 3.2127 1.5314 1.8853 2.9937
Şimdi, bu işlemi belirli bir m sayısı defa yapıldığını düşünelim. Bunun için matrix kullanılabilir. nxm boyutlarında seçim vektörleri oluşturalım. n = 5, m = 3 için örnek bir seçim aşağıdaki gibidir.
n = 5; m = 3; r1 = randi(t_max, [n m]); disp('Örneğin m = 2, 2. seçim için n adet seçim:'); disp(r1(:,2)); disp('Örneğin m = 2, 2. seçim için n adet seçim değerleri:'); disp(Y(r1(:,2))); disp('Rasgele seçimler: (her sütun farklı bir denemedir)'); disp(r1); disp('Bu seçimler için Y değerleri:'); disp(Y(r1)); clear r1 n m;
Örneğin m = 2, 2. seçim için n adet seçim: 50 24 100 70 75 Örneğin m = 2, 2. seçim için n adet seçim değerleri: 1.5910 1.9546 1.4941 2.6258 2.9816 Rasgele seçimler: (her sütun farklı bir denemedir) 73 50 27 78 24 5 82 100 31 59 70 92 98 75 95 Bu seçimler için Y değerleri: 2.0244 1.5910 2.5840 2.0431 1.9546 1.1805 2.2913 1.4941 1.0744 1.3127 2.6258 1.4718 2.2484 2.9816 3.5818
Y veri dizisinden rasgele n örneklem alalım. Bu örneklem alma işlemini m defa tekrar edelim. O halde seçimlerin ortalamarı aşağıdaki gibi hesaplanacaktır.
n = 30; m = 2000; X = Y(randi(t_max, [n m])); meanX = mean(X); fprintf('n = %d, m = %d, Ortalama (m=1) = %f\n', n, m, meanX(1));
n = 30, m = 2000, Ortalama (m=1) = 2.349442
Elde edilen verilerin dağılımı histogram ile incelendiğinde elde edilen dağılım normal dağılım olacaktır.
clf; histogram(meanX); title(['n = ' num2str(n) ', m = ' num2str(m)]); xlabel('X''lerin ortalaması'); ylabel('Tekrar');
Hiç yorum yok:
Yorum Gönder