您的位置:首页 > 游戏 > 手游 > 【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】

【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】

2024/9/21 20:21:03 来源:https://blog.csdn.net/qq_29736627/article/details/141098381  浏览:    关键词:【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】

【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】

一、FAST(Fourier Amplitude Sensitivity Test)

FAST(Fourier Amplitude Sensitivity Test)傅里叶振幅灵敏度测试是一种用于敏感性分析的方法,它可以评估模型输入参数对输出结果的影响。FAST方法通过将输入参数的变化转换为傅里叶级数,并分析不同频率下的响应来确定参数对输出的敏感程度。

本文供了FAST的应用示例。FAST使用模型输出的傅里叶分解来近似基于方差的一阶灵敏度指数。

分为以下步骤:

Step 1: 建立模型,定义输入范围

%参数数量:
M    = 7 ; 
% 参数范围:
xmin=[137	0	0	160	4.4	708	650];%各个参数下限
xmax=[374	193	260	240	19 1049.90	902];%各个参数上限
% 参数分布:
for i=1:M; DistrPar{i} = [ xmin(i) xmax(i) ] ; end
% 参数名称:
X_labels = {'X1','X2','X3','X4','X5','X6','X7'} ; 
% 定义函数:
%函数采用@bpfun ;

Step 2: FAST近似一阶灵敏度指数

% FAST采样
[X,s] = FAST_fun(DistrFun,DistrPar,M);

% 运行模型并计算采样参数集的模型输出:

Y = myfun(X) ;

% 评估指标:

Si_fast = FAST_indices(Y,M) ;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

上面使用的“FAST_fun”函数会自动将样本量设置为给定输入数量M的最小值

N_fast = length(Y) ;
 %% 绘图figure()bar(Si_fast);xlabel('输入变量')ylabel('评价指标')legend('S')title('FAST敏感性分析(无目标函数)')

在这里插入图片描述

Step 3:收敛性分析

评估使用更多的样本,FAST估计值是否会改变:
即由原来的的样本数npop变成NNfast
npop:npop+500:npop+1000

 %% 绘图figure()bar([Si_fast_conv']);xlabel('输入变量')ylabel('评价指标')legend('S1-1th','S2-1th','S3-1th')title('FAST敏感性分析(无目标函数)')

在这里插入图片描述

二、VBSA(Variance-Based Sensitivity Analysis)

VBSA(Variance-Based Sensitivity Analysis)是一种基于方差的敏感性分析方法,用于评估模型输入参数对输出结果的影响。它通过计算输入参数的方差来确定其对模型输出的敏感程度。VBSA通常包括第一阶敏感性指数和总效应敏感性指数,可以了解每个参数对输出变量变化的贡献度以及参数间的相互作用 。

Step 1: 建立模型,定义输入范围

%参数数量:
M    = 7 ; 
% 参数范围:
xmin=[137	0	0	160	4.4	708	650];%各个参数下限
xmax=[374	193	260	240	19 1049.90	902];%各个参数上限
% 参数分布:
for i=1:M; DistrPar{i} = [ xmin(i) xmax(i) ] ; end
% 参数名称:
X_labels = {'X1','X2','X3','X4','X5','X6','X7'} ; 
% 定义函数:
%函数采用@bpfun ;

Step 2: VBSA一阶与总效应灵敏度指数

% LHS采样
X = VBSA_fun(DistrFun,DistrPar,M);
% VBSA重采样
[ XA,XB ,XC] = vbsa_resampling(X) ;

% 运行模型并计算采样参数集的模型输出:

 [YA,YB ,YC ]= myfun([ XA,XB ,XC]) ;

% 评估指标:

[Si_VBSA,ST_VBSA] = VBSA_indices([YA,YB,YC],M) ;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

上面使用的“VBSA_fun”函数会自动将样本量设置为给定输入数量M的最小值

N_VBSA = length(Y) ;
 %% 绘图figure()bar([ Si' STi' ]);xlabel('输入变量')ylabel('评价指标')legend('S','ST')title('VBSA全局敏感性分析(无目标函数)')

在这里插入图片描述

Step 3:收敛性分析

评估使用更多的样本,FAST估计值是否会改变:
即由原来的的样本数npop变成NNfast
npop:npop+500:npop+1000

 %% 绘图figure()bar([Si_NBSA_conv' ]);xlabel('输入变量')ylabel('评价指标')legend('S1-1th','S2-1th','S3-1th')title('NBSA敏感性分析(无目标函数)')figure()bar([ST_NBSA_conv' ]);xlabel('输入变量')ylabel('评价指标')legend('ST1-1th','ST2-1th','ST3-1th')title('NBSA敏感性分析(无目标函数)')

在这里插入图片描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com