Пример #1
0
        /// <summary>
        /// 式を行列形式で表現します。
        /// </summary>
        private void ExpressInMatrixForm()
        {
            int height = ORDER - 1;
            int width  = height + ORDER;

            mat = new Matrix(height, width);
            vec = new MatrixExp(width, 1);

            int c;

            string var = "f[" + (ORDER - 1).ToString() + "]";

            for (c = 0; c < height; c++)
            {
                Member mem = Member.EasyParse(var = "h" + var + "'");
                vec[c, 0] = (Expression)mem;
                for (int l = 0; l < height; l++)
                {
                    mat[l, c] = equations[l].GetFactorOfMember(mem);
                }
            }

            var = "f[{0}]";
            int i = 0;

            for (; c < width; c++, i++)
            {
                Member mem = Member.EasyParse(string.Format(var, i));
                vec[c, 0] = (Expression)mem;
                for (int l = 0; l < height; l++)
                {
                    mat[l, c] = equations[l].GetFactorOfMember(mem);
                }
            }
        }
Пример #2
0
        //===========================================================
        //		複製
        //===========================================================
        /// <summary>
        /// Matrix のコピーコンストラクタです。
        /// </summary>
        /// <param name="matrix">複製元の Matrix を指定します。</param>
        public MatrixExp(MatrixExp matrix)
        {
            this.vals = new Expression[
                this.lines = matrix.lines,
                this.columns = matrix.columns
                        ];

            for (int l = 0; l < this.lines; l++)
            {
                for (int c = 0; c < this.columns; c++)
                {
                    this.vals[l, c] = matrix.vals[l, c];
                }
            }
        }