【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
标题
7、【数学】【基础】复数是什么:从解方程到旋转
背景
上篇 blog
里反复出现 e i θ e^{i\theta} eiθ,并说"乘一个单位复数就是旋转",但复数本身没有交代。本篇把这块补上:复数从哪来、长什么样、为什么它天生就代表旋转。
从解方程说起:数系的扩张
人类扩展数系,几乎每一步都是为了让某种运算有解:
- 自然数做减法会出现不够减 → 引入负数,得到整数;
- 整数做除法会出现除不尽 → 引入分数,得到有理数;
- 有理数取极限、开方会出现无理数 → 补全成实数;
- 实数里 x 2 = − 1 x^2=-1 x2=−1 无解(任何实数的平方都非负)→ 引入虚数单位 i i i,得到复数。

历史上 16 世纪意大利人在解三次方程时,中间步骤冒出了"负数开平方",本以为无意义,结果这些"假数"在计算中相互抵消、最终给出正确的实数解------复数就这样被"逼"了出来。
复数的定义
规定虚数单位 i i i 满足
i 2 = − 1 i^2=-1 i2=−1
所有形如
z = a + b i ( a , b ∈ R ) z=a+bi\qquad(a,b\in\mathbb{R}) z=a+bi(a,b∈R)
的数就叫复数。其中 a a a 是实部 、 b b b 是虚部 。当 b = 0 b=0 b=0 时 z = a z=a z=a 就是实数,所以复数是实数的一次扩张。
四则运算
加减按分量进行:
( a + b i ) ± ( c + d i ) = ( a ± c ) + ( b ± d ) i (a+bi)\pm(c+di)=(a\pm c)+(b\pm d)i (a+bi)±(c+di)=(a±c)+(b±d)i
乘法用分配律展开,再用 i 2 = − 1 i^2=-1 i2=−1:
( a + b i ) ( c + d i ) = a c + a d i + b c i + b d i 2 = ( a c − b d ) + ( a d + b c ) i (a+bi)(c+di)=ac+ad\,i+bc\,i+bd\,i^2=(ac-bd)+(ad+bc)i (a+bi)(c+di)=ac+adi+bci+bdi2=(ac−bd)+(ad+bc)i
例如 ( 1 + 2 i ) ( 3 + 4 i ) = 3 + 4 i + 6 i + 8 i 2 = 3 + 10 i − 8 = − 5 + 10 i (1+2i)(3+4i)=3+4i+6i+8i^2=3+10i-8=-5+10i (1+2i)(3+4i)=3+4i+6i+8i2=3+10i−8=−5+10i。除法则借助共轭 z ˉ = a − b i \bar{z}=a-bi zˉ=a−bi,把分母变成实数,这里不展开。
复平面:复数就是一个点
把 a + b i a+bi a+bi 对应到平面上的点 ( a , b ) (a,b) (a,b)(横轴实部、纵轴虚部),复数立刻有了几何形象:它既是平面上的一个点,也是从原点出发的一支向量。

两个量随之而来:
- 模 :向量长度 ∣ z ∣ = a 2 + b 2 |z|=\sqrt{a^2+b^2} ∣z∣=a2+b2 ;
- 幅角 :向量与实轴的夹角 θ = arg z \theta=\arg z θ=argz。
极坐标与欧拉公式
用模和幅角表示复数:
z = r ( cos θ + i sin θ ) z=r(\cos\theta+i\sin\theta) z=r(cosθ+isinθ)
配合欧拉公式
e i θ = cos θ + i sin θ e^{i\theta}=\cos\theta+i\sin\theta eiθ=cosθ+isinθ
就得到最简洁的写法:
z = r e i θ z=re^{i\theta} z=reiθ
特例 e i π = − 1 e^{i\pi}=-1 eiπ=−1 把 e e e、 i i i、 π \pi π、 1 1 1、 0 0 0 串在一起,被称为最漂亮的公式。

乘法的几何意义:缩放 + 旋转
把两个复数都写成极坐标再相乘:
r 1 e i θ 1 ⋅ r 2 e i θ 2 = r 1 r 2 e i ( θ 1 + θ 2 ) r_1e^{i\theta_1}\cdot r_2e^{i\theta_2}=r_1r_2\,e^{i(\theta_1+\theta_2)} r1eiθ1⋅r2eiθ2=r1r2ei(θ1+θ2)
模相乘、角相加。也就是说,复数乘法同时完成了两件事:把长度乘以一个倍数、把方向转一个角度。

如果乘的是单位复数 e i θ e^{i\theta} eiθ(模为 1),那就只剩旋转------长度不变、方向转 θ \theta θ。这正是"复数天生代表旋转"的原因。
代数基本定理:为什么复数"够用"
复数还有一个漂亮的封闭性:代数基本定理 指出,任何 n n n 次复系数多项式在复数范围内恰好有 n n n 个根。换句话说,在复数里"方程一定有解",不用再为每种新方程临时扩数。复数不是锦上添花,而是让整个代数体系闭合的那块拼图。
回到 RoPE
第 6 篇里,位置 p o s \mathrm{pos} pos 决定旋转角 θ = p o s ⋅ ω i \theta=\mathrm{pos}\cdot\omega_i θ=pos⋅ωi,再给 q、k 乘 e i θ e^{i\theta} eiθ------用的正是"乘单位复数 = 旋转"。两个向量做点积时,角度相减,绝对位置被消掉,只留下相对距离 n − m n-m n−m。理解了复数,RoPE 的数学就只剩"拆对 + 调频率"这两件工程事了。
小结
复数是为"让 x 2 = − 1 x^2=-1 x2=−1 有解"而引入的数,写作 z = a + b i z=a+bi z=a+bi;在复平面上它是一个点/向量,模是长度、幅角是方向;欧拉公式 e i θ = cos θ + i sin θ e^{i\theta}=\cos\theta+i\sin\theta eiθ=cosθ+isinθ 把它写成 r e i θ re^{i\theta} reiθ,于是乘法变成"模相乘、角相加",乘单位复数 e i θ e^{i\theta} eiθ 就是纯旋转。它因解方程而生,因描述旋转而不可或缺------也是 RoPE 位置编码的数学底色。
OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!