如何将 Complex 转换为 double
How to cast Complex to double
我有以下表达式:
Math.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0))
ReSharper 发现错误 "argument Numeric.Complex isn't assignable to type 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 是复杂的。
Complex
class 有自己的方法,与 Math
class.
中的许多可用方法相同
Complex result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));
至于将其转换为 double
,有两个部分需要考虑……"real" 值和 "imaginary" 值。两者都可用作 double
值,可通过属性访问:
double realPart = result.Real;
double imaginaryPart = result.Imaginary;
我有以下表达式:
Math.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0))
ReSharper 发现错误 "argument Numeric.Complex isn't assignable to type 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 是复杂的。
Complex
class 有自己的方法,与 Math
class.
Complex result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));
至于将其转换为 double
,有两个部分需要考虑……"real" 值和 "imaginary" 值。两者都可用作 double
值,可通过属性访问:
double realPart = result.Real;
double imaginaryPart = result.Imaginary;