В связи с тем что я не могу создать сообщение в разделе инженерные и наука,создаю здесь и так есть задача из лабораторной 2 вариант 10(вот ссылка кому интересно https://www.dropbox.com/sh/k1ob0rcnqdzfowz/AACCsKLbtinLdbvhtNvFZM7ra?dl=0): Распознавание образов, описываемых произвольными законами распределения. Взять количество наблюдений 50-100.
1. Реализовать алгоритм распознавания двух классов, описываемых произвольным законом распределения с известными параметрами. 2. Провести имитационное моделирование алгоритма. Оценить вероятности ошибок 1-го и 2-го рода. 3. Рассчитать (оценить) теоретические вероятности ошибок и сравнить их с экспериментальными значениями.
1й класс Нормальное распределение mu=10 delta=3 2й класс Распределение Вейбулла mu=1.5 delta=3
И решение:
%task 2,variant 10: [2(1) +10(1)]
clc;
n = 100;
x1 = rand(n,2);
mu1 = 10;
sigma1 = 3;
x2 = rand(n,2);
mu2 = 1.5;
sigma2 = 3;
y1 = normpdf(x1(:,1),mu1,sigma1);
y2 = wblpdf(x2(:,1),mu2,sigma2);%weib
g1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(y1) + (((y1 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(y1.^sigma2))
g2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(y2) + (((y2 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(y2.^sigma2))
g = g1+g2
newmu1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(y1)) + (((mean(y1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(y1)^sigma2));
newsigma1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(y1)) + (((std(y1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(y1)^sigma2));
newmu2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(y2)) + (((mean(y2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(y2)^sigma2));
newsigma2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(y2)) + (((std(y2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(y2)^sigma2));
z1 = normpdf(g,newmu1,newsigma1);
z2 = wblpdf(g,newmu2,newsigma2);
l0 = n/2;
error12 = 0;
for i=1:l0
error12 = error12 + z1(i);
end;
error21 = 0;
for i=l0:1
error21 = error21 + z2(i);
end;
error12
error21
yt1 = normpdf(x1(:,2),mu1,sigma1);
yt2 = wblpdf(x2(:,2),mu2,sigma2);%weib
gt1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(yt1) + (((yt1 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(yt1.^sigma2));
gt2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(yt2) + (((yt2 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(yt2.^sigma2));
gt = gt1+gt2;
newmut1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(yt1)) + (((mean(yt1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(yt1)^sigma2));
newsigmat1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(yt1)) + (((std(yt1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(yt1)^sigma2));
newmut2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(yt2)) + (((mean(yt2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(yt2)^sigma2));
newsigmat2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(yt2)) + (((std(yt2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(yt2)^sigma2));
zt1 = normpdf(gt,newmut1,newsigmat1);
zt2 = wblpdf(gt,newmut2,newsigmat2);
errort12 = 0;
for i=1:l0
errort12 = errort12 + zt1(i);
end;
errort21 = 0;
for i=l0:1
errort21 = errort21 + zt2(i);
end;
errort12
errort21
Правильно ли решение относительно всех вопросов?