本页只解决一个问题
分片线性函数的梯度怎样推导出 cotangent 权重?
本页是原长篇讲义的单概念版本。第一次阅读只追踪本页定义的对象;看见未掌握的前置符号时,先沿链接退回,不要跳过定义硬背结论。
开始前
5. 分片线性有限元基函数
对每个顶点i,定义帽函数ϕi:
ϕi(pj)=δij,
并在每个三角形内线性。任意分片线性函数
uh=i∑uiϕi.
在每个三角形内∇ϕi 为常向量。
5.1 单个三角形上的梯度
在二维有向三角形(qi,qj,qk) 中,令R90(x,y)=(−y,x),有
∇ϕi=2AR90(qk−qj),
以及循环置换。因为ϕi 在对边(j,k) 上为 0,梯度垂直于该边;大小为“高度的倒数”。
6. 余切权重的有限元推导
连续 Dirichlet 能量的双线性型为
a(u,v)=∫M⟨∇u,∇v⟩dA.
离散 stiffness matrix
Lij=∫M⟨∇ϕi,∇ϕj⟩dA.
在包含边(i,j) 的单个三角形(i,j,k) 上:
∫t⟨∇ϕi,∇ϕj⟩dA=−21cotθk.
6.1 计算过程
由梯度公式:
⟨∇ϕi,∇ϕj⟩=4A2(qk−qj)⋅(qi−qk).
分子对应角k 两条边的负点积:
(qk−qj)⋅(qi−qk)=−∥qj−qk∥∥qi−qk∥cosθk.
又
2A=∥qj−qk∥∥qi−qk∥sinθk.
乘以三角形面积A 后得到−21cotθk。
对于内部边(i,j) 两侧对角αij,βij:
wij=21(cotαij+cotβij),
Lij=−wij,i=j,
Lii=j∈N(i)∑wij.
读完必须能回答
- 不看公式,用自己的话回答开头的核心问题。
- 指出本页最重要公式中每个符号的类型:标量、向量、矩阵、映射还是集合。
- 找出定理成立所需的假设,并举一个删除某条假设后可能失败的例子。
- 对最小例子手算一遍;若本页含代码,再比较手算与程序输出。
前后课程
上一课:锥奇点与离散 Gauss-Bonnet | 下一课:离散能量、质量矩阵与 Dirichlet 问题
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/ccg/05-03-fem-cotangent/
更新于:2026年10月12日