# Summary 二次型是: 1. **最简单的非线性**:只包含二次项 2. **局部近似**:任何光滑函数在某点附近都可以用二次型近似 3. **可以对角化**:通过坐标变换可以消除交叉项 **本质**:二次型描述了空间中的"弯曲程度"和"相互作用"——是理解非线性世界的第一步! # Notes 属于[[非线性变换]],可以粗浅理解为矩阵的平方 ![CleanShot 2025-07-13 at [email protected]|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fmedia%2Fmedia_07SB1SY2jB%2F2025%2F07%2F13%2F17-11-24-d100ba29d30915ed307c528b634cfa03-CleanShot%202025-07-13%20at%2017.11.19-2x-b5e402.png) 二次型是一个关于多个变量的二次齐次多项式。让我用一个 2×2 的小矩阵来具体说明: 我来解释**二次型**的本质。 ## 什么是二次型? 二次型其实是**最简单的非线性函数**——所有项都是二次的。 ### 具体形式 **一维**:f(x) = ax² **二维**:f(x,y) = ax² + bxy + cy² **矩阵形式**: ```Java f(x,y) = [x y] [a b/2] [x] [b/2 c] [y] ``` ## 几何意义 ### 例子1:圆形 ```Java f(x,y) = x² + y² = 1 矩阵:A = [1 0] [0 1] ``` 这是个圆! ### 例子2:椭圆 ```Java f(x,y) = 4x² + y² = 1 矩阵:A = [4 0] [0 1] ``` 这是个椭圆(x方向压缩) ### 例子3:双曲线 ```Java f(x,y) = x² - y² = 1 矩阵:A = [1 0] [0 -1] ``` 这是个双曲线(马鞍形) ## 本质理解 二次型的本质是**描述"弯曲"的最简单方式**: 1. **线性函数**:f(x,y) = ax + by(平面) 2. **二次型**:f(x,y) = ax² + bxy + cy²(弯曲面) 就像: - 一阶导数描述"速度" - 二阶导数描述"加速度/弯曲" ## 为什么重要? ### 1. 优化问题 找函数的最小值: ```Java f(x) = x'Ax + b'x + c 在最小值点:梯度 = 0 二阶导数(Hessian矩阵)= 2A ``` ### 2. 物理能量 **动能**:E = ½mv² = ½x'Mx(M是质量矩阵) **势能**:V = ½kx² = ½x'Kx(K是刚度矩阵) ### 3. 统计学 **方差**:Var(X) = E[(X-μ)²] **协方差矩阵**:多元正态分布的形状 ## 判断二次型的性质 通过特征值判断: ### 正定(所有特征值 > 0) ```Java A = [2 1] [1 2] 特征值:3, 1 ``` 图形:碗状(有最小值) ### 负定(所有特征值 < 0) ```Java A = [-2 0] [0 -3] 特征值:-2, -3 ``` 图形:倒碗状(有最大值) ### 不定(有正有负) ```Java A = [1 0] [0 -1] 特征值:1, -1 ``` 图形:马鞍形 ## 实际例子 ### 机器学习:损失函数 ```Java Loss = (y - Wx)' (y - Wx) = 误差的平方和 ``` ### 经济学:效用函数 ```Java U(x,y) = -ax² - by² + cxy 消费x和y的边际效用递减 ``` ### 工程:结构稳定性 ```Java 能量 = ½x'Kx - F'x K是刚度矩阵,F是外力 ``` ## 线性 vs 非线性 **线性**:f(x+y) = f(x) + f(y) **二次型**:f(x+y) ≠ f(x) + f(y) 例如: ```Java f(x) = x² f(2) = 4 f(3) = 9 f(2+3) = 25 ≠ 4+9 ``` ## 核心洞察 二次型是: 1. **最简单的非线性**:只包含二次项 2. **局部近似**:任何光滑函数在某点附近都可以用二次型近似 3. **可以对角化**:通过坐标变换可以消除交叉项 **本质**:二次型描述了空间中的"弯曲程度"和"相互作用"——是理解非线性世界的第一步! ## 基本概念 设有矩阵 A 和向量 x: ```Java A = [2 1] x = [x₁] [1 3] [x₂] ``` 二次型就是:**f(x) = xᵀAx** ## 具体计算过程 ### 步骤 1:计算 Ax ```Java Ax = [2 1] [x₁] = [2x₁ + x₂] [1 3] [x₂] [x₁ + 3x₂] ``` ### 步骤 2:计算 xᵀ(Ax) ```Java xᵀAx = [x₁ x₂] [2x₁ + x₂] [x₁ + 3x₂] = x₁(2x₁ + x₂) + x₂(x₁ + 3x₂) = 2x₁² + x₁x₂ + x₁x₂ + 3x₂² = 2x₁² + 2x₁x₂ + 3x₂² ``` ## 实际例子 假设 x₁ = 1, x₂ = 2: ```Java f(1,2) = 2(1)² + 2(1)(2) + 3(2)² = 2 + 4 + 12 = 18 ``` ## 几何意义 这个二次型表示一个椭圆抛物面。如果我们画出 f(x₁,x₂) = c(常数)的等高线,会得到椭圆。 ## 矩阵性质与二次型 ### 1. 正定矩阵(所有特征值 > 0) 我们的矩阵 A 的特征值约为 3.618 和 1.382(都是正数),所以: - 二次型 f(x) > 0(对所有非零 x) - 几何上是一个"碗状"曲面,有唯一最小值点在原点 ### 2. 如果换个矩阵 ```Java B = [1 2] → f(x) = x₁² + 4x₁x₂ + x₂² [2 1] = (x₁ + 2x₂)² ``` 这是半正定的(特征值为 3 和 -1),曲面是个"马鞍形"。 ## 实际应用 1. **机器学习**:损失函数常是二次型,如最小二乘法 2. **物理学**:能量函数,如弹簧系统的势能 3. **优化问题**:判断函数的凸性,找最优解 二次型的核心就是:**把多个变量的二次关系用矩阵简洁地表示出来**。