Ejemplo n.º 1
0
        public void Initialize()
        {
            ReDrawTables();

            IsLastTable = false;

            exprSigns = new List <string>();

            textBox1.Clear();

            var arr = new double[VariablesCount + 1];

            for (int i = 1; i < arr.Length; i++)
            {
                arr[i] = double.Parse(dataGridView4[i - 1, 0].Value.ToString());
            }

            arr[0] = double.Parse(dataGridView4[arr.Length - 1, 0].Value.ToString());

            C = new Vec(arr);

            varNames = new List <string>();
            for (int i = 0; i < C.VariablesCount; i++)
            {
                varNames.Add($"x{i + 1}");
            }

            var vecList = new List <Vec>();

            for (int i = 0; i < LimitsCount; i++)
            {
                var limitArr = new double[VariablesCount + 1];

                for (int j = 1; j <= VariablesCount; j++)
                {
                    limitArr[j] = double.Parse(dataGridView3[j - 1, i].Value.ToString());
                }
                limitArr[0] = -double.Parse(dataGridView3[VariablesCount + 1, i].Value.ToString());
                var vec = new Vec(limitArr);
                vec.Sign = dataGridView3[VariablesCount, i].Value.ToString();
                vecList.Add(vec);
                exprSigns.Add(vec.Sign);
            }
            A             = new Mat(vecList);
            isNonNegative = IsNonNegative();
            PrintTargetFunction();
            PrintLimits();
            wNum = 0;
            CanonicalAnalys();

            textBox1.Text += $"Базисные переменные:" + Environment.NewLine;
            for (int i = 0; i < basicVariablesRows.Count; i++)
            {
                var limitVec    = vecList[i];
                var basicVarNum = basicVariablesRows[i];

                textBox1.Text += limitVec
                                 .Solve(basicVarNum)
                                 .FuncView($"{varNames[basicVariablesRows[i] - 1]}", varNames) + Environment.NewLine;
            }

            C = C.GetTagretFunc(vecList, basicVariablesRows);//
            PrintTargetFunction();
            SetText();
        }