单变量最优化模型 @ Wings            分类 数模
发布于 星期五, 一月 15 日, 2021 年
更新于 星期二, 七月 20 日, 2021 年

大概是我唯一能看懂的东西…

单变量最优化模型

目标

求一元函数$f(x)$的最值.

步骤

对$f(x)$求导, 令$f'(x) = 0$, 根据函数的单调性求得点$(x_0, y_0)$, 使得$y_0 = f(x)_{max}$

敏感性分析

分析模型中的常量(题目假定或者自己假定)的变化率对取得最大值的点$(x_0, y_0)$的影响, 即$x_0$和$y_0$的变化率.

一般来说, 分析的常量是在实际情况中较不稳定的(我们假设他是常量, 可实际上他不是常量, 所以需要分析).

$x$ 对 $z$ 的敏感性

将常量当成一个变量$z$, 带进$f'(x) = 0$并解得$x = g(z)$.

设$x, z$的变化值分别为$\Delta x, \Delta z$, 那么变化率分别是 $\frac{\Delta x}{x}, \frac{\Delta z}{z}$, 两式相比, 并令 $\Delta z \to 0$, 就得 $x$ 对 $z$ 的敏感性了. 用$S(x, z)$ 表示, 有:

$$S(x, z) = \lim_{\Delta z \to 0}\frac{\frac{\Delta x}{x}}{\frac{\Delta z}{z}} = \frac{dx}{dz} \cdot \frac{z}{x}$$

分析某点$(x_0, z_0)$处的敏感性, 即求

$$S(x_0, z_0) = g'(z_0) \cdot \frac{z_0}{x_0}$$

$y$ 对 $z$ 的敏感性

先将 $x = g(z)$ 代入$y$, 得到 $y = h(z) = f(g(z))$, 然后和上面一样, 求

$$S(y_0, z_0) = h'(z_0) \cdot \frac{z_0}{y_0}$$

鲁棒性分析

咕咕咕, 没太看懂. 好像重在分析过程而不是方法和结论, 所以无法高度总结?

例题

A pig weighing 200 pounds gains 5 pounds per day and costs 45 cents a day to keep. The market price for pigs is 65 cents per pound, but is falling 1 cent per day. When should the pig be sold?

五步求解法

1. 提出问题

1.1 列出变量以及合适的单位

符号 含义 单位
$t$ 饲养天数 $d$
$w$ 猪的重量 $lbs$
$p$ 猪肉价格 $\$ / lb$
$C$ 饲养猪t天的花费 $\$$
$R$ 卖出猪的收入 $\$$
$P$ 卖出猪的利润 $\$$

注意不要列出常量, 如猪肉价格的下降率和猪体重增长率

1.2 作出假设, 并列出等式和不等式

这道题中假设已经全给出来了, 只需要列式即可

$$ \begin{aligned} w &= 200 + 5t \newline p &= 0.65 - 0.01t \newline C &= 0.45t \newline R &= pw \newline P &= R - C \newline t &\ge 0 \end{aligned} $$

1.3 明确目标

最大化$P$

1.4 检查变量

把目标变量$P$一步一步代, 看最后是不是关于$t$的函数

2. 选择数学模型

显然我们要最大化$P$, 模型就是单变量最优化模型.

3. 套模型

把变量一步步代入, 得到$P = (0.65 - 0.01t)(200 + 5t) - 0.45t$. 令$x = t, y = P$, 有

$$f(x) = (0.65 - 0.01x)(200 + 5x) - 0.45x, x \ge 0$$

4. 用模型的求解步骤求解实际问题

对$f(x)$求导, 得到

$$f'(x) = \frac{8-x}{10}$$

令$f'(x) = 0$, 解得$x = 8$, 即 $f(x)$ 在$[0, 8)$递增, 在$(8, +\infty)$递减, 所以 $x = 8$ 时, $f(x)$ 取得最大值$f(x)_{max} = 133.20$.

5. 回答问题

应该饲养$8$天, 能够获得最大利润$\$133.20$

敏感性分析

题目在这个模型中假定猪肉的价格是每天减少$\$0.01$的, 但是现实生活中减少的价格不可能是一个定值. 所以我们有必要分析这个值对我们的结果的影响.

设$r$为每天猪肉价格的减少量, 单位$\$/d$, 于是有

$$p = 0.65 - rt$$ $$\therefore y = f(x) = (0.65 - rt)(200 + 5x) - 0.45x$$

对$f(x)$求导, 找到最大值点:

$$f'(x) = -\frac{2(25rx + 500r - 7)}{5}$$ $$f'(x) = 0 \Longrightarrow x = \frac{7 - 500r}{25r}$$

要求 $$S(x, r) = \frac{dx}{dr} \cdot \frac{r}{x}$$

先求 $$\frac{dx}{dr} = \frac{-7}{25r^2}$$

代入当前假定的点$r = 0.01$, 有

$$\frac{dx}{dr} = -2800$$

同理, 代入当前假定点$r = 0.01$和模型求出来的最优点$x = 8$, 得到

$S(x, r) = -2800 \cdot \frac{0.01}{8} = \frac{-7}{2}$

这个结果表示, 如果$r$增加$2%$, 那么我们选的点$x$将减小$7%$.

同理, 猪一天的增长量也是一个不固定的值, 并且会对我们的结果产生影响. 所以我们也用同样的方法对增长率$g$作敏感性分析.

过程略.

$$S(x, g) = 3.0625$$

这个结果表示, 如果$g$增加$1%$, 那么$x$增加大约$3%$.

我们单知道决策变化还不够, 还要知道结果的变化, 也就是$y$, 所以还要计算$S(y, g)$和$S(y, r)$

计算$S(y, g)$的话, 需要用$g$把$x$代换, 得到方程$y = f(x(g))$, 然后用上面的方法求$S(y, g)$

过程略, 结果是

$$S(y, g) = 0.17$$

这个结果表示, 如果$g$增加$10%$, 那么$y$将会增加$1.7%$, 也就是利润将会增加$1.7%$.

通常我们不需要对所有变量进行敏感性分析, 只需要对最不稳定的一个或几个进行分析即可. 书上认为$g$比$r$不稳定的多, 所以没有作$y$对$r$的分析.

鲁棒性分析

以上假设是$p$和$w$对$t$的线性函数, 但现实生活中, 猪不可能无限长胖, 价格也不可能跌到负数. 所以我们用$p(t)$和$w(t)$来重新表示这个函数, 那么利润就是$P = pw - 0.45t$. 要求$P$最大的点, 就对$P$求导, 令导数等于零, 得到

$$p’w + pw' = 0.45$$

这个等式的左边是利润的增长量, 右边是饲养一天的花费, 结果表明了, 当利润增长量和饲养一天的花费相同时, 就是卖出的最佳时机.

在较短的时间内(如一周), 可以认为$p$和$w$是对时间的线性函数. 所以更好的做法是每隔一周重新用这个模型算一遍.

注意

敏感性分析和鲁棒性分析重在过程, “分析"不是"结论”, 并且要根据分析提出一些建议(可能?).

参考资料

Mark M. Meerschaert - Mathematical Modeling-Academic Press (2013)

留下昵称和邮箱, 可在第一时间获悉回复通知哦~

2021 FLAG

  • 找个妹子
  • 进计科
  • XCPC拿块金牌
  • 补全算法知识, 整全板子
  • 学会Web开发相关知识
  • 在服务器上搭建电子书库
  • 写个游戏并上线
  • 能弹一首曲子
  • 写首完整的曲子
  • 练习悠悠球

个人简介

我叫 Wings, 来自江西上饶, 目前人在西安, 是西电的一名学生.

常以 WingsWingsZengWingsWings的ID在各大小网站上游走, 一般来说, Wings不是我 😔, WingsZeng 一定是我 😊.

热爱算法, 喜欢钻研各种计算机技术.

业余爱好广泛, 只要不是文化课基本上都感兴趣😏.

开发/项目经历

  1. Android游戏 小墨滴的复仇 (弃坑)
  2. Android游戏 Circle Run (弃坑)
  3. Windows游戏 Snague (可能弃坑了吧)
  4. Python后端 Fathy' (可能弃坑了吧)

to be continued

教育经历

时间 学历 学校
2008-2014 小学 上饶市第十二小学
2014-2017 初中 上饶市第四中学
2017-2020 高中 上饶市第一中学
2020-2024 本科 西安电子科技大学
to be continued

比赛/竞赛经历

太久远太小的记不到了…

  1. 2017 国学竞赛初赛江西 没有分数或排名 二乙
  2. 2018 NOIP提高 258 省二
  3. 2019 CSP-S江西专场 145 省二
  4. 2019 数学竞赛初赛 70 没排名 (复赛打铁qaq)
  5. 2020 Gitee|Python贪吃蛇魔改大赛 可能是第四? 二等奖
  6. 2020 西电ACM训练基地熊猫杯 第四 银牌
  7. 2020 西安三校微软学生俱乐部Hackathon 和二等奖最后一名差0.5分 三等奖
  8. 2020 西电星火杯 三等奖
  9. 2020 西电ACM新生赛 第九 金牌
  10. 2020 ICPC 亚洲区域赛 济南站 132名 铜牌
  11. 2020-2021 第二届全国大学生算法设计与编程挑战赛(冬季赛) 924名 铜牌 (别骂了别骂了)
  12. 2020 ICPC 亚洲区域赛 昆明站 打星
  13. 2020 ICPC Asia-East Continent Final 签完到溜 打铁
  14. 西电"智能星"第一届自动驾驶小车比赛 第五 优胜奖|极速奖 本来可以冠军的别骂了别骂了
  15. 2021团体程序设计天体赛(CCCC) 个人二等奖
  16. 2021 西电 miniL CTF 优胜奖
  17. 2021 西电ACM校赛 第9名 金牌
  18. 2021 西电数模校赛 二等奖
  19. 2021 第15届IEEE 第48名
  20. 2021 CCPC 桂林站 打星

to be continued

爱好

技术

  • 算法
  • 独立游戏开发

游戏

  • Minecraft
  • Black Survival
  • I Wanna
  • Celeste
  • Life is Strange
  • Need for speed

运动

  • 篮球
  • 桌球
  • 乒乓球
  • 羽毛球
  • 慢跑

音乐

  • 吉他
  • 词曲
  • 流行

玩具

  • 魔方
    • 三阶速拧
    • 三阶盲拧
    • 高阶
  • yoyo球

追星

  • VAE
  • Benedict Cumberbatch