用Matlab改进一次二阶矩法程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Matlab编的计算结构可靠指标的改进一次二阶矩法程序(验算点法) 题目:编制改进一次二阶矩法计算可靠指标的程序,并给出算例,要求提供源程序 选取的算例为:z=g(x,y)=x*y-1140,其中x,y服从正态分布,μx=38,Vx=0.1, μy=38,Vy=0.05 本程序采用Matlab编写。 选取β1=3.0,β2=2.5 计算结果为:可靠指标β=4.2672,最终验算点为:(22.8430 , 49.9060),在验算点处功能函数值为:1.2354e-004 %保存为strRlbt.m,在Matlab命令窗口中输入strRlbt执行即可 N = 2;%变量个数 miu = [38 54];%均值 v = [0.1 0.05];%变异系数 sgma = miu .* v;%方差 syms x y g = sym(x * y - 1140);%功能函数 jacg = jacobian( g ,[x;y]);%计算雅可比矩阵 initvalue = [miu;v;sgma];%用作函数参数 %选取beta,定义x0=miu beta1 = 3.0; xopt0 = [38 54]; alpha0 = zeros(1,2); [ alpha1 , xopt1 , result ] = calforbeta( initvalue , beta1 , alpha0 , xopt0 , jacg , g ); if result == 1 disp(第一次假定的可靠指标); return end %再次假定beta beta2 = 2.5; xopt0 = miu - beta2 * alpha1 .* sgma; gvalue = jacgfunc(jacg,xopt1); alpha0 = (sgma .* gvalue) / sqrt(sum((sgma .* gvalue).^2)); [ alpha2 , xopt2 , result ] = calforbeta( initvalue , beta2 , alpha0 , xopt0 , jacg , g ); if result == 1 disp(第二次假定的可靠指标); return end %beta迭代求解 g1 = gfunc(g,xopt1); g2 = gfunc(g,xopt2); eps = 0.1; %精度 while abs(g2) eps temp = beta2; beta2 = beta2 - (beta2 - beta1)/(g2 - g1) * g2; beta1 = temp; [ alpha2 , xopt2 , result ] = calforbeta( initvalue , beta2 , alpha1 , xopt1 , jacg , g ); temp = g2; g2 = gfunc(g,xopt2); g1 = temp; if result == 1 break end end disp(可靠指标为:); disp(beta2); disp(最终验算点为:); disp(xopt2); disp(在验算点处功能函数值为:); disp(g2); function g_out = gfunc( g , x_in ) %功能函数值计算 x = x_in(1); y = x_in(2); g_out = eval(g);%函数值 %将以上内容保存为gfunc.m function g_out = jacgfunc( jacg , x_in ) %功能函数偏导数计算,即雅可比矩阵计算 x = x_in(1); y = x_in(2); for i = 1:2 g_out(i) = eval(jacg(i));%1为对x的导数,2为对y的导数 end %将以上内容保存为jacgfunc.m function [ alpha1 , xopt1 ,result ] = calforbeta( initvalue , beta0 , alpha0 , xopt0 , jacg , g) %对选取的beta进行计算 result = 0; N = length(xopt0); alpha = alpha0; xopt = xopt0; %initvalue为初始值 miu = initvalue(1,:);%第一行为均值 v = initvalue(2,:);%第二行为变异系数 sgma = initvalue(3,:);%第三行为方差 eps = 0.1; while 1 %功能函数达到精度则退出循环,result=1

文档评论(0)

新起点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档