我有以下表达式:
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是复杂的。
答案 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;