## 一、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敏感性分析(无目标函数)')