当前位置: 首页>>代码示例>>C#>>正文


C# SparseMatrix.ToMatrixString方法代码示例

本文整理汇总了C#中MathNet.Numerics.LinearAlgebra.Double.SparseMatrix.ToMatrixString方法的典型用法代码示例。如果您正苦于以下问题:C# SparseMatrix.ToMatrixString方法的具体用法?C# SparseMatrix.ToMatrixString怎么用?C# SparseMatrix.ToMatrixString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MathNet.Numerics.LinearAlgebra.Double.SparseMatrix的用法示例。


在下文中一共展示了SparseMatrix.ToMatrixString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BasicFluid2D

        public BasicFluid2D(int max_x, int max_y)
        {
            if (max_x != max_y) throw new ArgumentException();
            this.max_x = max_x;
            this.max_y = max_y;

            u_x = new double[max_x + 1, max_y];
            u_y = new double[max_x, max_y + 1];
            cells = new GridCell[max_x, max_y];
            A = new SparseMatrix(max_x * max_y);
            for (int i = 0; i < max_x; i++)
                for (int j = 0; j < max_y; j++)
                {
                    A[i * max_x + j, i * max_x + j] = 2 + (i == 0 || i + 1 == max_x ? 1 : 0) + (j == 0 || j + 1 == max_y ? 1 : 0);
                    if (i > 0)
                        A[(i - 1) * max_x + j, i * max_x + j] = A[i * max_x + j, (i - 1) * max_x + j] = -1;
                    if (j > 0)
                        A[i * max_x + j - 1, i * max_x + j] = A[i * max_x + j, i * max_x + j - 1] = -1;
                    if (i < max_x - 1)
                        A[(i + 1) * max_x + j, i * max_x + j] = A[i * max_x + j, (i + 1) * max_x + j] = -1;
                    if (j < max_y - 1)
                        A[i * max_x + j + 1, i * max_x + j] = A[i * max_x + j, i * max_x + j + 1] = -1;
                    cells[i, j] = new GridCell();
                    //cells[i, j].Adiag = (short)(2 + (i == 0 || i + 1 == max_x ? 1 : 0) + (j == 0 || j + 1 == max_y ? 1 : 0));
                    //cells[i, j].Aplusi = (short)(i + 1 < max_x ? -1 : 0);
                    //cells[i, j].Aplusj = (short)(j + 1 < max_y ? -1 : 0);
                    if (new Vector2(i - max_x / 2, j - max_y / 2).LengthSquared < max_x * max_y / 16)
                        cells[i, j].ImplicitSurface = 5;
                }
            using (TextWriter tw = new StreamWriter("output.txt")) tw.WriteLine(A.ToMatrixString(900, 900));
            solver = new
                MathNet.Numerics.LinearAlgebra.Double.Solvers.Preconditioners.IncompleteLU();
            solver.Initialize(A);
            p = new DenseVector(max_x * max_y);
            d = new DenseVector(max_x * max_y);
        }
开发者ID:kjin,项目名称:cs5643_a4,代码行数:36,代码来源:BasicFluid2D.cs


注:本文中的MathNet.Numerics.LinearAlgebra.Double.SparseMatrix.ToMatrixString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。