复数

复数

简单

说明

复数是一个形如a + b * i的数,其中a和b是实数,i满足i^2 = -1。

a称为z的实部,b称为z的虚部。 数a + b * i的共轭是a - b * i。 复数z = a + b * i的绝对值是一个实数|z| = sqrt(a^2 + b^2)。绝对值|z|^2的平方等于z与其共轭相乘的结果。

两个复数相加或相减,就是把它们的实部和虚部分别相加或相减: (a + i * b) + (c + i * d) = (a + c) + (b + d) * i, (a + i * b) - (c + i * d) = (a - c) + (b - d) * i.

乘法的结果按定义为 (a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i.

非零复数的倒数是 1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i.

用复数a + i * b除以另一个复数c + i * d,得到: (a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i.

把 e 提升为复数指数可以表示为e^(a + i * b) = e^a * e^(i * b),其中最后一项由欧拉公式给出:e^(i * b) = cos(b) + i * sin(b)。

实现以下运算:

  • 两个复数的加法、减法、乘法和除法,
  • 给定复数的共轭、绝对值和指数。

假设你使用的编程语言没有复数的实现。


来源

Wikipedia链接会在新窗口或新标签页中打开
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Haskell Exercism

准备好开始 复数 了吗?

注册 Exercism,借助 107 个练习 和真人导师指导,学习并掌握 Haskell,全部免费。