方程式系统

时间:2015-10-05 21:33:26

标签: c#

我正在尝试用C#编写一个方程组程序。我知道如何在纸上解决问题,但我很难将其放入代码中。我对此非常陌生(不到一个月前开始编程,几天前就开始编程),所以我知道这不是正确的,但这是我能想到的最好的。我试着在这里和其他网站上寻找能够向我发送正确方向的东西,但却无法找到任何东西。我不希望你为我编写整个程序,只是为了给我一个正确的想法。这是我到目前为止所做的,我意识到它中的错误以及为什么它不起作用,我只是无法找到解决方法。

            Console.WriteLine("Enter first equation A: ");
            string str1A = Console.ReadLine();
            Console.WriteLine("Enter first equation B: ");
            string str1B = Console.ReadLine();
            Console.WriteLine("Enter first equation C: ");
            string str1C = Console.ReadLine();

            Console.WriteLine("Enter the second equation A: ");
            string str2A = Console.ReadLine();
            Console.WriteLine("Enter the second equation B: ");
            string str2B = Console.ReadLine();
            Console.WriteLine("Enter the second equation C: ");
            string str2C = Console.ReadLine();

            double dbl1A = Convert.ToDouble(str1A);
            double dbl1B = Convert.ToDouble(str1B);
            double dbl1C = Convert.ToDouble(str1C);
            double dbl2A = Convert.ToDouble(str2A);
            double dbl2B = Convert.ToDouble(str2B);
            double dbl2C = Convert.ToDouble(str2C);

            double dbl2AN = dbl2A * -1;
            double dbl2BN = dbl2B * -1;
            double dbl2CN = dbl2C * -1;

            double dbl3A = dbl1A + dbl2AN;
            double dbl3B = dbl1B + dbl2BN;
            double dbl3C = dbl1C + dbl2CN;

            Console.WriteLine(dbl3A + "+" + dbl3B + "+" + dbl3C);
            Console.ReadLine();

2 个答案:

答案 0 :(得分:2)

我假设您正在以Ax + By = C的形式获取两个方程的系数,如果情况如此,则该过程将与纸上的相同。将每个第二个等式乘以'系数乘以A1/A2,然后从第一个等式中的相应系数中减去它们(A的结果应为0)。这为您提供了B*y = C*(其中B*C*是值)的等式,您可以轻松地为y求解。然后将y重新插入原始等式并求解x

答案 1 :(得分:0)

我建议您退后一步,考虑一下您希望计算表达式的变量以及要传递给程序的数字。

“第一个等式A”应该是“3x”还是“3x = 2”或其他表达式?方程将具有相同的符号,因此必须被解析为我怀疑的左侧和右侧。虽然矩阵求逆是编码解法的一种途径,但您首先必须让用户输入矩阵的值。例如,考虑是否有2个等式:x + y = 4和x-y = 2。请注意,要解决这些问题,您可以添加它们并获得x = 3,而减法会为使用基本行操作的解决方案提供y​​ = 1。

如果你有一个矩阵,其中第一行是:(1,1),第二行是:(1,-1)那么你可以使用公式来反转它并为我的想法生成解决方案处理一个2 x 2的情况,可能会推广到3 x 3,这对计算来说可能有点难看。