复数 C# 类
实现了复数最常用的函数。
引言
来吧:一个简单但数学上严谨的复数 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 日更新
- 添加了
Zero
和One
作为常量(例如,使用 "Complex z = Complex.One;
" 代替 "Complex z = new Complex(1)
")。 - 移除了除法运算中的重大错误(现在使用
a/b = a*Conj(b)*(1/(Abs(b)*Abs(b))
)。 - 修复了
ToString
方法中的错误。