当前位置: 首页 > news >正文

机器学习——附录与补充

附录与补充

拉格朗日乘子法

等式约束下的拉格朗日

以二元函数f(x)=x2−2x+y2−4yf(x)=x^2-2 x+y^2-4 yf(x)=x22x+y24y为例 ,约束项为 Φ(x,y)=0\Phi(x, y)=0Φ(x,y)=0 ;下图中,左边表示待优化的函数,右边是函数的等高线,可以看出,中心函数值较低,越往外函数值越高。这个约束项在三维空间中是一个垂直于XOY平面的曲面,可以理解为无数条曲线在上下叠加形成的。既然我们把函数的等高线投影到XOY平面,那么我们直接把约束函数当成XOY上的一条曲线即可。

在这里插入图片描述

根据上图,我们可以看出,如果约束项相切时,函数值才会满足约束条件,从而取得极值。也就是说,当 ∇z(x,y)=λ∇Φ(x,y)\nabla z(x, y)=\lambda \nabla \Phi(x, y)z(x,y)=λ∇Φ(x,y) ,即梯度方向平行时,取得最优值。这里的 λ\lambdaλ 的值正负未知,因此可以移到另一边,得到通常情况下表示的拉格朗日函数:

L=f(x,y)+γφ(x,y) L=f(x, y)+\gamma \varphi(x, y) L=f(x,y)+γφ(x,y)
当存在多个约束时:

在这里插入图片描述

我们得到公式:
∇f(x,y)=λ1∇Φ1+λ2∇Φ2 \nabla f(x, y)=\lambda_1 \nabla \Phi 1+\lambda_2 \nabla \Phi 2 f(x,y)=λ1∇Φ1+λ2∇Φ2
即函数的梯度是两个约束曲线梯度的线性组合。按我的理解,这是因为两个约束曲线梯度向量的线性组合可以表示平面上任意向量,所以可以这么表示。我们可以写成拉格朗日函数并求解:
$$
\begin{aligned}
& L\left(x, y, \lambda_1, \lambda_2\right)=f(x, y)+\lambda_1 \Phi 1(x, y)+\lambda_2 \Phi 2(x, y) \
& \left{\begin{array}{l}
L_x{\prime}=f_x{\prime}+\lambda_1 \Phi 1_x^{\prime}+\lambda_2 \Phi 2_x^{\prime}=0 \
L_y{\prime}=f_y{\prime}+\lambda_1 \Phi 1_y^{\prime}+\lambda_2 \Phi 2_y^{\prime}=0 \

L_{\lambda_1}^{\prime}=\Phi 1(x, y)=0 \
L_{\lambda_2}^{\prime}=\Phi 2(x, y)=0
\end{array}\right.
\end{aligned}
$$

不等式约束下的拉格朗日

在带等式约束的拉格朗日法中我们可以看到,有等式约束的条件其实就是对函数的变化维度进行了限定,比如一个二元函数 f(x1,x2)f\left(x_1, x_2\right)f(x1,x2) ,限定条件是 g(x1,g2)=0g\left(x_1, g_2\right)=0g(x1,g2)=0 ,那么函数 ggg 其实就是一条曲线,而二元函数值就只能取曲线上的值。

但当这个条件变成不等式的时候,情况就变得复杂了,例如 就不再是一条曲线,而可能是一个曲面(在XOY平面上,是由g(x1,x2)=0g\left(x_1, x_2\right)=0g(x1,x2)=0平移得到的无数曲线组成的曲面),fff 可以在这个曲面上任意取值。

现在带约束的函数极值有很多种可能,有可能函数能取到的极值还是在切线上,也有可能函数的极值 点在不等式约束内。在损失函数优化中,我们希望损失函数能取到尽可能小的值,因此我们可以先求函数 的所有极小值点,然后判断其是否在不等式约束内部,如果在,则说明这就是函数最小的点(此时约束项不起作用),如果不在, 我们就可以认定函数能取到的最小值在约束项边界处,就可以使用等式约束条件下的拉格朗日乘子法。我们将分别讨论。

我们先统一做一个定义方便讨论:考虑最优化问题:
min⁡(f(x)) s.t. g(x)≤0 \begin{aligned} & \min (f(\boldsymbol{x})) \\ & \text { s.t. } \quad g(\boldsymbol{x}) \leq 0 \end{aligned} min(f(x)) s.t. g(x)0
注意函数 ggg 的形式,如果我们的约束项是 g(x)≥0g(\boldsymbol{x}) \geq 0g(x)0 ,我们就改为 ϕ(x)=−g(x)≤0\phi(\boldsymbol{x})=-g(\boldsymbol{x}) \leq 0ϕ(x)=g(x)0 就可以了。

情况一:极值点在约束条件内部,约束条件不起作用
  • 当什么情况下,约束条件会不起作用呢?思考可以发现,如果原本函数的梯度下降的区域(方向)和约束的区域(方向)是一致的,也就是说原本待优化函数的可能极小值本来就在约束区域内,此时约束项不起作用。见下图:

在这里插入图片描述
在这里插入图片描述

此时不难发现,原本会取得极小值的点本就在约束区域内,约束不起作用。

下面重点讨论约束起作用的情况

情况二:极值点在约束条件内部,约束条件起作用,此时应该取边界上的点作为最优解

如图:

在这里插入图片描述

可以看到在这种情况下极小值点不在约束范围内,或者换句话说,这时候函数的梯度下降方向和约束函数的梯度下降方向正好是反向的(梯度向量方向相反)。有人要问驻波了,约束函数哪里来的梯度方向?我们可以把g(x,y)=0g(x,y)=0g(x,y)=0看成是一个定义在R2R^2R2函数(b=g(x,y)b=g(x, y)b=g(x,y))的在XOY的等高线,那么由于g(x,y)<0g(x,y)<0g(x,y)<0,它取不同值的时候就看成不同的等高线,那么这个定义在R2R^2R2的函数就有了所谓的梯度(因为有了函数值变化的方向)。

  • 对于函数 a=h(x,y)a=h(x, y)a=h(x,y) ,其梯度 ∇h\nabla hh 指向函数值变大的一侧,即对于上图的函数 fff ,在等高线上绘制出多个点的函数值减小的方向(梯度的反方向),如下图左;对于约束项 g(x)g(x)g(x) ,我们知道其内部值一定小于其边界值(因为内部值都小于 0 ,边界值为 0 ),所以如果构造一个约束项函数 b=g(x,y)b=g(x, y)b=g(x,y) ,在 g(x,y)=0g(x, y)=0g(x,y)=0处的梯度反方向 (g(x,y)(g(x, y)(g(x,y) 减小的方向)如下图右。

    在这里插入图片描述

现在就很明确了,最优解点处,约束项的梯度方向需要跟函数的梯度方向恰好相反,这就是 KKT 条 件中最重要的部分。我们现在把 KKT 条件列一下:
∇L(x,λ)=∇f+λ∇g=0g(x)≤0λ≥0λg(x)=0 \begin{aligned} & \nabla L(\boldsymbol{x}, \lambda)=\nabla f+\lambda \nabla g=\mathbf{0} \\ & g(\boldsymbol{x}) \leq 0 \\ & \lambda \geq 0 \\ & \lambda g(\boldsymbol{x})=0 \end{aligned} L(x,λ)=f+λg=0g(x)0λ0λg(x)=0

min-max问题

什么是 min-max 问题?

简单来说,min-max 是一种 “你最小化我的最大化” 的博弈策略问题。

形式上,它长这样:
min⁡x∈Xmax⁡y∈Yf(x,y) \min_{x \in \mathcal{X}} \max_{y \in \mathcal{Y}} f(x, y) xXminyYmaxf(x,y)
意思是:

“我想选择一个 xxx,让无论 yyy 怎么挑使得 f(x,y)f(x, y)f(x,y) 最大,它的值也尽量小。”

这个问题也叫鞍点问题对抗优化问题,在很多领域都有应用,比如:

  • 机器学习(对抗样本、GAN)
  • 博弈论(零和博弈)
  • 强化学习(最大最小价值)
  • 网络安全(最坏情况分析)
为什么叫“鞍点”问题?

看下这个函数:
f(x,y)=x2−y2 f(x, y) = x^2 - y^2 f(x,y)=x2y2
它对 xxx 是凸的,对 yyy 是凹的。

图像是个“马鞍面”:

  • 沿 xxx 方向看是一个碗(上凸)
  • 沿 yyy 方向看是一个盖子(下凹)

这个函数的 x=0,y=0x = 0, y = 0x=0,y=0 就是鞍点,满足:
f(x,0)≥f(0,0)≥f(0,y) f(x, 0) \geq f(0, 0) \geq f(0, y) f(x,0)f(0,0)f(0,y)
所以我们说这个点是 min-max 意义下的解。

min-max 与 max-min 的关系

一个自然的问题是:
min⁡xmax⁡yf(x,y)=?max⁡ymin⁡xf(x,y) \min_x \max_y f(x, y) \overset{?}{=} \max_y \min_x f(x, y) xminymaxf(x,y)=?ymaxxminf(x,y)
一般来说,这两者不一定相等。只有当 f(x,y)f(x, y)f(x,y)凸-凹函数、并且解空间是凸闭集时,才能满足:
min⁡xmax⁡yf(x,y)=max⁡ymin⁡xf(x,y) \min_x \max_y f(x, y) = \max_y \min_x f(x, y) xminymaxf(x,y)=ymaxxminf(x,y)

在这里插入图片描述

即鞍点的时候上式成立。这叫做Sion’s Minimax Theorem(赛恩定理)是凸优化中非常核心的一个理论。

在求解支持向量机时的应用
  • 支持向量机(SVM)中拉格朗日乘子法的核心原理:为什么带约束的原始优化问题可以转化为一个 min-max 形式的优化问题(即 min⁡w,bmax⁡αL(w,b,α)\min_{w,b} \max_{\alpha} L(w, b, \alpha)minw,bmaxαL(w,b,α),受限于 αi≥0\alpha_i \geq 0αi0)。这个转化是凸优化和拉格朗日对偶性理论的标准结果。

一句话概括,只有满足条件的w, b才可能被解出来,不满足条件的会导致式子无穷大而无法优化。

1. 原始问题回顾

在 SVM 中,原始优化问题是:

  • 目标函数:最小化 12∥w∥2\frac{1}{2} \|w\|^221w2(这对应于最大化分类间隔)。

  • 约束条件:对于所有样本点 i=1,…,ni = 1, \dots, ni=1,,n,有:
    yi(wTxi+b)≥1 y_i (w^T x_i + b) \geq 1 yi(wTxi+b)1
    这等价于你给出的形式 1−yi(wTxi+b)≤01 - y_i (w^T x_i + b) \leq 01yi(wTxi+b)0(因为如果 yi(wTxi+b)≥1y_i (w^T x_i + b) \geq 1yi(wTxi+b)1,则 1−yi(wTxi+b)≤01 - y_i (w^T x_i + b) \leq 01yi(wTxi+b)0)。

  • 问题形式
    {min⁡w,b12∥w∥2s.t. 1−yi(wTxi+b)≤0,∀i=1,…,n \begin{cases} \min_{w,b} \frac{1}{2} \|w\|^2 \\ \text{s.t. } 1 - y_i (w^T x_i + b) \leq 0, \quad \forall i = 1, \dots, n \end{cases} {minw,b21w2s.t. 1yi(wTxi+b)0,i=1,,n

这是一个带不等式约束的凸优化问题(目标函数 12∥w∥2\frac{1}{2} \|w\|^221w2 是凸函数,约束是线性的,因此整体是凸的)。

2. 拉格朗日函数的作用

为了处理约束,我们引入拉格朗日乘子 αi\alpha_iαi(每个约束对应一个乘子),并构建拉格朗日函数:
L(w,b,α)=12∥w∥2+∑i=1nαi(1−yi(wTxi+b)) L(w, b, \alpha) = \frac{1}{2} \|w\|^2 + \sum_{i=1}^n \alpha_i \left( 1 - y_i (w^T x_i + b) \right) L(w,b,α)=21w2+i=1nαi(1yi(wTxi+b))
其中 αi≥0\alpha_i \geq 0αi0(因为约束是不等式约束,乘子必须非负)。

拉格朗日函数的作用是将约束“吸收”到目标函数中:

  • 当约束被违反时(即 1−yi(wTxi+b)>01 - y_i (w^T x_i + b) > 01yi(wTxi+b)>0),拉格朗日函数会通过 αi>0\alpha_i > 0αi>0 惩罚目标。
  • 当约束满足时(即 1−yi(wTxi+b)≤01 - y_i (w^T x_i + b) \leq 01yi(wTxi+b)0),拉格朗日函数应与原始目标 12∥w∥2\frac{1}{2} \|w\|^221w2 一致。

但问题是如何利用 L(w,b,α)L(w, b, \alpha)L(w,b,α) 来等价表示原始问题?这就是 min-max 形式的关键。

3. min-max 转化的原理

转化后的形式是:
{min⁡w,bmax⁡αL(w,b,α)s.t. αi≥0 \begin{cases} \min_{w,b} \max_{\alpha} L(w, b, \alpha) \\ \text{s.t. } \alpha_i \geq 0 \end{cases} {minw,bmaxαL(w,b,α)s.t. αi0
为什么这个等价于原始问题?核心在于 max⁡α≥0L(w,b,α)\max_{\alpha \geq 0} L(w, b, \alpha)maxα0L(w,b,α) 函数的行为:它充当了一个“指示器”,当约束满足时返回原始目标函数值,当约束不满足时返回无穷大(从而在最小化过程中被排除)。具体推导如下:

步骤 1:固定 w,bw, bw,b,分析 max⁡α≥0L(w,b,α)\max_{\alpha \geq 0} L(w, b, \alpha)maxα0L(w,b,α)

对于任意固定的 wwwbbb,我们考虑最大化 L(w,b,α)L(w, b, \alpha)L(w,b,α) 关于 α≥0\alpha \geq 0α0
θ(w,b)=max⁡α≥0L(w,b,α)=max⁡α≥0[12∥w∥2+∑i=1nαi(1−yi(wTxi+b))] \theta(w, b) = \max_{\alpha \geq 0} L(w, b, \alpha) = \max_{\alpha \geq 0} \left[ \frac{1}{2} \|w\|^2 + \sum_{i=1}^n \alpha_i \left( 1 - y_i (w^T x_i + b) \right) \right] θ(w,b)=α0maxL(w,b,α)=α0max[21w2+i=1nαi(1yi(wTxi+b))]

  • 情况 1:约束被满足(即对所有 iii,有 1−yi(wTxi+b)≤01 - y_i (w^T x_i + b) \leq 01yi(wTxi+b)0

    • 此时,项 αi(1−yi(wTxi+b))≤0\alpha_i \left( 1 - y_i (w^T x_i + b) \right) \leq 0αi(1yi(wTxi+b))0(因为 αi≥0\alpha_i \geq 0αi0 且括号内 ≤0\leq 00)。

    • 为了最大化 LLL,我们应选择 αi=0\alpha_i = 0αi=0(因为增大 αi\alpha_iαi 会使 LLL 减小或不变)。

    • 因此:
      max⁡α≥0L(w,b,α)=12∥w∥2 \max_{\alpha \geq 0} L(w, b, \alpha) = \frac{1}{2} \|w\|^2 α0maxL(w,b,α)=21w2
      这正好是原始目标函数值(无约束时的值)。

  • 情况 2:约束被违反(即存在某个 iii,使得 1−yi(wTxi+b)>01 - y_i (w^T x_i + b) > 01yi(wTxi+b)>0

    • 对于违反约束的 iii,项 αi(1−yi(wTxi+b))>0\alpha_i \left( 1 - y_i (w^T x_i + b) \right) > 0αi(1yi(wTxi+b))>0(因为括号内 >0> 0>0αi≥0\alpha_i \geq 0αi0)。

    • 我们可以取 αi→∞\alpha_i \to \inftyαi(因为 αi\alpha_iαi 可以任意大),使得:
      αi(1−yi(wTxi+b))→∞ \alpha_i \left( 1 - y_i (w^T x_i + b) \right) \to \infty αi(1yi(wTxi+b))

    • 因此:
      max⁡α≥0L(w,b,α)=∞ \max_{\alpha \geq 0} L(w, b, \alpha) = \infty α0maxL(w,b,α)=

总结:
θ(w,b)=max⁡α≥0L(w,b,α)={12∥w∥2如果所有约束 1−yi(wTxi+b)≤0 成立∞否则 \theta(w, b) = \max_{\alpha \geq 0} L(w, b, \alpha) = \begin{cases} \frac{1}{2} \|w\|^2 & \text{如果所有约束 } 1 - y_i (w^T x_i + b) \leq 0 \text{ 成立} \\ \infty & \text{否则} \end{cases} θ(w,b)=α0maxL(w,b,α)={21w2如果所有约束 1yi(wTxi+b)0 成立否则

步骤 2:最小化 θ(w,b)\theta(w, b)θ(w,b) 关于 w,bw, bw,b

现在考虑外层的最小化:
min⁡w,bθ(w,b)=min⁡w,b[max⁡α≥0L(w,b,α)] \min_{w,b} \theta(w, b) = \min_{w,b} \left[ \max_{\alpha \geq 0} L(w, b, \alpha) \right] w,bminθ(w,b)=w,bmin[α0maxL(w,b,α)]

  • 根据 θ(w,b)\theta(w, b)θ(w,b) 的定义:

    • 如果 w,bw, bw,b 违反任何约束,θ(w,b)=∞\theta(w, b) = \inftyθ(w,b)=,这不会被最小化过程选中(因为最小化会避开无穷大值)。
    • 如果 w,bw, bw,b 满足所有约束,θ(w,b)=12∥w∥2\theta(w, b) = \frac{1}{2} \|w\|^2θ(w,b)=21w2
  • 因此,最小化 θ(w,b)\theta(w, b)θ(w,b) 等价于:
    min⁡w,b{12∥w∥2∣1−yi(wTxi+b)≤0,∀i} \min_{w,b} \left\{ \frac{1}{2} \|w\|^2 \mid 1 - y_i (w^T x_i + b) \leq 0, \quad \forall i \right\} w,bmin{21w21yi(wTxi+b)0,i}

这正是原始问题!

为什么等价?
  • min⁡w,bmax⁡α≥0L(w,b,α)\min_{w,b} \max_{\alpha \geq 0} L(w, b, \alpha)minw,bmaxα0L(w,b,α) 确保了:
    • 只有满足约束的 w,bw, bw,b 会被考虑(否则值为 ∞\infty)。
    • 在满足约束的区域,它直接最小化原始目标 12∥w∥2\frac{1}{2} \|w\|^221w2
  • 因此,这个 min-max 形式是原始问题的精确等价重述。
4. 几何和直观理解
  • 拉格朗日函数的角色:你可以把 L(w,b,α)L(w, b, \alpha)L(w,b,α) 看作一个“自适应”目标函数。αi\alpha_iαi 是“惩罚权重”,当约束被违反时,max⁡α≥0\max_{\alpha \geq 0}maxα0 会通过增大 αi\alpha_iαi 施加无限惩罚,迫使解回到可行域。
  • min-max 的博弈解释
    • 内层 max⁡α≥0\max_{\alpha \geq 0}maxα0:给定 w,bw, bw,b,它试图“检查”约束是否满足。如果违反,它“惩罚”到无穷大;如果满足,它“接受”原始目标值。
    • 外层 min⁡w,b\min_{w,b}minw,b:在知道内层会惩罚违反约束的情况下,它主动寻找满足约束且最小化 12∥w∥2\frac{1}{2} \|w\|^221w2 的解。
  • 凸优化的优势:由于原始问题是凸的(目标凸、约束凸),这个 min-max 转化是等价的,且通常强对偶性成立(即 min-max 等于 max-min),但在你的问题中,我们只讨论到 min-max 这一步。
5. 在 SVM 中的具体应用

在 SVM 中,这个 min-max 转化是推导对偶问题的第一步:

  1. 原始问题min⁡w,b12∥w∥2\min_{w,b} \frac{1}{2} \|w\|^2minw,b21w2 s.t. yi(wTxi+b)≥1y_i (w^T x_i + b) \geq 1yi(wTxi+b)1
  2. 转化为 min-maxmin⁡w,bmax⁡α≥0L(w,b,α)\min_{w,b} \max_{\alpha \geq 0} L(w, b, \alpha)minw,bmaxα0L(w,b,α)(如你所述)。
  3. 进一步转为对偶问题:通常我们会交换 min 和 max(在凸问题下允许),得到 max⁡α≥0min⁡w,bL(w,b,α)\max_{\alpha \geq 0} \min_{w,b} L(w, b, \alpha)maxα0minw,bL(w,b,α)。这更容易求解,因为:
    • 内层 min⁡w,bL\min_{w,b} Lminw,bL 可以通过求导解析求解(得到 w=∑αiyixiw = \sum \alpha_i y_i x_iw=αiyixi∑αiyi=0\sum \alpha_i y_i = 0αiyi=0)。
    • 外层变为 max⁡α≥0\max_{\alpha \geq 0}maxα0 的凸问题(只有盒约束 αi≥0\alpha_i \geq 0αi0),可用梯度下降或 SMO 算法求解。
      但你的问题焦点是前两步(为什么原始问题能写成 min-max 形式),而不是对偶问题。
6. 补充说明
  • 理论依据:这个转化源于凸优化中的拉格朗日对偶性理论(Lagrange Duality)。关键定理是:对于凸优化问题且满足 Slater 条件(即存在严格可行解),原始问题与 min-max 形式等价,且强对偶性成立(原始最优值等于对偶最优值)。SVM 通常满足这些条件。
  • 为什么 αi≥0\alpha_i \geq 0αi0:因为约束是不等式(≤0\leq 00 型),乘子必须非负。如果是等式约束,乘子可正可负。
  • 实际意义:这个转化将约束优化转化为无约束优化(通过 max 操作隐式处理约束),简化了理论分析和算法设计。
  • 参考来源:这基于运筹学和凸优化(例如 Boyd 的《Convex Optimization》第 5 章或 Nocedal 的《Numerical Optimization》第 12 章)。

对”梯度与法向量求法相同“的一点讨论

  • 我们经常会听到一个说法,也就是“梯度和法向量的求法都是对每个变量求偏导数”,或“某点的梯度和该点的法向量是相同的”。这常常带来直观上的某些误解。你可能会想,梯度是该函数在该点值变化最快的方向,类似于切线;而该点的法向量方向垂直于该点的切平面,这二者看着完全不是一个东西。实际上这是个误解。

  • 正确的表述方式是:多元函数的梯度向量隐函数所定义曲面/曲线的法向量数值上是相同的。注意到,这里的多元函数要比这个“隐函数”高一个维度,因为隐函数是直接让整体等于0。换而言之,他们的图像压根就不是一个。举个例子:

    现在看函数:
    f(x,y)=y−x2 f(x, y) = y - x^2 f(x,y)=yx2
    这个函数(定义在二维空间,但图像在三维空间)的梯度是:
    ∇f(x,y)=(∂f∂x,∂f∂y)=(−2x,1) \nabla f(x, y) = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) = \left( -2x, 1 \right) f(x,y)=(xf,yf)=(2x,1)
    所以在任意点 (x0,y0)(x_0, y_0)(x0,y0) 上,梯度向量为:
    ∇f(x0,y0)=(−2x0,1) \nabla f(x_0, y_0) = (-2x_0, 1) f(x0,y0)=(2x0,1)

    • 这条曲线 y=x2y = x^2y=x2 在二维平面中是一条抛物线;
    • 梯度 ∇f(x,y)\nabla f(x, y)f(x,y) 给出的是函数 f(x,y)=y−x2f(x, y) = y - x^2f(x,y)=yx2 在平面上的“方向导数最大方向”;
    • 而对于曲线 f(x,y)=0f(x, y) = 0f(x,y)=0 (这是个二维空间的曲线,如果你想把它看作函数,它实际上定义在一维空间,只有一个自变量X)来说,这个梯度向量正好是该点处的法向量(乘以该点切线等于0,垂直于该曲线,是法向量);
    • 所以,曲线 y=x2y = x^2y=x2 在点 (x0,x02)(x_0, x_0^2)(x0,x02)法向量(−2x0,1)(-2x_0, 1)(2x0,1)

    发现没,梯度是对于f(x,y)=y−x2f(x, y) = y - x^2f(x,y)=yx2这个R2R^2R2的函数讨论的。如果想把它当成曲面画,实际上它是z−y+x2=0z-y+x^2=0zy+x2=0。而所谓“法向量”,是对于y−x2=0y-x^2=0yx2=0这个曲面讨论的。二者压根不在一个讨论范畴。

  • 而曲面其实相当于比函数的定义低了一维,例如二元函数转为曲面,就是 f(x,y)−z=0f(x, y) − z = 0f(x,y)z=0,我们可以 设曲面表达式为 Φ(x,y,z)=f(x,y)−z=0Φ(x, y, z) = f(x, y) − z = 0Φ(x,y,z)=f(x,y)z=0,计算得到曲面法向量为 (Φ′x,Φ′y,Φ′z)(Φ′_x , Φ′_y , Φ′_z )(Φx,Φy,Φz)。其实这个法向量就是$ (f′_x , f′_y , −1)$。

http://www.dtcms.com/a/340753.html

相关文章:

  • 【007TG洞察】Bitget全球快闪店活动解析:Web3项目如何实现高效用户增长
  • ios八股文 -- Objective-c
  • Java EE ----- Spring Boot 日志
  • 【JavaEE】(17) MyBatis 基础
  • 【JavaEE】多线程(线程安全问题)
  • k8sday12数据存储(1/2)
  • 【表的操作】
  • 开源大模型如何选择?GPT-OSS综合评估
  • HTML--pre标签的作用
  • 决策树1.2
  • Flink学习
  • 数据安全事件分级
  • 嵌入式的各个要点总结(不断更新)
  • Building Systems with the ChatGPT API 使用 ChatGPT API 搭建系统(第二章学习笔记及总结)
  • idea maven 设置代理
  • SSM从入门到实战:2.1 MyBatis框架概述与环境搭建
  • 【STM32】HAL库中的实现(六):DAC (数模转换)
  • 调用海康威视AI开放平台接口实现人体关键点检测
  • Java毕业设计选题推荐 |基于SpringBoot+Vue的知识产权管理系统设计与实现
  • langchain-ds的报告生成提示词
  • 如何低比特量化算法的工程实战与落地优化
  • 从零开始的云计算生活——第四十七天,细水长流,kubernetes模块之ingress资源对象
  • 开源 AR 眼镜怎么选?OpenGlass ,OSSG,cheApR 分析推荐
  • 无需驱动!单文件实现键盘按键禁用的技术方案
  • 通用物联网接口调用完整解决方案2
  • Ubuntu_22.04安装文档
  • k8s--Discuz论坛lnmp平台部署
  • 软件可视化与前端、后端技术开发的关系
  • WPF MVVM进阶系列教程(四、ViewModel通信)
  • std::map 的插入元素方式