# 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. **优化问题**:判断函数的凸性,找最优解
二次型的核心就是:**把多个变量的二次关系用矩阵简洁地表示出来**。