声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1442|回复: 0

[编程技巧] 一个蒙特卡洛程序,希望高人指点。

[复制链接]
发表于 2007-4-17 14:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
下面是我做的一个mcs程序,mcs直接抽样,运行应该没有问题。抽样到10000次,基本没有失效值,我觉得对数正态分布的抽样有点问题,如果抽样点不是接近0,那么exp函数就会得到无穷大的值,这样感觉失效的机会很小。
function mcs
syms i x s bb k
k=10000;
u=[4560 1159.1 765.5];%矩阵U第一列代表抗力R,第二列代表恒载G,第三列代表活载L
p=[729.6 81.1 222];%矩阵p的三列分别为R,G,L的标准差
i=1;
for i=1:k
    s=0;
    m=pi/(p(1,3)*sqrt(6));%m为极值I型当量正态化过程中的一个常数
    n=u(1,1)-0.5772/m;%n为极值I型当量正态化过程中的另一个常数
    a(i)=exp(normrnd(u(1,1),p(1,1)));%对数正态分布随机抽样
    b(i)=normrnd(u(1,2),p(1,2));%正态分布随机抽样
    x=rand(1);
    c(i)=u(1,3)-(log(-log(x)))/m;%极值I型分布随机抽样
    if a(i)-b(i)-c(i)<0
        s=s+1;
    end
        i=i+1;
end
bb=norminv(1-s/k)%可靠度指标
如何解决?能改进么,还是要改用重要度抽样?哪位有蒙特卡罗重要度抽样的matlab程序啊?,急啊!
我的邮箱:wugang326@163.com。QQ:66811820

[ 本帖最后由 wugang326 于 2007-4-17 14:43 编辑 ]
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 13:19 , Processed in 0.055364 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表