我正在尝试做一个方法来计算一个行列式。为此,我正在使用MathNet.Symbolics
库。一切都很好,直到遇到一个小问题。我试图从一个行列式的公式中得到最终结果,在我使用Infix.Format
之后,我不知道为什么,但它没有给出令人满意的结果。而不是最终结果它给了我一个介于两者之间的方程式。我认为这与方程的一部分在2括号之间有关。我应该怎么做才能获得最终结果?如何使用MathNet.Symbolics获得最终结果?
这是我的代码:
using System;
using InputMath;
using MathNet.Symbolics;
using mns = MathNet.Symbolics.Expression;
namespace MathWizard
{
class Determinants
{
//The final result
public static string fnalResult;
public static void BasicDeterminant()
{
//The inputs before assigning them to theyr specific variable
string[] inputs;
inputs = Console.ReadLine().Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries);
Double x1 = Convert.ToDouble(inputs[0]);
Double y1 = Convert.ToDouble(inputs[1]);
Double x2 = Convert.ToDouble(inputs[2]);
Double y2 = Convert.ToDouble(inputs[3]);
var x = mns.Symbol("x");
var y = mns.Symbol("y");
var firstResult = Infix.Format(x * x1 * 1 + x1 * y2 * 1 + x2 * y * 1 - (x1 * x2 * 1 + 1 * y2 * x + 1 * y * x1));
Console.WriteLine(firstResult);
Console.ReadKey();
}
}
}
所以这是一个示例性输入:
输入后的数字将被分配这样的:
x1 = 1;
y1 = 3;
x2 = 6;
y2 = 4;
运行完所有代码后,输出结果如下:
4 + X + 6 * Y - (6 + 4 * X + Y)
解决该输出后,实际预期的结果应该是:
-2-3 * X + 7 * Y
您可以添加示例输入以及相应的预期结果吗? –
我编辑了相应的问题。谢谢! – Noobie