数学建模灵敏度分析

数学建模——模型灵敏度分析

作者:Peter韓
资料参考:数学建模老哥

1 什么叫模型灵敏度分析

灵敏度分析,是研究与分析一个系统(或模型)的状态或输出变化对系统参数或周围条件变化的敏感程度的方法。

  • 改变模型的某个参数,引起这个模型输出的变化的程度

eg. 一头牛重200斤,每天增重5斤,饲料每天花费45元。牛的市场价是每斤65元,但目前行情不好,每天下降1元,求出这头牛的最佳销售时间

这是一个简单的单变量优化问题。求这头牛的最佳销售时间,就是求卖出价格最高的时间,为了求出这个时间,我们假设:销售时间t,牛的重量w,牛的价格p,饲料花费C,卖出牛的收益R,净收益P

于是有,P=R-C,其中R=P*w,C=45t,即得到的净收益模型如下:
P=(65-t)(200+5t)-45t …(1)
容易得出,当t=8时,P取最大值13320元。

”每天下降多少块钱“是由市场决定的不易非常好地预估。在此题中该量变化的可能性最大,应当着重分析。

  • 常数变量容易产生变化且不好预估的应当是灵敏度分析的重点

其实,大多数情况下,问题到这里就已画上句号。但是在现实生活中,稍微细心一点,我们会发现在上述模型的参数中,牛的重量、当前市场价格、每天饲料钱是很容易测量的,即确定性较大,但牛的生长率和市场价格的下降率两个参数不是那么好确定,例子中虽然规定了市场价格下降r=1元/天,但实际中,每天的r都是不一样的。

  • 灵敏度分析不必考虑所有,只关心最重要的几个因素即可

于是,我们会有一个疑惑——是不是对于所有的市场价格下降率,这个模型都适用?
为了消除疑虑,我们选取原下降率周围的几个数 r=0.8, 0.9, 1.0, 1.1, 1.2。根据上述公式(1),分别得出t=15, 11, 8, 5, 3。

  • 这里数据的变动越小,反映的是模型稳定程度更高,模型的效果更好。

灵敏度分析,就是将市场价格下降率【公式】作为位置参数,计算最佳卖出时间t和r的关系。这时候,将例子中的”每天下降1元“改为”每天下降r元“,净收益模型就变为:
P=(65-rt)(200+5t)-45t
P对t求导,令dP/dt=0,得:
t=(28-20r)/r …(2)
至此,我们已经得到了一种灵敏性关系——r-t关系,绘制r-t关系图(递减、下凸的曲线,其中r=1.4左右时,t_best值取0)
公式(2)和关系图的意义在于——作为牛贩子,我能确定一个r-t关系,确保我在不同r下,都能确定最佳卖牛时间。当01.4时,最佳卖牛时间t<0,也就是说,需要当天就把牛卖掉,这时候饲养牛已经没有任何经济价值了。

实际使用时,我们更多地将这种灵敏性关系表示成相对改变量百分比改变的形式。
例如,r的10%下降,导致了t的38%的增加。如果t的改变量为Δt,则t的相对改变量为Δt/t,百分比改变量为100%*Δt/t,则相对改变量的比值为Δt/t与Δr/r的比值,令Δr→0由导数定义得:

(Δt/t)/(Δr/r)→(dt/dr)*(r/t)

业内,称极限值(dt/dr)*(r/t)t对r的灵敏性,记作S(t,r)。

仍以上述例题为例,S(t,r)=(dt/dr)(r/t)=(-28/r^2)(r/t)=-28/rt,又已知当r=1时,t=8,故S(t,r)=-28(1*8)=-3.5

对于某些模型而言,本身并不能做出合适的函数(也不能画出对应的函数图像),这时可以考虑将区间内的数据取得很密,数据与数据之间的间隔很小,再借助拟合的相关知识用回归拟合(尽量使用非线性方程拟合,不推荐多项式拟合)的方法得出方程,进而采用上述的步骤求解。

2 常见的需要做灵敏度分析的模型

1 神经网络模型,隐层神经元数量的变化对结果的影响

2 遗传算法/粒子群算法:初始种群规模的大小

3 优化模型:往往需要对决策变量参数做灵敏度分析

4 预测模型:针对类似于出生率、死亡率、气温等数据做灵敏度分析(题目往往已给出相关数据)

5 评价类模型:对评价指标中表达为变量的指标进行考虑

3 灵敏度分析的基本流程

一般灵敏度分析主要有两种思路:

  • 直接改变参数值评估结果的变化(适合求最优值-比如上述老汉卖牛的例子)
  • 改变参数值,评估因变量随自变量的变化(适合分析数变动)

针对第一条:

A 首先寻找出待分析的模型参数,将其设置为变量s

B 将其代入到原始方程中,得到新的关系方程,并求导,得出变量x与s的关系

C 绘制x与s的方程,若斜率较小则灵敏度低,稳定性强

D 计算(dt/dr)*(r/t),即可得到最终结果

针对第二条:

A 首先寻找出待分析的模型参数,将其按照固定的间隔变动

B 评估自变量与因变量的变化情况

C 若变动幅度较小,则表示灵敏度差、稳定度高

4 灵敏度分析的注意事项

(1)灵敏度分析不需要对所有模型都做

(2)灵敏度分析针对的是常量但能产生变动的数据

(3)灵敏度分析最好进行绘图描述,更为直观

(4)灵敏度分析一般放在模型优缺点评价前面

(5)灵敏度分析无需占用页面过多,最多一页

(6)灵敏度分析要结合实际的演算,请勿语文建模

你可能感兴趣的:(学习)