matlab坐标轴非均匀分布,matalb——生成离散非均匀随机数

matalb——生成离散非均匀随机数

今日感冒,状态非常差,连锁故障风险评估的程序仍然没有调试出bug的问题所在。在和Yu XingBin的交流中发现了程序设计中另外一个问题,会导致程序计算的指标出现较大偏差。

一、问题

连锁故障仿真程序中,第一步就是需要随机选择一条故障线路。起先我认为按照均匀分布产生[1 n]之间的任一随机数(n为总线路数),结果发现仿真结果出现母线分离的概率非常大,远远超过了Yu XingBin论文中的结论。疑惑不解,遂于之邮件交流,得知两点信息:

1.输电线路的故障概率远远大于变压器线路故障概率。因为输电线路很长,并且暴露在外部环境中,易受天气等因素的影响,其故障概率显然大于变压器。

2.输电线路的故障概率近视的认为与线路的长度成正比。

根据以上信息分析可以得知,对于固定拓扑结构的电力网络,故障线路的概率是随机的、离散的,而不是均匀分布的。故障线路的选择应该按照每条线路的故障概率进行抽样。所以需要实现离散非均匀分布的随机整数抽样。

二、解决方案

网上现成有一个解决方案如下: function y=dis_rand(x,p,n)

%dis_rand 产生离散分布随机数

% x:可能取值

% p:取值概率

% n:拟生成随机数的数目

cp=cumsum(p);

y=zeros(1,n);

for i=1:n

y(i)=x(sum(cp<=rand(1))+1);

end

算法说明:利用matlab中的rand函数获取区间[0,1]上均匀分布的随机数,根据希望的分布律把[0,1]区间分段,各段的长度依次为随机数取各个可能值的概率。当那个均匀分布的随机数落在其中第i个小段上时,就把第i个可能取值输出。

例:y=dis_rand([1 :3],[0.4 0.3 0.4],1)  即按照0.4 0.3 0.4的概率从1,2,3三个数字中产生一个随机数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值