敏感度分析(Sensitivity Analysis)是一种系统性的方法,用于研究模型输入参数的变化如何影响模型的输出或结果,其主要目的是:
识别对模型结果影响最大的关键参数
评估模型的稳定性和可靠性
了解参数不确定性对模型预测的影响
指导模型改进和数据收集工作
敏感度分析在工程、金融、环境科学和生物医学等多个领域有着广泛的应用。
对于数值计算与仿真而言,敏感度分析在模型的优化、简化以及提高可靠性等方向有着广泛的应用。本文将主要介绍敏感度分析的方法、工具以及在数值计算和仿真中的应用。
1. 敏感度分析的方法
敏感度分析(Sensitivity Analysis)的方法在依据不同的标准进行划分时(应用场景、分析方式或模型复杂度等)会有所不同,从技术的特点和实现方法的角度上可划分为以下两大类:
局部敏感度分析
全局敏感度分析
1.1 局部敏感度分析
局部敏感度分析(Local Sensitivity Analysis) 是一类分析方法的统称,包括一系列分析技术,这些技术的共同特点是关注输入变量或参数在某一特定点的微小变化对模型输出的影响,但具体计算方式和应用场景可能会有所不同。
局部敏感度分析通常假设其他输入变量保持固定,其核心特点是:
局部性:分析的是输入变量在某个特定点附近的敏感度,而不是整个输入范围的全局效应。
确定性:通常基于模型的数学公式或仿真,明确计算一个点处的敏感性。
微分性:敏感度通常通过计算输入变量的偏导数(或有限差分)来得到。
其基本原理是首先选择模型的参考点(通常是模型的工作点或期望状态),接着在基准点附近对单个或多个参数引入微小变化,最后观察模型输出的响应。
局部敏感度分析的主要方法有:
一次一个参数变化法(OAT)
微分法
局部线性化方法
1.1.1 OAT方法
OAT方法是局部敏感度分析中的一种具体实现方法,通过逐个改变每个输入参数(保持其他参数固定)来评估其对输出的局部影响。
OAT方法的核心思想是一次只改变一个输入参数,通过这种方式,OAT方法可以分析单个参数对模型输出的敏感度,常常用于简单模型或当输入参数之间没有明显交互时,可以较为清晰地揭示每个输入对输出的独立影响。
OAT方法的数学原理是,假设令输入变量为 X=[X1,X2,…,Xn]X = [X_1, X_2, \dots, X_n]X=[X1,X2,…,Xn],输出为 Y=f(X)Y = f(X)Y=f(X),对于变量 XiX_iXi,其敏感性可表示为:
SXi=f(X1,…,Xi+ΔXi,…,Xn)−f(X1,…,Xi,…,Xn)ΔXi S_{X_i} = \frac{f(X_1, \dots, X_i + \Delta X_i, \dots, X_n) - f(X_1, \dots, X_i, \dots, X_n)}{\Delta X_i} SXi=ΔXif(X1,…,Xi+ΔXi,…,Xn)−f(X1,…,Xi,…,Xn)
OAT方法的一般步骤是:
确定输入变量的基线值(一个代表性点)。
逐一改变每个输入变量一个小幅度(例如 ±5%),保持其他输入变量固定。
记录模型输出的变化。
计算敏感度指标,例如:输出的绝对变化量、相对变化量、弹性系数等。
OAT方法的优点是:
简单直观,应用范围广。
适用于黑箱模型和复杂系统。
OAT方法的局限性:
只考虑了单一变量的变化,忽略多个参数之间的交互作用。
综上所述,OAT方法的结果只能反映在特定条件下的局部敏感度,而不能提供模型全局行为的全面理解,对于复杂的、存在多重交互效应的模型,OAT方法可能无法提供足够的信息,需考虑全局敏感度分析方法来获取更全面的结果。
1.1.2 微分法
微分法(Partial Derivative Method) 是局部敏感度分析中最常用的一种方法,它通过计算模型输出对每个输入变量的偏导数来衡量输入变化对输出的影响。这个方法适用于可微的模型,通常用于分析输入变量在某个特定点附近对模型输出的局部影响。
微分法的核心思想是计算每个输入变量对模型输出的导数,该导数代表了输入变量在该点微小变化时,输出的变化速度或灵敏度。简单来说,偏导数可以告诉我们“当某个输入发生微小变化时,输出会发生多大的变化”。
微分法的数学原理是,假设有一个模型 Y=f(X1,X2,…,Xn)Y = f(X_1, X_2, \dots, X_n)Y=f(X1,X2,…,Xn),其中:
YYY 是模型的输出,
X1,X2,…,XnX_1, X_2, \dots, X_nX1,X2,…,Xn 是模型的输入变量。
微分法的目的是计算每个输入变量 XiX_iXi 对输出 YYY 的影响,通常通过计算偏导数来实现:
SXi=∂Y∂Xi S_{X_i} = \frac{\partial Y}{\partial X_i} SXi=∂Xi∂Y
SXiS_{X_i}SXi 表示输入变量 XiX_iXi 对输出 YYY 的局部敏感度。
偏导数 ∂Y∂Xi\frac{\partial Y}{\partial X_i}∂Xi∂Y 表示当 XiX_iXi 增加一个非常小的量时,输出 YYY 的变化速度。
如果模型是多输出的(即 YYY 是多个输出的向量),则可以为每个输出计算对应输入的偏导数。
微分法的一般步骤为:
选择基准点:选择一个特定的输入