数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 230|回复: 0

有启发:一种很巧妙的数学求极值方法,看看牛顿大师是如何思考极值问题的?

[复制链接]
发表于 2024-3-22 09:21 | 显示全部楼层 |阅读模式
有启发:一种很巧妙的数学求极值方法,看看牛顿大师是如何思考极值问题的?

原创 Masir123 科学羊 2024-02-02 07:20 广东



大家好,我是科学羊,这里是数学专栏第 2 季第 25 篇。

今天,我们来聊聊微积分背后另一个重要的应用——求极值!我想说这个方法真是太有趣了...

求极值,实际是每年考研数学必考的内容,而且也是一个特别简单又特别实用的“送分题”,且看本篇解读。

我记得我们高中所学数学的求极值问题很多是基于公式,或者通过几何法,当然这些都是纯数学以实际函数来求解的。

而高等数学在现实生活中的广泛应用之一是最优化问题的处理。比如,备受瞩目的机器学习为例,其本质是对目标函数进行最优化处理。

此外,在金融领域的结构化投资产品、商业博弈论,乃至企业管理中的各类规划,都涉及不同形式的最优化。

何为最优化?

就是第一名和倒数第一名!

也就是说,最优化的最基本形式,是大家熟悉的求函数的最大值或最小值。由于这两种问题本质相同,解法类似,我们以寻求最大值为例来探讨。

对有限集合而言,寻找最大值相对简单,例如在计算机科学中众多寻找最大值的算法。

这些算法核心就是进行大小比较。若一个元素在直接或间接比较中始终大于其他所有元素,那么它便是最大值。


FindLargest 计算机算法

然而,在无限集合的函数中,这种方法就不再适用,因为不可能检验所有可能性。

如何解决呢?中学数学便开始引入解题技巧。

那么,我们通常如何求解最大值呢?



一个经典技巧是求解抛物线的最大值。

例如,如上图,考虑函数 y = -x^2 + 4x ,其最大值是多少?

从直觉上,我们可以预见到这个函数具有最大值,原因有二:

一是无论 x 取何值,y 总是有限数而非无穷,一定有个定值;

二是当 x 趋于 ∞ 无穷时,y 趋向于负 -∞ 无穷。因此,我们推测函数在中间某处达到最大值,但具体位置难以确定。

很多人会尝试代入几个数值。

例如,x=0 时,y=0 ;x=1 时,y=3 ;x=2 时,y=4 ,但之后 y 开始减小。

那么我们能断定 y 的最大值是 4 吗?

通过绘制函数图像,我们可以看到最大值约为 4 。

但数学要求我们证明,而非我们猜测和观察。

在中学里,我们学习了一种技巧来解决这类问题,如下:

解:由  ,可得,

很明显, 。4 是常数,不随 x 变化。

因此,y 的最大值出现在 -(x-2)^2 为零时,此时 y=4 。

这种技巧能解决一类抛物线问题,但面对其他类型问题时,就显得无能为力。



例如,函数 y = x^3 - 12x^2 + 4x + 8 在 0 至 15 区间的最大值或最小值问题,传统方法就不适用了。

因此,仅凭掌握某种技巧获得高分,并不足以引以为豪,因为这些经验难以推广解决普遍性问题。

在伽利略之前,人类面对的最优化问题并不多。


弹道轨迹就是一个抛物线

但到了伽利略和开普勒时代,物理学和天文学领域的最优化问题逐渐增多,如行星运动的近日点和远日点距离、弹道距离、望远镜透镜曲率与放大倍数等。


1. 在远日点的行星。2. 在近日点的行星。3. 太阳。图示未依照比例,来自 WIKI

这要求人们系统地解决最优化问题,而不仅依赖技巧。这一挑战最终由牛顿接手。

那么,牛顿是如何求解最大值的呢?

牛顿的伟大之处在于,他没有将最优化问题视为简单的数量大小比较问题,而是将其视为研究函数动态变化趋势的问题,这一点至关重要。

让我们从求抛物线最高点的问题来理解牛顿的思想,为了便于理解,我们关注最高点附近的变化。

我们知道,曲线瞬间变化的速率即为该点切线的斜率,也就是导数。为了加深理解,我们看看先下面这个抛物线在最高点附近的斜率变化图。


抛物线在最大值附近切线斜率(即导数)的变化,图片来自《吴军数学通识讲义》

在图中,上半部分是前述抛物线,横轴被放大了一倍,以更清楚显示曲线变化细节。

各色曲线代表不同点的切线。可以看出,从左到右,抛物线由快变慢,至平稳,最后下降。

切线由陡峭变平缓,最高点处变为水平线,随后斜率转负。

量化分析显示,在 x=0 处,切线斜率(导数)为 4 。

到 x=0.5 时,斜率减至 3 ,然后依次减至 2 ,1 ,0 ,-1 ,-2 等。

因此,若将导数函数绘入图中,就呈现出一条直虚线。

对比抛物线与导数(虚直线),你是否注意到,曲线达到最高点时,切线恰为水平,导数为零?

这并非巧合。

若回顾最大值和导数的定义,两者之间的一致性便不难理解。

最大值的含义在于,某点 a 的函数值 f(a) 比周围点都大。从最大值点稍微偏移,会发现那些点的函数值略小。

在二维图上,这意味着与左右邻点比较。

左侧点的函数值小于 a ,表明左侧点变化趋势向上,导数正;

右侧点亦小于 a ,表明变化趋势向下,导数负。从正导数转为负导数的过程中,必经过导数为零的点,即最大值所在。

因此,寻找函数 f(x) 的最大值,转化为寻找导数 f '(x) 为零的点的问题。这一过程实际上是解方程,相比直接求最大值更为简单。

这种思路正是牛顿区别于前人的地方。他没有直接解决难题,而是将比较数值大小的问题转化为寻找函数变化拐点的问题,

后者更易解决。但要将这两个问题等同,需要一种新工具——导数。

有了导数,求最大值的问题转化为解方程问题。

这一方法的优势在于,它适用于任何函数,无需为每种特定函数寻找解题技巧。这也是微积分成为强大数学工具的原因。

有没有感觉,就是想你遇到一个困难,其实可以反其道而行之,可以从侧面入手来解决,到时候皆大欢喜!

但不过,种方法并非完美无瑕。



例如,对于立方函数 f(x) = x^3 ,其导数 f '(x) = 3x^2 。

当 x=0 时,导数为零,但 x=0 并非 f(x) 的最大值点,因为立方函数的最大值最终趋于无穷大。

为何立方函数上述方法不适用?可参考下图解。


f(x)=x^3 | 图片来自《吴军数学通识讲义》

图中显示,立方函数起初斜率很大,逐渐减小至零。然而,在变为零后,它没有进一步减小进入负数区间,而是重新增大。问题的原因便在此。

解决方法是,在找到导数为零的点后,检查其前后点的导数符号是否从正转负。

若是,则为最大值点;否则不是。这样补救了一处漏洞。

导数求最大值的方法还有其他漏洞,例如下述函数。

它有两个导数为零的点,均符合导数从正转负的条件,但最大值只有一个。

左侧点高于右侧,因此左侧为真正最大值,右侧为次之。


图片来自《吴军数学通识讲义》

对此情况,数学家们首先更精确地定义了最大值。他们将最大值分为两类:

I. 是极大值或局部最大值,即某点的函数值仅需比周围点高;

II. 是整个函数的最大值。


因此,一个函数可以有多个极大值,但只能有一个最大值。

这样,最大值的定义便无矛盾。

但如何在众多局部极大值中找到最大值呢?遗憾的是,目前仍无系统方法解决此问题,只能逐一比较。

实际上,这也是计算机进行机器学习时面临的一大挑战,尚未得到解决。

我们常认为计算机经长期训练后找到了最大值,但事后发现所找仅为众多局部极大值之一。

总结:在过去,寻找最大值是逐一比较数字大小的过程,将数字变化视为孤立事件,难以找到通用求最大值方法。

牛顿等人通过研究函数变化趋势,发明了一种追踪函数从低到高,至平稳,再下降的变化过程来求最大值的方法,使人类对事物的理解由静态转向动态。

这种方法通用,不局限于特定问题技巧。当然,这种方法也有漏洞,我们需逐一弥补。

另外,两点启发:

第一点,值得关注的就是前人把坑留给了牛顿,牛顿最终通过自己的方法解决了了极值的计算问题,我只能说牛顿是一个模型思考者的高手。

他就数据模型化通过公式间接去思考问题,从侧面反映事物的本质,值得学习!这也是目前科学和工程常用的方法。

第二点,对于三次方函数和其他波动函数的极值问题,虽然最后都会通过 if 判断进行解决,但是一个模型就可以过滤掉几乎多大半需要思考的问题,留下来的只是小部分的问题处理。

所以综合两点可以看出,我们做事情,也要能找到自己的模型,可以快速帮助我们简化操作步骤提高效率才是王道。

好了,今天就先这样啦~

祝幸福~

参考文献:

[1].《吴军数学通识讲义》

科学羊  2024/02/02

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-29 07:23 , Processed in 0.083984 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表