示例#1
0
        public void Solve()
        {
            Matrix coefficients = new Matrix(NUnknown.Value, NUnknown.Value);

            for (int i = 0; i != CoefficientMatrix.Count; ++i)
            {
                for (int j = 0; j != CoefficientMatrix[i].Count; ++j)
                {
                    coefficients[i, j] = CoefficientMatrix[i][j].Val;
                }
            }

            //xxx check for nulls
            double[] b = BVector.Select(x => x.Val).ToArray();
            double[] solution;
            bool     success = _model.Solve(coefficients, b, out solution);

            if (success)
            {
                var builder = new StringBuilder();
                for (int i = 0; i != solution.Length; ++i)
                {
                    builder.Append(Unknowns[i] + " = " + solution[i] + "\n");
                }
                SolutionText = builder.ToString();
            }
            else
            {
                SolutionText = "Singular coefficient matrix";
            }
        }