如何将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转换为double

Complex类有自己的方法,这些方法镜像了Math类中的许多可用方法。

Complex result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));

至于将其转换为double,有两个部分需要考虑。。。"实"值和"虚"值。两者都可用作double值,可通过属性访问:

double realPart = result.Real;
double imaginaryPart = result.Imaginary;