65.9K
CodeProject 正在变化。 阅读更多。
Home

复数 C# 类

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.82/5 (13投票s)

2007 年 6 月 3 日

CPOL

1分钟阅读

viewsIcon

44450

downloadIcon

494

实现了复数最常用的函数。

引言

来吧:一个简单但数学上严谨的复数 C# 库。再也不用担心负数的平方根了!

函数

  • 绝对值
  • 加法
  • 参数
  • 共轭
  • 余弦
  • 指数函数
  • 指数运算
  • 除法
  • 双曲函数 (Sinh, Cosh, Tanh, Coth, Sech, Csch)
  • 对数
  • 乘法
  • 正弦
  • 平方根
  • 减法

使用代码

您可以将引用添加到 CompLib.dll 到您的项目中,或者直接在您的项目中使用的类 Complex.cs

实际使用非常直观

Complex I = Complex.I; // imaginary unit
Complex a = new Complex(1, 3); // inits a = 1+3i
Complex a2 = 1 + 3 * I; // a equals a2

Complex z = Complex.Pow((Complex.Sin(1/(1+I))), 1/3);

关注点

还有一点:复数对数不是一个唯一的操作;主值计算方式与 CAS 世界中常见的方式相同。例如,方程 z^4 = -1 有四个复数解,但尝试 "z = Complex.Sqrt(Complex.Sqrt(-1));" 时只会返回一个解(例如 Maple)。这是由于指数运算的计算方式所致

Pow(a,b) := Exp(b * Log(a))

历史

即将推出

  • 使用正则表达式以字符串格式初始化复数,例如 "3+4i"。

2007 年 7 月 3 日更新 #2

  • 修复了 Arg() 中的重大错误(感谢 Petr Stanislav!);这会影响 Log()Pow()Sqrt()

2007 年 7 月 3 日更新

  • 添加了双曲函数。

2007 年 6 月 10 日更新

  • 将 ^-运算符替换为 "public static Complex Pow",类似于 Math.Pow

2007 年 6 月 7 日更新

  • 添加了 ZeroOne 作为常量(例如,使用 "Complex z = Complex.One;" 代替 "Complex z = new Complex(1)")。
  • 移除了除法运算中的重大错误(现在使用 a/b = a*Conj(b)*(1/(Abs(b)*Abs(b)))。
  • 修复了 ToString 方法中的错误。
© . All rights reserved.