复数 #
Math.js 支持复数的创建、操作和计算。复数支持由 complex.js 库提供支持。
在数学中,复数的形式为 a + bi,其中 a 和 b 是实数,i 代表虚数单位,定义为 i^2 = -1。(换句话说,i 是 -1 的平方根。)实数 a 称为复数的实部,实数 b 称为虚部。例如,3 + 2i 是一个复数,实部为 3,虚部为 2。复数常用于应用数学、控制理论、信号分析、流体动力学等领域。
用法 #
复数使用函数 math.complex 创建。此函数接受
- 两个数字,分别代表值的实部和虚部;
- 一个单独的字符串,包含
a + bi形式的复数值,其中a和b分别代表复数的实部和虚部。 - 一个对象,其中包含用于表示值的实部和虚部的属性
re和im,或者包含表示复数值极坐标的两个属性r和phi。该函数返回一个Complex对象。
语法
math.complex(re: number) : Complex
math.complex(re: number, im: number) : Complex
math.complex(complex: Complex) : Complex
math.complex({re: Number, im: Number}) : Complex
math.complex({r: number, phi: number}) : Complex
math.complex({abs: number, arg: number}) : Complex
math.complex(str: string) : Complex
示例
const a = math.complex(2, 3) // Complex 2 + 3i
a.re // Number 2
a.im // Number 3
const b = math.complex('4 - 2i') // Complex 4 - 2i
b.re = 5 // Number 5
b // Complex 5 - 2i
计算 #
Math.js 的大多数函数都支持复数。复数和实数可以混合使用。
const a = math.complex(2, 3) // Complex 2 + 3i
const b = math.complex('4 - 2i') // Complex 4 - 2i
math.re(a) // Number 2
math.im(a) // Number 3
math.conj(a) // Complex 2 - 3i
math.add(a, b) // Complex 6 + i
math.multiply(a, 2) // Complex 4 + 6i
math.sqrt(-4) // Complex 2i
API #
由 math.complex 创建的 Complex 对象包含以下属性和函数:
complex.re #
包含复数实部的数字。可读写。
complex.im #
包含复数虚部的数字。可读写。
complex.clone() #
创建复数的克隆。
complex.equals(other) #
测试一个复数是否等于另一个复数值。
两个复数相等,当且仅当它们的实部和虚部都相等。
complex.neg() #
返回一个复数,其负数的实部和虚部与当前复数具有相同的大小但符号相反。
complex.conjugate() #
返回一个复数,其共轭复数的实部与当前复数相同,虚部大小相同但符号相反。
complex.inverse() #
返回一个复数,该复数是当前复数的倒数。
complex.toVector() #
获取当前复数的向量表示。返回一个大小为 2 的数组。
complex.toJSON() #
返回复数的 JSON 表示,签名如下:{mathjs: 'Complex', re: number, im: number}。用于序列化复数时,请参阅 序列化。
complex.toPolar() #
获取复数的极坐标,返回一个包含 r 和 phi 属性的对象。
complex.toString() #
返回复数的字符串表示,格式为 a + bi,其中 a 是实部,b 是虚部。
complex.format([precision: number]) #
获取复数的字符串表示,格式为 a + bi,其中 a 是实部,b 是虚部。如果定义了精度,则单位值将四舍五入到提供的位数。
静态方法 #
可以通过 math.Complex 访问以下静态方法:
Complex.fromJSON(json) #
从 JSON 对象恢复复数。接受一个对象 {mathjs: 'Complex', re: number, im: number},其中 mathjs 属性是可选的。用于反序列化复数时,请参阅 序列化。
Complex.fromPolar(r: number, phi: number) #
从极坐标创建复数。
Complex.compare(a: Complex, b: Complex) #
返回两个复数的比较结果。
- 当
a的实部大于b的实部时,返回 1。 - 当
a的实部小于b的实部时,返回 -1。 - 当实部相等且
a的虚部大于b的虚部时,返回 1。 - 当实部相等且
a的虚部小于b的虚部时,返回 -1。 - 当实部和虚部都相等时,返回 0。
示例
const a = math.complex(2, 3) // Complex 2 + 3i
const b = math.complex(2, 1) // Complex 2 + 1i
math.Complex.compare(a,b) // returns 1
//create from json
const c = math.Complex.fromJSON({mathjs: 'Complex', re: 4, im: 3}) // Complex 4 + 3i