上一节里,我们讲到了二元函数的偏导数。今天,我们主要利用偏导数来解决最大值和最小值的问题。
大致回顾下上节的内容:
一个二元函数,它有两个自变量x和y。所以,它就有两个不同的偏导数。分为对x求偏导(此时y视为常数);对y求偏导(此时把x视为常数)。
对x求偏导:
对y求偏导:
再此,再补充一点,如何去近似的估计二元函数在某一临近点的值。
如果我们同时对x和y都有所改变(微小的变化),那么他们的效果叠加在一起,可以近似的得到函数的改变后的值。
公式中“近似”的符号的意思是函数图像和切平面靠的很近。如果我们在平面上移动,这也就变成了等式。
下面我们来证明上面那个式子:
我们尝试用切平面逼近的方法来入手。关于函数
现在,如果我在另一个方向上再做一个平行于
那么这两条切线可以确定一个切平面。下面我们想办法来求这个切平面。
我们知道曲面上两条切线的斜率,我令
同理,我令
接着,我们用
第一条切线为:
第二条切线为:
这两条直线都在切平面里,它们都与函数
当
下面来说如何求极小值和极大值。
我们要用到偏导数,当然不论是2个自变量还是多个,处理方法都是一样的。
首先,我们来考虑在局部极值点处的偏导数,也就是
同时为0的原因:假设
类似的情况是我们会发现函数图像的切平面是水平的。
当然也有
临界点有3种
- 极小值点
- 极大值点
- 鞍点
看一个例子:
解这个方程,我们得到临界点为
比如马鞍面
如果是一元函数,我们可以继续求二阶导来判断。但是这里,如果求二阶导的话,我们会出来很多的偏导数。我们有另一种方法:把函数变为平方和,即
所以
最后,来说一下极值的应用——最小二乘法。
在科学实验中,需要去测量一些数据。比如你在做化学实验,你可以把反应物的消耗量设为x,生成物的量设为y,然后一会得到一系列的数据
我们先举一个呈线性的例子。
这条直线(假设为
z当然还有一点需要注意,直线
所以,我们要注意的就是什么样的a和b能够使得直线方程更好的逼近这些点。
什么又是“更好的”呢?
就是这组a和b使误差总和最小。即这些点到直线有多远。
我们可以这样来算误差,即直接算点到直线垂直的距离。或者,你也可以计算同一x值上,实验数据和直线所对应的的y值之间的误差(
在一组数据中,可能有的数据点离直线距离很远,这是因为实验数据经常不是很准确,所以,不要对误差非常大的点做过多的关注,另一方面,你可能会想测量误差的平均值或者你其实更加关注其他的因素,所以你不想这样测量误差。
所以,才有了最小二乘法!它给出了求a和b的公式,给出了最好的a和b,这个方法应用最广。
“最好”的意思实际上是使总误差的平方最小或者误差的平方和最小。误差为
下面,我们要算的就是
我们先把式子里的2去掉。
这些方程是关于a和b的,我们只需关注这些a和b的系数就行了,如果你的眼光足够好,你可以看出,这是一个关于a和b的一个线性方程组。只是有很多的x,y放在了这里。
下面,我们把它展开,这样看起来更明显。
再整理一下
上面讲的是如何找到最合理直线的方法。为什么这个就是最好的而不是最坏的?我们只是解出了一个临界点,这可能会令函数D的误差达到最大,对于这一点,我们下次就有了答案,如果你用二阶导数来验证这个问题,其实验证不是那么简单的,不过你会知道,这的确是个最小值。我们会看到这的确是最小值。
上面这个例子是线性的粒子,实际上,最小二乘法可以应用得更广。因为除了直线形式,不同的形式,数据可能对应了很多种不同形式的函数。
我们用图片来说明一下。
在计算机科学领域,有一个定律——摩尔定律。他告诉我们电脑芯片的运行速度随着时间发展变得越来越快。这个定理里电脑芯片运行速度是其所能容纳晶体管的数量决定的。
这里有一些数据——标准PC晶体管数量。
我们先用直线来拟合下,显然,这看上去不像是呈直线趋势的;另一方面,如果你把这个图形放到对数分度坐标下,也就是对晶体管数量就对数,那么你会得到一条好得多的直线。
事实上,这说明晶体管数量和时间的关系是指数关系,这就是摩尔定律的内容,它告诉我们晶体管的数量,每两年或三年就会翻倍。
我们怎么能找到最好的指数拟合?指数拟合就是像
可以看出,这可以化成
比如说,我们有更复杂的情形,如
总而言之,最佳拟合问题,实际上就是一个极小值问题的应用。