【MATLAB第107期】基于MATLAB的Morris局部敏感性分析模型(无目标函数)

【MATLAB第107期】基于MATLAB的Morris局部敏感性分析模型(无目标函数)

更正: 局部敏感性分析方法

一、原理介绍

1.基本原理:
Morris方法采用概率均匀抽样的方式估计每个模型输入因子在输出结果中的重要性,通过比较系统在不同输入参数值上的输出结果变化来度量每个参数的敏感性 。

该方法的原理与局部敏感性分析中的“一次变化一个因子”方法相似,通过计算所谓的基本效应(elementary effect, EE)来衡量每个参数对模型输出的全序影响。
如式(1)所示, 对初始状态进行多次反复采样, 求各次采样的基效应,
11并用式(2)求其均值 μi, 衡量每个参数对模型输出的全序影响。
在这里插入图片描述
在具体实施过程中,Morris方法通过对每个输入变量进行随机抽样(本文使用LHC抽样,并提供多种抽样方法如sobol /halton),并在这些抽样点上加上随机扰动来分析输入变量对输出的影响。计算每个输入变量的平均值和标准差,然后计算变量在不同取值下的输出变化率。通过比较各个变量的输出变化率来确定其对输出的敏感性。

Morris方法将每个输入变量分为几个等级,通过随机选取初始值、加上随机扰动得到新值、计算新值对应的输出值及其变化量,重复这一过程以获得一定数量的变化量,再计算这些变化量的平均值和标准差。最终,根据变量的平均变化量和标准差来计算变量的元素敏感度和总体敏感度,从而确定不同输入变量的相对重要性。

2.算法步骤:

进行参数采样,通常采用拉丁超立方抽样方法以保证参数的均匀分布 。
对每个候选参数向量进行扰动计算,即改变其中一个参数的值按照一定的步长。
计算扰动后的输出值,并使用所谓的“元距离”(Elementary Effect)来度量输出结果的变化 。

重复计算以提高结果的准确性,多次重复上述步骤以获取一组灵敏度度量值 。
灵敏度度量:Morris方法通过计算每个参数的平均元距离和标准差来评估参数的敏感性,这些度量值反映了参数变化对输出结果的影响程度 。

二、morris方法与sobol方法对比

Morris方法和Sobol方法都是全局敏感性分析的常用技术,它们各自有不同的特点和应用场景:

Morris方法:上文已介绍

Sobol方法:Sobol方法基于方差分解,通过计算每个参数或参数组合对输出方差的份额来确定其对输出的敏感性。这种方法可以识别参数之间的相互作用,并量化它们对输出总方差的贡献。Sobol方法通常采用蒙特卡洛随机采样法生成样本 。

两种方法的主要差异包括:

抽样方法:Morris方法通常使用分层抽样,如拉丁超立方抽样,而Sobol方法则多采用随机采样。
计算成本:Morris方法通常计算成本较低,适合初步筛选重要的输入参数,而Sobol方法计算成本较高,但可以提供更全面和深入的敏感性分析。
结果解释:Morris方法的结果较容易解释,通常使用均值和标准差来表示参数的敏感性;Sobol方法则提供了一阶和总效应指数,可以区分参数的独立影响和相互作用。
适用性:Morris方法适用于模型输入参数数量较多的情况,而Sobol方法适用于需要深入理解参数影响和参数间相互作用的情况。

三、无目标函数实现思路

借鉴往期文章, 如用BP神经网络对输入与输出数据进行非线性函数拟合,通过LHC函数抽样参数,调用BP训练模型进行计算。

nfac = 7;  % 输入参数数量  
npoint = 1000;  % 每个参数的采样点数 
VarMin=[137	0	0	160	4.4	708	650];%各个参数下限
VarMax=[374	193	260	240	19 1049.90	902];%各个参数上限

四、代码展示

在这里插入图片描述

clear all
% 调用Morris敏感性分析函数  
nfac = 7;  % 输入参数数量  
npoint = 1000;  % 每个参数的采样点数 
VarMin=[137	0	0	160	4.4	708	650];%各个参数下限
VarMax=[374	193	260	240	19 1049.90	902];%各个参数上限
[mu, order] = morris(@fun, VarMin, VarMax,nfac, npoint);  
  
% 输出结果  
result=[ order' mu'];
result_final=sortrows(result,1)
% 输出结果  
disp('敏感度指数(降序排列):');  
disp(mu);  
disp('参数顺序(按敏感度):');  
disp(order);
figure()
 bar(result_final(:,2));
 xlabel('输入变量')
  ylabel('评价指标')
 title('morris全局敏感性分析(无目标函数)')
function [mu, order] = morris(model_function,VarMin, VarMax,nfac, npoint)  
    % 1.设置参数变化量  
    % 2.初始化输出矩阵  
    % 3.LHC生成随机采样点  
    % 4.计算基础输出  
    % 5.计算每个参数的基本效应  
    % 5.1正向变化  
    % 5.2负向变化  
    % 6.计算敏感度指数  

五、代码获取

1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,回复“107期”以及相应指令,即可获取对应下载方式。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MATLAB Morris全局敏感性分析方法是一种用于评估模型输入参数对输出结果的影响程度的方法。它通过将参数值修改为不同的水平,并记录输出结果的变化来分析参数的重要性。 该方法基于Morris采样算法,该算法通过扰动输入参数的取值来快速估计敏感性。在MATLAB中,通过使用Global Sensitivity Analysis Toolbox(全局敏感性分析工具箱)中的函数来实施Morris全局敏感性分析。 这个方法有以下几个特点: 1. 不要求模型的全局数学函数形式或概率分布假设,因此适用于各种复杂模型。 2. 该方法能够同时处理连续变量和离散变量。 3. 使用Morris采样算法,可以在较少的采样次数下得到较为准确的敏感性指标。 实施Morris全局敏感性分析的步骤如下: 1. 选择感兴趣的输入参数和输入范围。 2. 根据选择的参数范围,选择合适的参数取样点数和取样水平数,令参数个数为p,取样点数为n,取样水平数为r。 3. 利用Morris采样算法生成取样点,并结合模型运行,记录相应输出结果。 4. 通过对取样点间距的排序,分析参数对模型输出结果的主要影响。 5. 根据Morris全局敏感性指标,计算每个参数的敏感性,指标越大表示该参数对输出结果的影响越大。 通过Morris全局敏感性分析,可以帮助研究人员确定模型中最重要的参数,从而提供有效的决策依据。此外,MATLAB还提供了其他一些全局敏感性分析方法,如Sobol分析和FAST分析,用于更全面地评估参数对模型输出的敏感性。 ### 回答2: Morris全局敏感性分析是一种常用于评估模型的输入变量对输出结果的影响程度的方法。它通过对输入变量进行随机扰动,观察输出结果的变化,从而判断不同输入变量的敏感性程度。 Matlab中提供了用于执行Morris全局敏感性分析的工具箱,可以帮助研究人员进行这种分析。这个工具箱提供了一系列函数,可以根据用户给定的输入参数范围和分辨率,生成一组随机采样点,并计算相应的模型输出。 该工具箱中最重要的函数是"Morris"函数,它可以执行Morris分析并生成相应的结果。这个函数需要输入用户自定义的模型函数,以及模型的输入参数范围、分辨率等信息。在执行分析后,"Morris"函数将返回包含敏感性指数和其它统计数据的结果结构体。 结果结构体包含几个重要的字段,包括元素敏感性(ElementaryEffect)、总体敏感性(TotalEffect)和标准差等。元素敏感性表示每个输入参数对输出结果的影响程度,总体敏感性则是所有输入参数的元素敏感性的平均值。标准差是用于评估结果的稳定性和可靠性的指标。 使用Matlab进行Morris全局敏感性分析,研究人员可以得到各个输入参数的敏感性指数,从而判断它们对模型输出结果的重要性。这些指数可以帮助研究人员识别关键的输入参数,优化模型的设计和参数选择,提高模型的可靠性和准确性。 ### 回答3: MATLAB Morris全局敏感性分析方法是一种用于评估输入参数对系统输出结果的敏感性的统计方法。它基于Morris采样设计和元分析,适用于单一输出的低维和中等维度的非线性、非光滑和复杂模型。 该方法通过随机地变化输入参数值,观察系统的输出结果,从而量化每个输入参数对系统输出的影响程度。具体步骤如下: 1. 设计采样:首先,根据输入参数的分布情况,生成一组随机采样点。采样点的数量通常较小,以降低计算成本。 2. 构建采样路径:对于每个采样点,按照某种规则选择相邻的参数值进行变化。采样路径主要用于评估参数的一阶效应。 3. 确定输出:根据采样路径和参数值,计算系统的输出结果。输出可以是某个目标函数的取值,也可以是系统的响应曲线。 4. 分析敏感性:使用Morris敏感度指标来评估参数的敏感性Morris敏感度指标包括一阶和总方差敏感度,分别反映参数的线性和非线性输入效应。 5. 元分析:对于较小的采样点数量,重复多次采样并计算敏感度指标的均值和置信区间,以提高可靠性。 MATLAB Morris全局敏感性分析方法的优点是简化了参数敏感性分析的复杂度和计算工作量,适用于中等维度的模型。然而,由于采样点数量较少,可能会存在评估结果的不确定性。因此,在实际应用中,需要结合其他敏感性分析方法进行综合评估,以获得更准确的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值