如何将Complex转换为double
本文关键字:double 转换 Complex | 更新日期: 2023-09-27 18:28:15
我有以下表达式:
Math.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0))
ReSharper捕获到错误"参数Numeric.Complex不可分配给类型double"。最好的铸造方式是什么?C#是有一个内置方法,还是我必须在代码中写一些代数来实现它?
我在谷歌上没有发现任何有用的东西,大多数问题都是关于从替身到复杂的演员阵容。
k0和X是双的。
更新:
感谢@GrantWinney的
var result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));
整个功能是
double Psi = A1 * Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0)) + B1 * Complex.Exp((-Complex.ImaginaryOne) * new Complex(k0 * X, 0.0));
Psi必须用作y轴坐标。来自@pmcoltrane的好问题。我想我需要真正的角色。有人知道我是对的吗?我以前没有画复杂的图形。
A1和B1是复杂的。
Complex
类有自己的方法,这些方法镜像了Math
类中的许多可用方法。
Complex result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));
至于将其转换为double
,有两个部分需要考虑。。。"实"值和"虚"值。两者都可用作double
值,可通过属性访问:
double realPart = result.Real;
double imaginaryPart = result.Imaginary;