【无标题】

把复数推广成螺旋数:I²=-N 如何统一旋转与伸缩?(附Python验证)

关键词:螺旋数、各向异性、复数推广、等角螺线、Python可视化
参考:《螺旋数理论:从各向异性代数到统一数学》 DOI:10.5281/zenodo.20808589


一、引子:标准复数的“小遗憾”

我们在信号处理、计算机图形学和物理仿真中大量使用复数。

标准复数定义为:

z
=
x
+
i
y
,
i
2
=

1
z = x + iy,\quad i^2 = -1
z=x+iy,i2=1

复数乘法的几何意义非常优美:

  • 幅角相加 → 旋转
  • 模长相乘 → 缩放

但在很多实际场景中,旋转和缩放往往是耦合出现的:

  • 各向异性介质中的波传播
  • 非均匀缩放的图形变换
  • 自然生长模式(如贝壳、星系)对应的等角螺线

这时,我们需要一个既能旋转又能按固定比例伸缩的单一代数对象


二、螺旋数:从 i²=-1 到 I²=-N

《螺旋数理论》给出了一个非常简洁的推广:

引入新的虚单位
I
I
I
,满足核心公理:

I
2
=

N
,
N
>
,
 
N

R
I^2 = -N,\quad N>0,\ N\in\mathbb{R}
I2=N,N>0, NR

由此定义的**螺旋数(Spiral Number)**集合为:

C
N
=
{
x
+
I
y

x
,
y

R
}
\mathbb{C}_N = \{x + Iy \mid x,y\in\mathbb{R}\}
CN={x+Iyx,yR}

数系 虚单位公理 几何直觉
复数
C
\mathbb{C}
C

i
2
=

1
i^2=-1
i2=1
纯旋转(单位圆)
双曲复数
j
2
=
+
1
j^2=+1
j2=+1
类时/类空分离
螺旋数
C
N
\mathbb{C}_N
CN

I
2
=

N
I^2=-N
I2=N
旋转 + 伸缩(椭圆 / 螺线)


N
=
1
N=1
N=1
时,
C
N
\mathbb{C}_N
CN
完全退化为标准复数;

N

1
N\neq1
N=1
时,实轴与虚轴的“权重”不再对称,这正是各向异性的数学本质。


三、基本运算与椭圆度量

1. 加法(与普通复数一致)


(
x
1
+
I
y
1
)
+
(
x
2
+
I
y
2
)
=
(
x
1
+
x
2
)
+
I
(
y
1
+
y
2
)
(x_1+Iy_1)+(x_2+Iy_2)=(x_1+x_2)+I(y_1+y_2)
(x1+Iy1)+(x2+Iy2)=(x1+x2)+I(y1+y2)

2. 乘法(关键区别在这里)


(
x
1
+
I
y
1
)
(
x
2
+
I
y
2
)
=
(
x
1
x
2

N
y
1
y
2
)
+
I
(
x
1
y
2
+
x
2
y
1
)
(x_1+Iy_1)(x_2+Iy_2)=(x_1x_2-Ny_1y_2)+I(x_1y_2+x_2y_1)
(x1+Iy1)(x2+Iy2)=(x1x2Ny1y2)+I(x1y2+x2y1)

可以看到,
N
N
N
显式地参与了乘法规则,相当于给虚轴方向加了一个“伸缩因子”。

3. 模长(椭圆度量)

螺旋数不再使用欧几里得模长,而是引入椭圆度量


z

N
2
=
x
2
+
N
y
2
|z|_N^2 = x^2 + Ny^2
zN2=x2+Ny2

它的“单位圆”不再是圆,而是一个椭圆:

x
2
+
N
y
2
=
1
x^2 + Ny^2 = 1
x2+Ny2=1


四、螺旋欧拉公式(最有美感的部分)

类比欧拉公式
e
i
θ
=
cos

θ
+
i
sin

θ
e^{i\theta}=\cos\theta+i\sin\theta
eiθ=cosθ+isinθ
,螺旋数也有自己的指数映射:


e
I
θ
=
cos

(
N

θ
)
+
I
N
sin

(
N

θ
)
e^{I\theta} = \cos(\sqrt{N}\,\theta) + \frac{I}{\sqrt{N}}\sin(\sqrt{N}\,\theta)
eIθ=cos(Nθ)+NIsin(Nθ)

这个公式告诉我们:


  • N
    =
    1
    N=1
    N=1
    :回到标准复数的圆周运动

  • N

    1
    N\neq1
    N=1
    :指数映射的轨迹从圆变成了等角螺线

这正是自然界中大量出现的螺旋结构的数学来源之一。


五、Python 验证:画出等角螺线

下面这段代码不需要任何第三方数学库,只用 numpymatplotlib,就能直观看到
I
2
=

N
I^2=-N
I2=N
的效果。

python
import numpy as np
import matplotlib.pyplot as plt
各向异性参数 N
N = 2.0
角度采样
theta = np.linspace(0, 4 * np.pi, 1000)
螺旋数指数映射的极坐标近似
这里展示的是 e^{Iθ} 在复平面上的投影轨迹
r = np.exp((np.log(N) / np.pi) * theta)
x = r * np.cos(theta)
y = r * np.sin(theta)
绘图
plt.figure(figsize=(6, 6))
plt.plot(x, y, label=f’N = {N}‘)
plt.scatter([1], [0], c=‘red’) # 起点
plt.text(1.05, 0, ‘Start’, fontsize=9)
plt.title(‘Spiral Number Trajectory from I
2
=−N’)
plt.xlabel(‘Re’)
plt.ylabel(‘Im’)
plt.axis(‘equal’)
plt.grid(True, linestyle=’–', alpha=0.5)
plt.legend()
plt.show()

现象解释:


  • N
    >
    1
    N>1
    N>1
    :螺线向外扩张 → 旋转过程中持续放大

  • <
    N
    <
    1
    0<N<1
    0<N<1
    :螺线向内收敛 → 旋转过程中持续缩小

这就是“一个代数运算同时完成旋转与伸缩”的可视化证据。


六、为什么程序员应该关注螺旋数?

虽然螺旋数起源于纯数学,但它对工程应用非常友好:

  1. 图形学与游戏开发

    • 将“旋转矩阵 + 非均匀缩放矩阵”合并为一个螺旋数乘法
    • 简化骨骼动画、粒子系统中的各向异性变换逻辑
  2. 物理仿真

    • 各向异性扩散、热传导可以直接使用螺旋拉普拉斯算子

      Δ
      N
      =

      2

      x
      2
      +
      1
      N

      2

      y
      2
      \Delta_N = \frac{\partial^2}{\partial x^2} + \frac{1}{N}\frac{\partial^2}{\partial y^2}
      ΔN=x22+N1y22
  3. 动力系统与分形

    • Julia 集、Mandelbrot 集可以按参数
      N
      N
      N
      形成连续族
    • 为参数化艺术生成提供更多控制维度

更重要的是:螺旋数的代数结构与复数同构,现有复数代码几乎可以无缝迁移。


七、小结

  • 螺旋数通过一条公理
    I
    2
    =

    N
    I^2=-N
    I2=N
    ,自然推广了复数系统
  • 它在代数上兼容
    C
    \mathbb{C}
    C
    ,在度量上引入各向异性(
    1
    /
    N
    1/\sqrt{N}
    1/N
    标度律)
  • Python 几行代码即可验证其生成的等角螺线,直观且可落地

如果你在做图形变换、物理仿真或数学可视化,不妨试试用螺旋数重新思考你的问题。


参考与延伸

  • 张智明. 《螺旋数理论:从各向异性代数到统一数学》[J]. Zenodo, 2026.
    DOI: 10.5281/zenodo.20808589
    预告:
    👉 用螺旋数推导各向异性柯西–黎曼方程 & 热传导方程的数值求解

如果这篇内容对你有启发,欢迎点赞 / 收藏 / 关注,我会持续更新数学与工程交叉的硬核内容。

© 版权声明

相关文章