If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

局部线性法

学习如何将切线平面的概念推广到标量值多变量函数的线性近似。

背景知识

我们要做什么

  • 局部线性法将切平面的概念泛化到任何多变量函数. 在这里, 我将只讨论多变量的标量函数的情况.
  • 这样做的目的是用一个简单函数去近似一个函数, 该函数在相同输入时有相同输出的, 以及相同的偏导数的值.
  • 用向量的方式描述的近似函数的形式:
    Lf(x)=f(x0)常量+f(x0)恒定向量(xx0)x是个变量
  • 这就是所谓的在fx0附近的局部线性法,

切平面作为近似

上一篇文章 中,我讲了如何找到双变量函数图像中的切平面.
切平面, 透视1
切平面的公式最终形式如下.
T(x,y)=f(x0,y0)+fx(x0,y0)(xx0)+fy(x0,y0)(yy0)
这个函数T(x,y) 经常有不同的名称: 函数f在点(x0,y0)附近的"局部线性化",你可以将它视为满足两个属性的最简单的函数:
  1. 它与函数 f 在点 (x0,y0)有相同的值.
  2. 它与函数f(x0,y0)有相同的偏导数,
与在多变量微积分中一样, 在不依赖图形直觉的情况下思考一个新概念是很棒的. 这并不是说你不应该尝试视觉思考,也许只是纯粹需要考虑输入空间, 或者考虑相关的变换而不是考虑图形.
从根本上说, 局部线性法是根据你在该点上可以从其导数(单个或多个) 中得到的信息, 去逼近该点附近的一个函数.
对于具有双变量输入和标量 (即非矢量) 输出的函数,可以将其可视化为切平面。 然而,对于更高的维度,我们就无法奢侈地可视化了,所以我们只能把它当作一个近似值来思考。
在多变量微积分的实际应用中, 你几乎从不关心空间中的实际平面. 相反, 你可能有一些复杂的功能, 比如,哦, 我不知道, 降落伞上的空气阻力是速度和方向的函数. 处理实际函数可能很棘手, 或者计算成本很高. 因此用更简单的方法, 如线性函数, 来近似它是很有帮助的.

我所说的 "线性函数" 是什么意思?

思考一个具有多维输入的函数.
f(x1,x2,,xn)
如果在这个函数的定义中,所有的坐标都只是乘以一个常量,并没有其他的改变,这个函数就称为线性 .例如,它可能有如下形式:
f(x1,x2,,xn)=2x1+3x2+5xn
关于线性我们会更深入的学习 (因此存在 "线性代数" 字段),但目前,了解这个概念就可以了.通常情况下,您应该将输入视为向量,而不是像这样写出所有变量:
x=[x1x2xn]
你应该用点积定义函数:
f(x)=[235]x
出于本文的目的, 更通常的地说, 当您谈论局部线性法线时, 您可以在此表达式中添加一个常量:
f(x)=c某个常量+v某个向量x
如果你想要咬文嚼字一下, 那么这就不再是一个线性函数. 这是所谓的 "仿射" 函数. 但大多数人会说 "不论如何,这基本上就是线性的".

局部线性法

现在, 假设您的函数f(x) 是线性的. (粗体的 "x" 仍然代表多维向量). 它可能是比点乘积更疯狂的表达方式定义的.
局部线性化的想法是在某些特定的输入值x0附近近似这个函数,其函数 线性. 具体来说,下面是新函数的形式:
Lf(x)=f(x0)常量+f(x0)常数向量(xx0)x是一个变量
  • 注意, 通过插入x=x0, 你可看到函数fLf 对于输入 x0 具有相同的值.
  • 向量与变量x的点积是 f对于特定输入的梯度, f(x0)。 这将保证两个函数fLf 对于特定输入有同样的梯度 。换句话说,此时它们二者的偏导数相同。
我认为理解这个公式的最好方法是你自己在特定函数上下文中亲自求导.

示例 1: 寻找局部线性法。


问题: 你有一个函数:
f(x,y,z)=zex2y3
找到一个线性函数 Lf(x,y,z), 这个Lf 的值及其所有偏导数在以下点与 f 的值相匹配:
(x0,y0,z0)=(8,4,3)

步骤 1: 在选定的点计算 f的值
f(8,4,3)=

步骤 2: 开始使用它来编写您的函数, 以下哪个函数将保证在输入 (x,y,z)=(8,4,3)时与f 相等?
选出正确答案:
对于这两个, a, b, c都是任意常量.

Lf偏导数,正如到目前为止你已经写过,正是这些常量 abc.因此, 为了使我们的函数在点 (8,4,3)f具有相同的偏导数,我们只需要设置这些常量等于f 在这一点上对应的偏导数.
步骤 3: 计算每个变量的偏导数f(x,y,z)=zex2y3
fx(x,y,z)=
fy(x,y,z)=
fz(x,y,z)=

现在我们来计算每个偏导数在点 (8,4,3)的值
fx(8,4,3)=
fy(8,4,3)=
fz(8,4,3)=

步骤 4: 在表达式Lf中用这些偏导数值替换常量abc, 你会得到什么?
Lf(x,y,z)=

现在请注意, 如果您使用向量表示它, 它会是什么样子.
它只是上述的一般公式的一种特定形式.
Lf(x)=f(x0)常量+f(x0)常数向量(xx0)x是一个变量

示例 2: 使用局部线性法进行估计

下面的内容决不是一个实际的应用,但通过它,将有助于让人们感受到局部线性法正在做什么.
问题: 假设你在一个没有计算器的荒岛上, 你需要估计2.01+0.99+9.01. 你会怎么做?
解析:
我们可以把这个问题看作是在点(2.01,0.99,9.01)计算一个特定的三变量函数,即
f(x,y,z)=x+y+z
我不知道你是否懂得如何手工估算平方根, 反正我不懂. 要是这个函数是线性的就好了. 然后就可以手工解决它, 只需加法和乘法. 我们可以做的是在点的附近寻找局部线性化, 这样估计 f 更容易. 然后, 我们可以通过计算点(2.01,0.99,9.01)的线性化来接近正确的答案.
我们要找的点非常接近一个更简单得的点(2,1,9),所以我们要去找在该点附近的 f 的局部线性化.和以前一样, 我们必须找到
  • f(2,1,9)
  • 函数f(2,1,9)的所有偏导数
其中第一个是
f(2,1,9)=2+1+9=2+1+3=2+4=2+2=4=2
看来有人选择了一些方便计算的输入值, 是吗?
关于偏导数 (沉重的叹息).让我们自己写出x的导数.
ddxx=ddxx12=12x12=12x
好的, 让我们继续. 最简单的偏导数是fx
fx=xx+y+z=12x+y+z
由于这里的 y是复合函数,fy 需要应用链式规则:
fy=yx+y+z=12x+y+z12y+z
进一步, 这个棘手的 z 将需要两次迭代的链式规则:
fz=zx+y+z=12x+y+z12y+z12z
接下来, 用 (2,1,9) 带入来计算每一个偏导数. 他们看起很多, 但它们都由相同的三个基本组件组成:
12x+y+z=122+1+9=122+2=1412y+z=121+9=124=1412z=129=16
把这些值带入偏导数表达式,我们得到
fx(2,1,9)=14fy(2,1,9)=1414=116fz(2,1,9)=141416=196
解开局部线性化的公式,我们得到
Lf(x)=f(x0)+f(x0)(xx0)=f(x0)+fx(x0)(xx0)+fy(x0)(yy0)+fz(x0)(zz0)=2+14(x2)+116(y1)+196(z9)
最后, 在完成所有这些工作之后, 我们可以带入 (x,y,z)=(2.01,0.99,9.01) 来计算我们的近似值
2+14(2.012)+116(0.991)+196(9.019)=2+0.014+0.0116+0.0196
手工计算这个仍然不 容易, 但至少它是可行的. 当你算出来, 最终的答案是
2.001979
如果我们用了计算器, 答案是
2.01+0.99+9.012.001978
所以我们的近似值相当不错!

为什么重要?

虽然发现自己在荒岛上然后去估计平方根的情况并不常见 (至少在我老家),但在数学和工程的背景下, 在复杂但可区分的函数之间的争论, 可以常见的. "将它线性化" 这句话随处可见, 不知道它的意思可能会很奇怪.
请记住, 局部线性法根据您可以从一个点的导数中获得的信息,去近似于该点附近的一个函数.即使你可以使用计算机来计算函数,但这并不总是足够的.
  • 你可能需要每秒计算它千百次, 全部算出来需要的时间太长.
  • 也许你甚至没有明确写出函数, 你只是在某个你想推断的点附近有些测量结果.
  • 有时你关心的是反函数, 这可能很难甚至不可能找到一整个函数作为反函数, 而反线性函数是相对便捷的.

总结

  • 局部线性法将切平面的概念泛化到任何多变量函数.
  • 这样做的目的是用一个简单函数去近似一个函数, 该函数在相同输入时有相同输出的, 以及相同的偏导数的值.
  • 用向量的方式描述的近似函数的形式:
    Lf(x)=f(x0)常量+f(x0)恒定向量(xx0)x是个变量
  • 这就是所谓的在fx0附近的局部线性法,

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.