我想计算两个三角随机变量的总和,
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;
但是这段代码有两个问题:
- X1+X2 的 PDF 积分远高于 1。
- X1+X2 的 PDF 根据 x 的范围变化很大。直观地说,如果 X1+X2 大于 210(两个独立三角形分布的上限“c”之和,100 + 110),那么 P(X1+X2 <210) 不应该等于 1 吗?此外,由于下限“a”是 85 和 90,P(X1+X2 <85) = 0?