Lean复数
外观
Lean复数[编辑 | 编辑源代码]
复数(Complex Numbers)是数学中一类重要的数,由实数部分和虚数部分组成,在工程、物理和计算机科学中有广泛应用。在Lean中,复数被定义为一种结构体,包含实部(re)和虚部(im)。本章将介绍如何在Lean中定义和使用复数,并展示其基本运算和应用。
复数的定义[编辑 | 编辑源代码]
在数学中,复数通常表示为 ,其中 是实部, 是虚部, 是虚数单位,满足 。在Lean中,复数可以通过标准库 `Mathlib` 中的 `Complex` 类型来使用。
Lean中的复数类型[编辑 | 编辑源代码]
Lean的 `Complex` 类型定义如下:
structure Complex where
re : ℝ -- 实部
im : ℝ -- 虚部
这里,`ℝ` 表示实数类型,`re` 和 `im` 分别存储复数的实部和虚部。
复数的基本运算[编辑 | 编辑源代码]
Lean提供了复数的基本运算,包括加法、减法、乘法和除法。以下示例展示了如何在Lean中定义和操作复数。
示例:复数的构造与运算[编辑 | 编辑源代码]
import Mathlib.Data.Complex.Basic
-- 定义两个复数
def z1 : ℂ := ⟨3, 4⟩ -- 3 + 4i
def z2 : ℂ := ⟨1, -2⟩ -- 1 - 2i
-- 复数加法
#eval z1 + z2 -- 输出:4 + 2i
-- 复数乘法
#eval z1 * z2 -- 输出:11 - 2i
-- 复数共轭
#eval Complex.conj z1 -- 输出:3 - 4i
解释:
- `z1 + z2` 计算为 。
- `z1 * z2` 计算为 。
- `Complex.conj z1` 返回复数的共轭复数,即实部不变,虚部取反。
复数的性质与函数[编辑 | 编辑源代码]
复数支持许多数学函数,如模(绝对值)、指数函数和对数函数。以下示例展示了一些常见操作:
示例:复数的模与指数函数[编辑 | 编辑源代码]
-- 计算复数的模(绝对值)
#eval Complex.abs z1 -- 输出:5(因为 √(3² + 4²) = 5)
-- 计算复数的指数函数
#eval Complex.exp (⟨0, π⟩ : ℂ) -- 输出:-1(欧拉公式 e^(iπ) = -1)
解释:
- `Complex.abs z1` 计算复数的模,即 。
- `Complex.exp (⟨0, π⟩)` 应用欧拉公式 。
实际应用案例[编辑 | 编辑源代码]
复数在信号处理、量子计算和图形学中有广泛应用。以下是一个简单的案例,展示如何在Lean中使用复数进行二维旋转:
案例:复数表示二维旋转[编辑 | 编辑源代码]
二维平面上的点 可以表示为复数 。旋转角度 可以通过乘以 实现:
-- 定义旋转函数
def rotate (θ : ℝ) (z : ℂ) : ℂ := Complex.exp (⟨0, θ⟩) * z
-- 旋转90度(π/2弧度)
def point : ℂ := ⟨1, 1⟩ -- 点 (1, 1)
#eval rotate (π / 2) point -- 输出:-1 + 1i
解释:
- 旋转后的复数计算为 。
- 结果 对应于旋转后的点 。
可视化复数[编辑 | 编辑源代码]
可以使用Mermaid图表展示复数的几何表示:
该图展示了复数 在复平面上的表示,包括实部、虚部和模。
总结[编辑 | 编辑源代码]
本章介绍了Lean中复数的定义、基本运算和实际应用。复数在数学和工程中非常重要,Lean的 `Mathlib` 提供了丰富的支持。通过代码示例和案例,我们展示了如何在Lean中使用复数进行计算和几何变换。
下一步,可以学习复数的更高级应用,如傅里叶变换或量子计算中的复数运算。