matlab 计算变异系数,[转载]用Matlab编的计算结构可靠指标的改进一次二阶矩法程序(验算点法)…

matlab 计算变异系数,[转载]用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…

大家好,又见面了,我是你们的朋友全栈君。

题目:编制改进一次二阶矩法计算可靠指标的程序,并给出算例,要求提供源程序,算法语言不限。

选取的算例为: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_r(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_r(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表示计算出可靠指标

if

abs(gfunc(g,xopt0)) < eps

alpha1 = alpha0;

xopt1 = xopt0;

result = 1;

break;

end

%计算alpha和新的验算点xopt

gvalue =

jacgfunc(jacg,xopt);

sgmaz =

sqrt(sum((sgma .* gvalue).^2));

alpha0 = sgma .*

gvalue / sgmaz;

xopt0 = miu – beta0

* alpha0 .* sgma;

sum1 = sum((alpha –

alpha0).^2);

sum2 = sum((xopt –

xopt0).^2);

alpha =

alpha0;

xopt =

xopt0;

%醝和验算点xi达到精度则退出循环

if sum1 < 0.001 |

sum2 < 0.001

alpha1 = alpha0;

xopt1 = xopt0;

break;

end

end

%将以上内容保存为calforbeta.m

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142942.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle 错误总结及问题解决 ORA「建议收藏」

    Oracle 错误总结及问题解决 ORA「建议收藏」ORA错误大全

    2022年5月31日
    26
  • windows服务创建工具srvany.exe介绍

    windows服务创建工具srvany.exe介绍srvany.exe介绍 srvany.exe是MicrosoftWindowsResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。 

    2022年5月20日
    95
  • js 后退刷新[通俗易懂]

    js 后退刷新[通俗易懂]history.back()和history.go(-1)都可以实现返回上一页并不刷新向要页面后退刷新使用:window.location.href=document.referrer;即可实现

    2022年7月25日
    8
  • 数据预处理无量纲化处理_统计数据的预处理

    数据预处理无量纲化处理_统计数据的预处理1.无量纲化定义无量纲化,也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。2.无量纲化方法无量纲化方法有很多,但

    2022年8月5日
    10
  • Ubuntu安装qt5_qt5安装教程

    Ubuntu安装qt5_qt5安装教程最近打算学一下QT应用程序开发,所以打算装一个QT桌面环境QtCreator,捣鼓了一阵,把电脑弄坏重装系统之后,终于安装好了,这里分享一下安装的过程

    2022年10月16日
    5
  • 软件测试的基本理论知识_软件测试基础知识整理

    软件测试的基本理论知识_软件测试基础知识整理01软件研发流程1.软件产品软件产品是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。2.软件工程软件工程,英文名SoftwareEngineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种…

    2025年7月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号