Я хотел бы вычислить сумму двух треугольных случайных величин,
P(x1+x2 < y)
Есть ли более быстрый способ реализовать сумму двух треугольных случайных величин в Matlab?
РЕДАКТИРОВАТЬ: кажется, что есть гораздо более простой способ, как показано в этой minitab демонстрация. Так что это не невозможно. К сожалению, это не объясняет, как был рассчитан PDF. Все еще изучаю, как я могу сделать это в Matlab.
EDIT2: Следуя совету, я использую функцию conv
в Matlab для разработки PDF суммы двух случайных величин:
clear all;
clc;
pd1 = makedist('Triangular','a',85,'b',90,'c',100);
pd2 = makedist('Triangular','a',90,'b',100,'c',110);
x = linspace(85,290,200);
x1 = linspace(85,100,200);
x2 = linspace(90,110,200);
pdf1 = pdf(pd1,x1);
pdf2 = pdf(pd2,x2);
z = median(diff(x))*conv(pdf1,pdf2,'same');
p1 = trapz(x1,pdf1) %probability P(x1<y)
p2 = trapz(x2,pdf2) %probability P(x2<y)
p12 = trapz(x,z) %probability P(x1+x2 <y)
hold on;
plot(x1,pdf1) %plot pdf of dist. x1
plot(x2,pdf2) %plot pdf of dist. x2
plot(x,z) %plot pdf of x1+x2
hold off;
Однако у этого кода есть две проблемы:
- PDF X1 + X2 интегрируется до значения, намного превышающего 1.
- PDF X1+X2 широко варьируется в зависимости от диапазона x. Интуитивно понятно, что если X1+X2 больше 210 (сумма верхних пределов «с» двух отдельных треугольных распределений, 100 + 110), не должно ли P(X1+X2 ‹210) равняться 1? Кроме того, поскольку нижние пределы «а» равны 85 и 90, P(X1+X2 ‹85) = 0?
.*
между двумя PDF-файлами. Итак,fun = @(x) pdf(pd2,x).*pdf(pd1,y-x);
- person schvaba986   schedule 21.12.2015