虛數單位

| 高斯整數導航 | ||||||
|---|---|---|---|---|---|---|
| ↑ | ||||||
| 2i | ||||||
| −1+i | i | 1+i | ||||
| ← | −2 | −1 | 0 | 1 | 2 | → |
| −1−i | −i | 1−i | ||||
| −2i | ||||||
| ↓ | ||||||
| 數系 |
| 各式各樣的数 |
|---|
| 基本 |
| 延伸 |
| 其他類別與概念 |
| 数学常数 |
在數學、物理及工程學裏,虛數單位是指二次方程的解。虽然沒有這樣的实数可以滿足這個二次方程,但可以通過虛數單位将實數系統延伸至复数系統。延伸的主要動機為有很多實係數多項式方程式無實數解。例如剛才提到的方程式就無實數解。可是倘若我們允許解答為虛數,那麼這方程式以及所有的多項式方程式都有解。虛數單位通常標記為,但在涉及电气、电机工程等电学相关领域时,则往往标记为,这是为了避免与电流(记为或)相混淆。
定義
[编辑]虛數單位定義為二次方程式的兩個根中的一個。這方程式又可等價表達為:
- 。
由於實數的平方絕不可能是負數,我們假設有這麼一個數目解答,給它設定一個符號。很重要的一點是,是一個良定義的數學構造。
另外,虛數單位同樣可以表示為:
然而往往被誤認為是錯的,他們的證明的方法是:
- 因為,但是-1不等於1。
- 但請注意:成立的條件有,不能為負數。
實數運算可以延伸至虛數與複數。當計算一個表達式時,我們只需要假設是一個未知數,然後依照的定義,替代任何的出現為-1。的更高整數冪數也可以替代為,,或,根據下述方程式:
- ,
- ,
- 。
一般地,有以下的公式:
其中表示被4除的余数。
補充定义
[编辑]虚数单位 是复数域 中的一个基本元素,其核心性质由以下等价方式之一定义:
代数定义
[编辑]作为二次方程 的一个解。即, 是满足方程
的数。由于该方程在实数域 内无解,引入 是构造更广的数系——复数域的关键步骤。
作为有序对
[编辑]在复数严格的公理化构造中,复数定义为有序对 ,其中 。在此框架下,虚数单位 被定义为有序对
- 。
而复数的乘法规则定义为 。由此可验证:
- 。
这一定义完全绕开了“负数的平方根”这一初始概念,从而在逻辑上更为基础。
i和-i
[编辑]方程有两个不同的解,它们都是有效的,且互为共轭虚数及倒數。更加确切地,一旦固定了方程的一个解,那么(不等于)也是一个解,由于这个方程是的唯一的定义,因此这个定义表面上有歧义。然而,只要把其中一个解选定,并固定为,那么实际上是没有歧义的。这是因为,虽然和在数量上不是相等的(它们是一对共轭虚数),但是和之间没有质量上的区别(-1和+1就不是这样的)。在任何的等式中同時將所有i替換為-i,該等式仍成立。
正当的使用
[编辑]虚数单位有时记为。但是,使用这种记法时需要非常谨慎,这是因为有些在实数范围内成立的公式在复数范围内并不成立。例如,公式仅对于非负的实数和才成立。
假若這個關係在虚数仍成立,則會出現以下情況:
- (不正确)
- (不正确)
- (不正确)
与主平方根的关系
[编辑]在复数域中,“平方根”是一个多值函数。对于非负实数 ,符号 通常指其唯一的非负实平方根(称为**算术平方根**或**主平方根**)。然而,对于负数或一般的复数,符号 必须明确其分支的选择。通常,复数的**主平方根**函数定义为其辐角落在区间 内的那个根。 在这种约定下, 的主值是 (而非 )。即便如此,涉及多个复数的主平方根的恒等式也普遍不成立。因此,在处理复数时,最安全且清晰的做法是直接使用符号 及其基本性质 进行计算,避免对负数直接应用根号运算法则。
i的运算
[编辑]
利用复数的运算规则和欧拉公式,可以对虚数单位 进行各种数学运算,包括平方根、幂、对数和三角函数。以下运算除特殊说明外,均为与 有关的多值函数,在实际应用时必须指明函数的定义选择在黎曼面的哪一支。下面列出的仅仅是最常采用的黎曼面分支的计算结果。
基本运算与幂循环
[编辑]虚数单位 的整数幂遵循一个周期为4的循环:
一般地,对任意整数 ,有:
其中 表示被4除的余数。
平方根
[编辑]的平方根为:
使用算术平方根符号表示其主值:
其解法為先假設兩實數 及 ,使得 ,然后求解 。[1]
一般幂运算
[编辑]利用欧拉公式 ,可以将虚数单位表示为指数形式:
- ,其中 为任意整数。
由此可推导出更一般的幂运算公式。设 ,且 ,则有:
- 以 为指数的幂(实数的虚数次幂):
这是一个模为1的复数,其几何意义是在复平面上将点1旋转 弧度。
- 以虚数为指数的幂(实数底数的纯虚数次幂):
- 复数的复数次幂(最一般的情况):
此公式清晰地分离了结果在复平面上的**伸缩因子** 和**旋转因子** 。
- 最为人熟知的特例: 的 次幂
- ,
代入不同的 值,可計算出無限多的解。当 時,得到其主值 0.207879576...[2]
对数
[编辑]- 以 为底的对数:
对于正实数 ,有:
- (取主值)
- 更一般地,对于正实数 且 ,以 为底的对数可由换底公式导出:
- , 。
这是一个纯虚数,且由于 的多值性,其结果也有无穷多个值。
三角与双曲函数
[编辑]以下恒等式揭示了虚数单位如何联系三角函数与双曲函数,这是欧拉公式的直接推论。对于实数 :
这些公式表明,对虚自变量的三角函数求值,会转化为实自变量的双曲函数。
作为直接应用,可以计算:
在程式語言
[编辑]- 大部分的程式語言都不提供虛數單位,且平方根函數(大多為sqrt()或Math.Sqrt())的引數不可以是負數,因此,必須自行建立類別後方可使用。
- 但Lisp的许多实现与方言,如Common Lisp,内建虚数和複數的支持。不少动态语言受其影响,也在语言本身或标准库中支持虚数和複數,如Python、Ruby。
- 一些传统编程语言,如C语言,也从C99开始支持虚数和複數。
- 在Matlab,虛數單位的表示方法為i或j,但i和j在for迴圈可以有其他用途。
- 在Mathematica,虛數單位的表示方法為I、𝕚或𝕛。
- 在Maple,必須啟用虛數功能,並選擇用i還是j表示虛數單位。
- Go語言於第 1.0 版就内建虚数和複數的支持,變數類型為
complex64和complex128[3]。
代码示例
[编辑]以下是一些编程语言中定义虚数单位 及进行基本复数运算的方法:
| 编程语言 | 示例代码 (定义虚数单位与基础运算) | 备注与输出示例 |
|---|---|---|
| Python | # 虚数单位用后缀 j 表示
i = 1j
print(f"虚数单位 i = {i}")
print(f"i 的平方 i² = {i ** 2}")
# 输出:虚数单位 i = 1j
# 输出:i 的平方 i² = (-1+0j)
# 复数构造与运算
z1 = 3 + 4j # 复数字面量
z2 = complex(1, -2) # complex(实部, 虚部) 函数
print(f"复数 z1 = {z1}")
print(f"复数 z2 = {z2}")
print(f"z1 + z2 = {z1 + z2}") # 加法:(4+2j)
print(f"z1 * z2 = {z1 * z2}") # 乘法:(11-2j)
# 使用 cmath 模块进行更多运算
import cmath
print(f"e^(i*π) = {cmath.exp(1j * cmath.pi)}") # 欧拉公式,近似 (-1+1.2246467991473532e-16j)
|
* Python 原生支持复数类型,属于 complex 类。
|
| C语言 (C99标准) | #include <complex.h>
#include <stdio.h>
int main(void) {
// 宏 I 表示虚数单位 i
double complex i = I;
double complex z1 = 3.0 + 4.0 * I;
double complex z2 = 1.0 - 2.0 * I;
// 基本运算
double complex i_squared = i * i;
double complex sum = z1 + z2;
double complex product = z1 * z2;
// 输出结果,creal()和cimag()分别提取实部和虚部
printf("i² = %.2f %+.2fi\n", creal(i_squared), cimag(i_squared));
// 输出:i² = -1.00 +0.00i
printf("z1 + z2 = %.2f %+.2fi\n", creal(sum), cimag(sum));
// 输出:z1 + z2 = 4.00 +2.00i
printf("z1 * z2 = %.2f %+.2fi\n", creal(product), cimag(product));
// 输出:z1 * z2 = 11.00 -2.00i
return 0;
}
|
* 需包含 <complex.h> 头文件,并使用标准宏 I 表示虚数单位。
|
註解
[编辑]参见
[编辑]参考文献
[编辑]- Paul J. Nahin, An Imaginary Tale, The Story of √-1, Princeton University Press, 1998