牛顿和拉夫森
牛顿-拉夫森法。从名字上看,你可能会觉得牛顿和拉夫森作为一个团队一起工作,然后共同提出了这个方法。但实际上,他们是独立发现的。还记得他是如何和莱布尼茨一起发现微积分的吗?为什么这个人有这么多想法的时候其他人也有呢?这实际上是很有可能的,因为对于处于某一领域研究前沿的许多人来说,接下来的步骤通常不会太模糊。
让我们来看看牛顿-拉夫森法的原理。
x是什么?
代数的本质是求解未知量的方程。例如,求x,其中:
2x + 5 = 7
很容易看出,上面方程的解是x=1。另一种理解方法是把所有东西都移到一边,然后调用表达式y,得到:y=2x - 2。然后,我们试着找出y=0求得x。
但是当y用x表示变得越来越复杂的时候会发生什么呢?我们能找到所有(或至少一个)满足y=0得x的值吗?例如,下面的图1显示了y与x之间一些更复杂的关系。但是,在所有情况下,y=0都满足于x=1(尽管可能不完全满足)。
图1:不同的函数在x=1处都有0现在,如果我们有一个二次方程,我们怎么解它?我们可以简单地用二次公式(当只有一个变量x时),但我们先假设我们不知道这个公式。我们只知道如何解线性方程组。我们能否用解线性方程组的知识来解非线性方程组(这里是二次方程)?
y=x
让我们从任意随机点x开始,现在,计算我们的二次函数在x处的值,称它为y,我们的工具是一个线性方程求解器,但我们有一个二次方程。我们把二次方程转换成线性方程。要做到这一点,只需用一个线性方程近似二次方程(使用泰勒级数)。当我们解这个线性方程时,我们会得到x的一个解,但我们不能期望这个答案是“正确的”,因为我们“作弊”了——解了一个线性方程而不是一个二次方程。唯一不同的是,这次我们用之前的线性方程的解作为起点。最后,这个过程把我们引向二次方程的解,如下图所示。
图2:抛物线的牛顿-拉弗森迭代法使我们越来越接近抛物线与x轴相交的点。加大尺寸
现在,你可能已经看到了与前面的可视化非常相似的东西。但是,这是如何扩展到多维度的呢?例如,我们现在有两个变量,x和y,而不是一个变量x,将方程(2)扩展到二维最自然的方法是:
z=x+y
它是这样的:
图3:一个抛物面,一种多圆二次方程。这里,x和y是维度,z轴代表抛物面的函数形式。和之前一样,我们要求出z=0。这发生在上图的绿色圆上,也就是抛物面方程与x-y平面相交的地方。但绿色的圆圈是无限个点,不是一个,两个或三个等等。这是很自然的,因为我们增加了变量的数量到两个,但保持方程的数量不变。为了得到有限数量的解,我们需要有与变量相同数量的方程,也就是两个。
我们可以为第二个方程选择很多选项。为了简单起见,我们只需复制现有的等式并将其移动一点点。就像这样,我们现在有两个方程。
图3:我们要演示如何求解多个方程。为了简单起见,我们只需要利用抛物面现有的方程并复制它来形成第二个方程。另外,第二个方程与x-y平面也相交于一个圆,这两个圆相交于两个不同的点,这两个点就是方程组的解。这就是下图中的两个黄点。
图4:两个抛物面表示两个二次方程相交于两点。现在,我们如何用之前的方法得到这些解?
我们将从x-y平面上的任意随机点开始(下图5中的粉色点)。它可以投射到绿色抛物面上的绿点(这是我们的第一个二次方程)和黄色抛物面上的黄点(我们的第二个二次方程)。然后我们可以在绿色和黄色的点上画出最佳的线性近似的绿色和黄色的抛物面。因为线性方程是平面的,所以我们得到了绿色和黄色的平面。这些平面会在紫色的直线上相交然后在某一点与x-y平面相交。这一点是两个线性方程组的解(两个抛物线的近似值)。
图5:N—R迭代——我们反复求解两个二次方程近似得到的线性方程组。这使我们越来越接近原二次方程组的一个实解。这一点当然不是二次方程组的解,因为我们“欺骗”了它们,用线性方程近似它们。然后我们从这个新的点开始重复整个过程。这样做一次又一次,我们得到两个二次方程的一个解(两个黄点)。
如果我们想要第二个解呢?那么,我们从一个不同的随机起点开始,重复这个过程,直到找到一个我们以前没有见过的解。
注意:你会在最优化的上下文中看到牛顿·拉弗森法,而在这里,我们把它描述为求解方程的一种方法。但是,当我们注意到优化通常涉及到找到梯度(一个导数向量)并将其设置为0时,它确实简化为一个求解方程组的问题。
举报/反馈

老胡说科学

30.7万获赞 9.2万粉丝
科学如此美妙,我想让你知道
优质科学领域创作者
关注
0
0
收藏
分享