如何将Complex复制为double

时间:2015-12-28 23:18:43

标签: c# casting complex-numbers

我有以下表达式:

Math.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0))

ReSharper发现错误"参数Numeric.Complex不能分配给double"类型。投这个的最好方法是什么? C#是否有内置方法,或者我是否需要在代码中编写代数来进行编写?

我在google中找不到任何有用的内容,大多数问题都是关于从double转换为Complex。

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是复杂的。

1 个答案:

答案 0 :(得分:2)

Complex类有自己的方法,可以反映Math类中的许多方法。

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

至于将它转换为double,有两个部分需要考虑......"真正的"价值和"想象"值。两者均以double值提供,可通过属性访问:

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