GitModel数学建模 —— 动手学高等数学

高等数学与数值计算

(一) 以微分初步知识及梯度下降算法解决最优化问题

一元函数分析

极值点函导数性态极值点函导数性态

  • 如何求某一函数 C ‾ ( n ) \overline{C}(n) C(n) 的极值点 ?
    首先需要求出其导函数 C ‾ ′ ( n ) \overline{C}'(n) C(n)的零点 n 0 n_0 n0
    判断该函数的二次导数 C ‾ ′ ′ ( n 0 ) \overline{C}''(n_0) C(n0)与0的关系:如果 C ‾ ′ ′ ( n 0 ) > 0 \overline{C}''(n_0)>0 C(n0)>0, 那么 n 0 n_0 n0 即为 C ‾ ( n ) \overline{C}(n) C(n) 的极小值点.

代码如下:
step 1:求导数

from sympy import *

n = symbols('n') # 先定义
y = 1250*(2-exp(-(n-5000)**2))

func1 = diff(y,n) # 求导数
func1

step 2:计算零点

stag = solve(diff(y,n),n)
print("该函数驻点为",stag) # 计算驻点

step 3:计算二阶导数

# 计算二阶导数
func2 = diff(y, n, 2) # 求二阶导数
func2

step 4:计算零点处的二阶导数值,验证正负

# 计算驻点的二阶导数值,验证正负
print(func2.evalf(subs = {
   n:5000}))
func2.evalf(subs = {
   n:5000}) > 0

step 5:求函数极小值

# 函数的极小值
y.evalf(subs = {
   n:5000})

抽象提炼
数学建模中 , , , 优化问题是渗透到各个方面的 , , , 小到最优参数的确定 , , , 大到最优策略的规划. 每一个优化问题都可以以如下标准形式给出 :
max ⁡ f ( x ) \max f(x) maxf(x)
s . t . { g i ( x ) ⩾ 0 , i = 1 , 2 , ⋯   , n h j ( x ) = 0 , j = 1 , 2 , ⋯   , m \mathrm{s.t.} \begin{cases} g_i(x)\geqslant 0,i=1,2,\cdots,n\\ h_j(x)=0,j=1,2,\cdots,m \end{cases} s.t.{ gi(x)0,i=1,2,,nhj(x)=0,j=1,2,,m
其中 f ( x ) f(x) f(x) 即是我们需要求最值的函数 , , , x x x 是我们用来 " " "决策 " " " 的变量. g i ( x ) ⩾ 0 , h j ( x ) = 0 g_i(x)\geqslant 0,h_j(x)=0 gi(x)0,hj(x)=0 分别是决策变量 x x x 满足的条件 , , , 即决策变量 x x x 的约束. 当决策变量 x x x 没有约束时 , , , 称为无约束优化问题.

无约束优化问题——目标函数有明确表达式,二阶以上可导,定义域离散程度不高. 往往研究对象数量范围是足够大的以至于我们可以将离散的整数视为连续的.

对于这样的简单优化问题 利用数学分析的知识可以做到精确的分析. 我们给出优化领域最经典也是最实用的判别条件.
命题1:[一阶最优化必要条件]
f ( x ) f(x) f(x) R \mathbf{R} R 上的可导函数. 若 x ∗ x^* x f f f 的极值点则
f ′ ( x ∗ ) = 0 f'(x^*)=0 f(x)=0.
其中 f ′ f' f f f f 的一阶导数.

命题2:[二阶最优化必要条件]
f ( x ) f(x) f(x) R \mathbf{R} R 上的可导函数. 若 x ∗ x^* x f f f 的极值点则设 f ( x ) f(x) f(x) R \mathbf{R} R 上的二阶可导函数. 若 x ∗ x^* x f f f 的极大 ( ( ( ) ) )值点则
f ′ ( x ∗ ) = 0 , f ′ ′ ( x ∗ ) ⩽ 0 ( f ′ ′ ( x ∗ ) ⩾ 0 ) f'(x^*)=0,{f}''(x^*)\leqslant0({f}''(x^*)\geqslant0) f(x)=0,f(x)0(f(x)0).
其中 f ′ ′ f'' f f f f 的二阶导数.
命题3:[二阶最优化充分条件]
f ( x ) f(x) f(x) R \mathbf{R} R 上的二阶可导函数. 若 x ∗ x^* x 满足
f ′ ( x ∗ ) = 0 , f ′ ′ ( x ∗ ) < 0 ( f ′ ′ ( x ∗ ) > 0 ) , f'(x^*)=0,f''(x^*)<0 (f''(x^*)>0), f

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值