← 返回Book 2目录

二次型可视化

Quadratic Forms · 从碗形到马鞍形

理解矩阵定性的几何意义

21.1

二元二次型

矩阵A的特征值决定曲面形状

二次型是形如Q(x) = xTAx的函数,其中x是向量x = [x₁, x₂, ..., xₙ]T, An×n是对称矩阵。对于一元函数,f(x) = x²就是二次型; 对于二元函数,f(x₁, x₂) = x₁x₂也是二次型。

通过特征值和特征向量分析,我们可以揭示矩阵的定性和行为。 特别是正定性在二次型分析、优化方法、机器学习中具有重要意义。 通过研究二次型,我们可以深入理解多元函数的形式和特点,为解决实际问题提供数学基础。

💡 提示:说到二次型,就必须聊聊正定性。本章用图解法介绍过A2×2正定性。 下面我们逐一回顾。

🎯 二元二次型交互器

二次型 f(x) = xTAx 的几何表示。矩阵A的特征值决定曲面的形状: 碗形、鞍形或退化平面。

矩阵A

A = [1.0, 0.0]
    [0.0, 1.0]

函数表达式

f(x₁, x₂) = 1x₁² + 1x₂²

特征值与定性

λ₁ = 1.000
λ₂ = 1.000
正定 (Positive Definite)

✅ 正定/负定

特征值全为正(碗形向上)或全为负(碗形向下)。 具有唯一的全局极小/极大点。

🔀 不定型

特征值有正有负,形成马鞍面。 原点既不是极大也不是极小,而是鞍点。

📐 半定型

至少一个特征值为零,曲面退化。 沿某方向无曲率,形成槽型或脊型。

💡 探索建议: 尝试不同预设类型,观察曲面形状变化。正定型像碗,负定型像倒碗,不定型像马鞍。 梯度向量场指向函数值增长最快的方向,在正/负定型中指向/背离原点, 在不定型中形成复杂的流动模式。自定义模式下,调整矩阵元素观察特征值和形状的关系。

✅ 正定 (Positive Definite)

矩阵A2×2是正定的,意味着f(x) = xT@A2×2@x 是一个开口朝上的抛物面,形状像碗。 除了(0, 0),f(x) = xT@A2×2@x均大于0。(0, 0)为最小值,图中箭头都背离(0, 0)。

A = [1, 0; 0, 1]
f(x₁,x₂) = x₁² + x₂²
标准圆形等高线
A = [1, 0; 0, 2]
f(x₁,x₂) = x₁² + 2x₂²
椭圆等高线
A = [1.5, 0.5; 0.5, 1.5]
f(x₁,x₂) = 1.5x₁² + x₁x₂ + 1.5x₂²
旋转椭圆等高线

📐 半正定 (Positive Semi-Definite)

矩阵A2×2是半正定的,意味着f(x) = xT@A2×2@x 是个开口朝上的山谷面。 除了(0, 0),f(x) = xT@A2×2@x均大于等于0。 山谷的谷底都是极小值,图中箭头都背离谷底所在直线。

A = [1, 0; 0, 0]
f(x₁,x₂) = x₁²
平行线等高线(沿x₂无变化)
A = [0.5, -0.5; -0.5, 0.5]
f(x₁,x₂) = 0.5x₁² - x₁x₂ + 0.5x₂²
对角线平行线
A = [0, 0; 0, 1]
f(x₁,x₂) = x₂²
平行线等高线(沿x₁无变化)

❌ 负定 (Negative Definite)

矩阵A2×2是负定的,意味着f(x) = xT@A2×2@x 是个开口朝下的抛物面。 除了(0, 0),f(x) = xT@A2×2@x均小于0。(0, 0)为最大值, 图中箭头都指向(0, 0)。

A = [-1, 0; 0, -1]
f(x₁,x₂) = -x₁² - x₂²
圆形等高线(向下开口)
A = [-1, 0; 0, -2]
f(x₁,x₂) = -x₁² - 2x₂²
椭圆等高线(向下开口)
A = [-1.5, -0.5; -0.5, -1.5]
f(x₁,x₂) = -1.5x₁² - x₁x₂ - 1.5x₂²
旋转椭圆(向下开口)

📐 半负定 (Negative Semi-Definite)

矩阵A2×2是半负定的,意味着f(x) = xT@A2×2@x 是个开口朝下的山脊面。除了(0, 0),f(x) = xT@A2×2@x均小于等于0。 山脊的顶端都是极大值,图中箭头指向山脊顶端所在直线。

A = [-1, 0; 0, 0]
f(x₁,x₂) = -x₁²
平行线等高线(沿x₂无变化)
A = [-0.5, 0.5; 0.5, -0.5]
f(x₁,x₂) = -0.5x₁² + x₁x₂ - 0.5x₂²
对角线平行线
A = [0, 0; 0, -1]
f(x₁,x₂) = -x₂²
平行线等高线(沿x₁无变化)

🔀 不定 (Indefinite)

矩阵A2×2不定,意味着f(x) = xT@A2×2@x 是个马鞍面。(0, 0)为鞍点。f(x) = xT@A2×2@x将不定。 图中有些箭头背离(0, 0),有些指向(0, 0)。

A = [1, 0; 0, -1]
f(x₁,x₂) = x₁² - x₂²
双曲线等高线
A = [-1, 0; 0, 1]
f(x₁,x₂) = -x₁² + x₂²
双曲线等高线(旋转)
A = [0, 1; 1, 0]
f(x₁,x₂) = 2x₁x₂
双曲线等高线(对角)

🧮 梯度的几何意义

对于二元函数,在函数曲面上任意一点的梯度(gradient)告诉我们在给定点上函数 增长最快的方向,也就是"上山"最陡峭的方向。如果我们沿着梯度的方向走,函数值增加最快; 反过来,梯度的反方向就是"下山"最快的方向。当然,我们每走一步,随着位置变化, 梯度值一般会随之改变。

21.2

三元二次型

切豆腐:外立面与切片技术

三元二次型f(x₁, x₂, x₃) = xTAx需要四维空间(三个输入+一个输出)。 为了在三维空间中可视化,我们采用"切豆腐"策略: 通过外立面和切片展开技术将高维信息降维呈现。

📝 请大家思考:如何把可视化代码写成一个自定义函数?

🎲 三元二次型切片可视化器

三元二次型f(x) = x₁²a₁₁ + x₂²a₂₂ + x₃²a₃₃需要四维空间。 通过外立面和切片技术降维可视化。

函数表达式

f(x₁,x₂,x₃) = 1x₁² + 0x₂² -1x₃²

🏠 外立面

同时显示三个坐标平面的等高线, 形成立方体的三个可见面。

🔪 切片技术

固定一个维度,观察二元二次型在截面上的形状。 移动切片位置看形状如何变化。

📐 对角矩阵

本可视化器使用对角矩阵, 三个特征值独立控制三个方向的曲率。

💡 探索建议: 外立面模式展示函数在三个边界面的值分布。 切片模式下,每个切片都是一个二元二次型曲面。 尝试示例矩阵(A₁₁=1, A₂₂=0, A₃₃=-1),观察双曲抛物面(马鞍面)的特征。 调整三个对角元素,看它们如何独立控制三个主方向的曲率。

🏠 外立面可视化

同时在三个坐标平面上绘制三维等高线(填充+轮廓线):

  • • 顶面:x₃ = max,展示f(x₁, x₂, x₃_max)的等高线
  • • 前面:x₂ = min,展示f(x₁, x₂_min, x₃)的等高线
  • • 左面:x₁ = min,展示f(x₁_min, x₂, x₃)的等高线

通过颜色条(colorbar)显示函数值范围。绘制框线时,zorder控制呈现artist的先后顺序, zorder越小置于越底层,赋值很大确保置于最顶层。

🔪 切片展开技术

沿三个坐标轴方向分别切片,每个方向展示多个平行切片:

沿x₃切片
固定x₃ = c,展示f(x₁, x₂, c)在x₁-x₂平面的等高线。 从x₃ = -2到x₃ = 2,每隔一定间隔取一片。
沿x₂切片
固定x₂ = c,展示f(x₁, c, x₃)在x₁-x₃平面的等高线。 从x₂ = -2到x₂ = 2,每隔一定间隔取一片。
沿x₁切片
固定x₁ = c,展示f(c, x₂, x₃)在x₂-x₃平面的等高线。 从x₁ = -2到x₁ = 2,每隔一定间隔取一片。

📐 示例:双曲抛物面

考虑对角矩阵A = diag(1, 0, -1),矩阵秩为2,函数为f(x₁,x₂,x₃) = x₁² - x₃²。

这是一个经典的双曲抛物面(马鞍面)。沿x₁方向开口向上, 沿x₃方向开口向下,x₂方向无变化。三个方向的切片展示了这个曲面的完整特征: 外立面显示在边界的函数值分布,而内部切片揭示了函数如何在三维空间中变化。

💡 核心洞察

二次型将抽象的矩阵运算具象化为可见的几何曲面。正定矩阵对应碗形(凸函数), 负定对应倒碗形(凹函数),不定对应马鞍面,半定对应退化曲面。 特征值的符号决定曲率方向,特征值的大小决定曲率陡峭程度。 理解二次型的几何意义,是理解优化理论、机器学习中的损失函数、 数据分析中的协方差矩阵的关键。梯度向量场指示函数值增长最快的方向, 在优化算法中引导我们寻找极值点。三元及更高维二次型通过切片和投影技术降维可视化, 让我们能够"看到"高维空间中的数学结构。