找回密码
 快速注册
搜索
查看: 42|回复: 5

[几何] 导数列表

[复制链接]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-25 17:10 |阅读模式
本帖最后由 hbghlyj 于 2025-1-25 17:57 编辑 cs.cmu.edu/~kmcrane/Projects/DDG/paper.pdf Appendix A.1.
假设 $\mathbb R^3$ 中的几何(许多表达式很容易推广)。

A.1.1. 边长
Screenshot 2025-01-25 091024.png
设 $\ell$ 为向量 $u:=b-a$ 的长度,其中 $a$ 和 $b$ 是 $\mathbb{R}^3$ 中的点。设 $\hat{u}:=u / \ell$ 为与 $u$ 方向相同的单位向量。那么 $\ell$ 对点 $a$ 位置的导数为
\[
\nabla_a \ell=-\hat{u}
\]
证明
增加 $\ell$ 的最快方法是沿着 $-u$ 的方向移动 $a$(因为在正交方向 $J u$ 上的小运动看起来像是旋转,不会改变长度)。由于移动 $a$ 一个单位会使长度 $\ell$ 增加一个单位,因此,$\nabla_a \ell=-\hat{u}$。

类似地,
\[
\nabla_b \ell=\hat{u}
\]

A.1.2. 三角形面积。
Screenshot 2025-01-25 091059.png
考虑 $\mathbb{R}^3$ 中的任意三角形,设 $u$ 为与顶点 $p$ 相对的边上的向量。那么三角形面积 $A$ 对 $p$ 位置的导数为
\[
\nabla_p A=\frac{1}{2} N \times u
\]
其中 $N$ 为三角形的单位法向量(方向使得 $N \times u$ 从 $u$ 指向 $p$,如上图所示)。
增加 $A$ 的最快方法是沿着 $u^\perp=N\times u$ 的方向移动 $p$。

A.1.3. 四面体体积
Screenshot 2025-01-25 091147.png
考虑 $\mathbb{R}^3$ 中的任意四面体,设 $N$ 为指向相对顶点 $p$ 的三角形的单位法向量(如上图所示)。四面体体积对 $p$ 位置的导数为
\[
\nabla_p V=\frac{1}{3} A N
\]
其中 $A$ 为具有法向量 $N$ 的三角形的面积。
增加 $V$ 的最快方法是沿着 $N$ 的方向移动 $p$。

A.1.4. 内角
Screenshot 2025-01-25 091212.png
考虑一个顶点为 $a, b, c \in \mathbb{R}^3$ 的三角形,设 $\alpha$ 为向量 $u:=b-a$ 和 $v:=c-a$ 之间的有向角。那么
\[
\begin{aligned}
\nabla_a \alpha & =-\left(\nabla_b \alpha+\nabla_c \alpha\right) \\
\nabla_b \alpha & =-(N \times u) /|u|^2 \\
\nabla_c \alpha & =(N \times v) /|v|^2
\end{aligned}
\]增加 $\alpha$ 的最快方法是沿着 $-N\times u$ 的方向移动 $b$。
增加 $\alpha$ 的最快方法是沿着 $N\times v$ 的方向移动 $c$。

A.1.4.1. 余弦。设 $\theta$ 为两个向量 $u, v \in \mathbb{R}^3$ 之间的角度。那么
\[
\begin{aligned}
\nabla_u \cos \theta & =(v-\langle v, \hat{u}\rangle \hat{u}) /|u||v|, \\
\nabla_v \cos \theta & =(u-\langle u, \hat{v}\rangle \hat{v}) /|u||v|,
\end{aligned}
\]
其中 $\hat{u}:=u /|u|$ 和 $\hat{v}:=v /|v|$。如果 $u$ 和 $v$ 是顶点为 $a, b, c \in \mathbb{R}^3$ 的三角形的边向量,即 $u:=b-a$ 和 $v:=c-a$,那么
\[
\nabla_a \cos \theta=-\left(\nabla_u \cos \theta+\nabla_v \cos \theta\right)
\]

A.1.4.2. 余切。对于任何依赖于顶点位置 $p$ 的角度 $\theta$,我们有
\[
\nabla_p \cot \theta=-\frac{1}{\sin ^2 \theta} \nabla_p \theta
\]
然后可以如上计算 $\theta$ 对 $p$ 的导数表达式。

A.1.5. 二面角
Screenshot 2025-01-25 091231.png
考虑一对共享边 $e$ 的三角形,顶点和法向量如上图所示;设 $\theta$ 为内二面角 $\theta$,补角为法向量之间的角度 $\varphi$。明确地,我们可以写 $\theta$ 为
\[
\theta=\operatorname{atan2}\left(e \cdot\left(N_1 \times N_2\right), N_1 \cdot N_2\right),
\]
使用双参数反正切函数确保我们获得正确的符号。那么
\[\begin{aligned}
\nabla_{p_3} \theta & =|e| N_1 /\left(2 A_1\right) \\
\nabla_{p_4} \theta & =|e| N_2 /\left(2 A_2\right)
\end{aligned}
\]
其中 $A_1, A_2$ 分别为具有法向量 $N_1, N_2$ 的三角形的面积。关于 $p_1$ 和 $p_2$ 的导数
\begin{aligned}
\nabla_{p_1}\theta & =\frac{\left(x_3-x_2\right) \cdot e}{|e|} \frac{N_1}{2A_1}+\frac{\left(x_4-x_2\right) \cdot e}{|e|} \frac{N_2}{2A_2} \\
\nabla_{p_2}\theta & =-\frac{\left(x_3-x_1\right) \cdot e}{|e|} \frac{N_1}{2A_1}-\frac{\left(x_4-x_1\right) \cdot e}{|e|} \frac{N_2}{2A_2}
\end{aligned}可以在 Wardetzky 等人的《离散二次曲率能量》(CAGD 2007)附录第28页中找到。

A.1.6. 三角形法向量。
Screenshot 2025-01-25 091256.png
考虑 $\mathbb{R}^3$ 中的一个三角形,设 $e$ 为与顶点 $p$ 相对的边上的向量。如果我们将 $p$ 沿方向 $w$ 移动,单位法向量 $N$ 的变化(方向如上图所示)可以表示为
\[
d N(w)=\frac{\langle N, w\rangle}{2 A} e \times N
\]
其中 $A$ 为三角形面积。那么
\[
\nabla_p N=\frac{1}{2 A}(e \times N) N^T
\]
A.1.7. 单位向量。
Screenshot 2025-01-25 091315.png
考虑与两个点 $a, b \in \mathbb{R}^3$ 相关的单位向量 $u:=(b-a) /|b-a|$。在方向 $v$ 上移动端点 $b$ 时,该向量的变化为
\[
d u(v)=\frac{v-\langle v, u\rangle u}{r}
\]
其中 $r:=|b-a|$ 为 $a$ 和 $b$ 之间的距离。那么
\[
\nabla_a u=\frac{1}{r}\left(I-u u^T\right)
\]

A.1.8. 叉积。
Screenshot 2025-01-25 091329.png
对于任意两个向量 $u, v \in \mathbb{R}^3$,考虑向量
\[
w:=\frac{u \times v}{|u \times v|} .
\]
如果我们将 $u$ 沿方向 $s$ 移动,那么 $w$ 的变化为
\[
d w(s)=\frac{\langle w, s\rangle}{|u \times v|} w \times v
\]
那么
\[
\nabla_u w=\frac{1}{|u \times v|}(w \times v) w^T .
\]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2025-1-25 17:30

Mathematica 验证

A.1.2. 三角形面积。\[\nabla_p A=\frac{1}{2} N \times u\]
  1. a={a1,a2,a3};
  2. b={b1,b2,b3};
  3. c={c1,c2,c3};
  4. A=Sqrt[Cross[b-a,c-a].Cross[b-a,c-a]];
  5. n=Cross[b-a,c-a]/A;
  6. u=c-b;
  7. FullSimplify[D[A,{a}]==Cross[n,u]]
复制代码
True

看 A.1.7 的插图可以推导出 A.1.7
用 A.1.7 可以推导出 A.1.8
用 A.1.8 可以推导出 A.1.6

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2025-1-25 17:40

Mathematica 验证

A.1.4. 内角\[
\nabla_a \alpha  =-\left(\nabla_b \alpha+\nabla_c \alpha\right) \]
  1. a={a1,a2,a3};
  2. b={b1,b2,b3};
  3. c={c1,c2,c3};
  4. θ=ArcCos[(b-a).(c-a)/Sqrt[(b-a).(b-a)]/Sqrt[(c-a).(c-a)]];
  5. FullSimplify[D[θ,{a}]+D[θ,{b}]+D[θ,{c}]==0]
复制代码
True
\[\nabla_b \alpha =-(N \times u) /|u|^2 \]
  1. a={a1,a2,a3};
  2. b={b1,b2,b3};
  3. c={c1,c2,c3};
  4. u=b-a;
  5. v=c-a;
  6. n=Cross[u,v];n=n/Sqrt[n.n];
  7. θ=ArcCos[u.v/Sqrt[u.u v.v]];
  8. FullSimplify[D[θ,{b}]==-Cross[n,u]/(u.u),Assumptions->a1^2+a2^2+a3^2>0&&b1^2+b2^2+b3^2>0&&c1^2+c2^2+c3^2>0]
复制代码
True
091115e9qc95fwqsza3het[1].png

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2025-1-25 18:35
hbghlyj 发表于 2025-1-25 09:40
A.1.4. 内角\[
\nabla_a \alpha  =-\left(\nabla_b \alpha+\nabla_c \alpha\right) \]
True
真奇妙
对a,b,c的导数之和=0
为什么成立呢

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2025-1-25 18:45
hbghlyj 发表于 2025-1-25 10:35
真奇妙
对a,b,c的导数之和=0
为什么成立呢


我知道了,对于任意 $b-a$ 和 $c-a$ 的函数 $f(b-a, c-a)$ 有 $\nabla_a f+\nabla_b f+\nabla_c f=0$.

$\alpha$ 显然是 $b-a$ 和 $c-a$ 的函数。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2025-1-25 21:48
hbghlyj 发表于 2025-1-25 09:10
关于 $p_1$ 和 $p_2$ 的导数
\begin{aligned}
\nabla_{p_1}\theta & =\frac{\left(x_3-x_2\right) \cdot e}{|e|} \frac{N_1}{2A_1}+\frac{\left(x_4-x_2\right) \cdot e}{|e|} \frac{N_2}{2A_2} \\
\nabla_{p_2}\theta & =-\frac{\left(x_3-x_1\right) \cdot e}{|e|} \frac{N_1}{2A_1}-\frac{\left(x_4-x_1\right) \cdot e}{|e|} \frac{N_2}{2A_2}
\end{aligned}


如何证明呢

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 13:16

Powered by Discuz!

× 快速回复 返回顶部 返回列表