Chr*_*Fin 6 c# symbolic-math mathnet-numerics mathdotnet-symbolics math.net
我正在评估Math.NET Symbolics,以便在我们的应用程序中使用,我们需要一个简单的数学解析器,供用户根据我们的测量数据计算自定义方程.我们的数据采用复数形式.
要测试我在LINQPad中使用以下代码片段:
var complexA = new Complex(1, 1);
var complexB = new Complex(1, 2);
var symbols = new Dictionary<string, FloatingPoint>()
{
{ "a", complexA },
{ "b", complexB }
};
Evaluate.Evaluate(symbols, Infix.ParseOrUndefined("1/(a*b)+cos(b)")).ComplexValue.Dump();
Run Code Online (Sandbox Code Playgroud)
这很好用,但是我找不到以下运算符:
我们如何获得符号的REAL或IMAGINARY部分?
我试过real(b)和imag(b),但没有奏效.
作为一种解决方法,我也可以做以下事情,但我更喜欢像我这样的运营商abs(b):
var complexA = new Complex(1, 1);
var complexB = new Complex(1, 2);
var symbols = new Dictionary<string, FloatingPoint>()
{
{ "a", complexA },
{ "b", complexB },
{ "b_REAL", complexB.Real },
{ "b_IMAG", complexB.Imaginary }
};
Evaluate.Evaluate(symbols, Infix.ParseOrUndefined("1/(a*b)+b_REAL")).ComplexValue.Dump();
Run Code Online (Sandbox Code Playgroud)
PS:操作员的奖励积分也可以让我不用手动计算相位.