Exemple #1
0
        public void DataBind(MatrixEquation mat)
        {
            Entity = (mat);

            //具有固定参数,则生成打开
            if (this.HasOrEnableFixedParam)
            {
                var fixedStorage = this.GetFixedParamStorage();
                if (fixedStorage != null)
                {
                    ParamFixedMatrixEquationBuilder equationBuilder = new ParamFixedMatrixEquationBuilder(fixedStorage);
                    var newEq = equationBuilder.Build(Entity);

                    MatrixEquationForm form = new MatrixEquationForm();
                    form.DataBind(newEq);
                    form.Show();
                }
            }

            StringBuilder sb = new StringBuilder();

            if (Entity.MaxSize > MaxOrderToShow)
            {
                sb.Append("超出最大显示阶数:" + Entity.MaxSize);
            }
            else
            {
                //左右方程
                this.richTextBoxControl_left.Text  = Entity.LeftSide.ToReadableText();
                this.richTextBoxControl_right.Text = Entity.RightSide.ToReadableText();

                if (Entity.HasWeightOfRightSide)
                {
                    richTextBoxControl_weightOfU.Text = Entity.QofU.ToReadableText();
                }

                sb.AppendLine("方程文本");
                sb.AppendLine(Entity.ToReadableText());
            }

            //法方程与观测残差
            var normal = Entity.NormalEquation;

            sb.AppendLine("法方程文本");
            sb.AppendLine(normal.ToReadableText());

            sb.AppendLine("参数计算结果");
            var est = normal.GetEstimated();

            sb.AppendLine(est.ToReadableText());

            var table = est.GetObjectTable();

            this.objectTableControl_result.DataBind(table);
            //写结果
            var paramPath = Path.Combine(OutputDirectory, "EstimatedParamOf" + Entity.Name + Setting.ParamFileExtension);

            ObjectTableWriter.Write(table, paramPath);


            sb.AppendLine("观测残差");
            sb.AppendLine(normal.GetResidual().ToReadableText());


            this.richTextBoxControl_result.Text = sb.ToString();
        }
        private void DataBind(MatrixEquation mat)
        {
            Entity = mat;



            //具有固定参数,则生成打开
            if (this.HasOrEnableFixedParam)
            {
                var fixedStorage = this.GetFixedParamStorage();
                if (fixedStorage != null)
                {
                    ParamFixedMatrixEquationBuilder equationBuilder = new ParamFixedMatrixEquationBuilder(fixedStorage);
                    var newEq = equationBuilder.Build(Entity);

                    MatrixEquationForm form = new MatrixEquationForm();
                    form.DataBind(newEq);
                    form.Show();
                }
            }



            this.richTextBoxControl_left.Text = Entity.LeftSide.ToReadableText();
            StringBuilder sb = new StringBuilder();

            sb.AppendLine(Entity.RightSide.ToReadableText());

            if (Entity.HasWeightOfRightSide && Entity.QofU.RowCount < 100)
            {
                sb.AppendLine("右边权逆阵");
                sb.AppendLine(Entity.QofU.ToReadableText());
            }

            this.richTextBoxControl_right.Text = sb.ToString();

            //输出
            var path = Path.Combine(OutputDirectory, mat.Name + Setting.TextMatrixEquationFileExtension);

            WriteToTextFile(path);


            //法方程与观测残差
            sb = new StringBuilder();
            var normal = Entity.NormalEquation;

            sb.AppendLine("法方程文本");
            sb.AppendLine(normal.ToReadableText());

            sb.AppendLine("参数计算结果");
            var est = normal.GetEstimated();

            sb.AppendLine(est.ToReadableText());

            var table = est.GetObjectTable();

            this.objectTableControl1.DataBind(table);
            //写结果
            var paramPath = Path.Combine(OutputDirectory, "EstimatedParamOf" + Entity.Name + Setting.ParamFileExtension);

            ObjectTableWriter.Write(table, paramPath);


            sb.AppendLine("观测残差");
            sb.AppendLine(normal.GetResidual().ToReadableText());

            richTextBoxControl_normal.Text = sb.ToString();
        }