请问什么比什么作用?
这个提问可能不太准确,但是我想大概的意思是“相对”的意思吧? 这里用数学函数来举个例子会比较容易理解。假设我们要比较两个函数的数值大小,一般我们会这样比较: 比如x=1的时候,A函数值为2,B函数值为3;x=-1的时候,A函数值为0.5,B函数值为-3。
那么根据这样的取值,我们很容易得出结论:当x=1或者x=-1的时候,A一定比B大;而当x处于其他范围的时候,我们无法判断哪个函数更大。 但事实上并不是这样,更准确的说法是,在整体(所有的x的值)上,A比B大的次数多于B比A大的次数,即有更好的“优势”。但某些特定的x值处,这两个函数的值的大小关系却并不确定。
这个例子说明的是“总体上谁大于谁”与“在某些点处是否大于谁”是两个不同的问题,不能混淆。 而这个问题在编程实现的时候经常遇到——尤其是在做优化问题求解时。因为优化问题的目标函数通常是多元函数,而在求极小值的时候又经常会遇到极小值点。
如何判断这个极小值点是否是真正的极小值呢?通常的做法是按照导数来判断:如果某个点的导数为0,且左右两侧导数异号(一正一负),则该点为极小值;否则就不是。
但实际上,按照导数来判定最优解的方法是有其适用条件的,在这些条件下,按照导数判断的最优解才是正确的解;如果没有满足这些条件的极端点,这种基于导数的最优化方法就无法使用。而对于很多复杂的问题来说,我们常常无法知道是否存在这样一个点,使得按照导数的方法求得解为真。在这种情况下,我们就不得不采用其他的手段来估计最优解的位置。