/// <summary> /// Creates a <c>UserDefinedMatrix</c> with random values. /// </summary> /// <param name="row">The number of rows.</param> /// <param name="col">The number of columns.</param> /// <returns>A <c>UserDefinedMatrix</c> with the given dimensions and random values.</returns> public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) { // Fill a matrix with standard random numbers. var normal = new Normal { RandomSource = new MersenneTwister(1) }; var matrixA = new UserDefinedMatrix(row, col); for (var i = 0; i < row; i++) { for (var j = 0; j < col; j++) { matrixA[i, j] = new Complex32((float)normal.Sample(), (float)normal.Sample()); } } return(matrixA); }
/// <summary> /// Creates a positive definite <c>UserDefinedMatrix</c> with random values. /// </summary> /// <param name="order">The order of the matrix.</param> /// <returns>A positive definite <c>UserDefinedMatrix</c> with the given order and random values.</returns> public static Matrix <Complex32> GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(int order) { // Fill a matrix with standard random numbers. var normal = new Normal { RandomSource = new MersenneTwister(1) }; var matrixA = new UserDefinedMatrix(order); for (var i = 0; i < order; i++) { for (var j = 0; j < order; j++) { matrixA[i, j] = new Complex32((float)normal.Sample(), (float)normal.Sample()); } } // Generate a Hermitian matrix which is positive definite. return(matrixA.ConjugateTranspose() * matrixA); }
public static Matrix <Complex32> GenerateRandomUserDefinedMatrix(int row, int col) { // Fill a matrix with standard random numbers. var normal = new Distributions.Normal { RandomSource = new Numerics.Random.MersenneTwister(1) }; var matrixA = new UserDefinedMatrix(row, col); for (var i = 0; i < row; i++) { for (var j = 0; j < col; j++) { matrixA[i, j] = new Complex32((float)normal.Sample(), (float)normal.Sample()); } } // Generate a matrix which is positive definite. return(matrixA); }
/// <summary> /// Creates a positive definite <c>UserDefinedMatrix</c> with random values. /// </summary> /// <param name="order">The order of the matrix.</param> /// <returns>A positive definite <c>UserDefinedMatrix</c> with the given order and random values.</returns> public static Matrix<Complex32> GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(int order) { // Fill a matrix with standard random numbers. var normal = new Normal(new MersenneTwister(1)); var matrixA = new UserDefinedMatrix(order); for (var i = 0; i < order; i++) { for (var j = 0; j < order; j++) { matrixA[i, j] = new Complex32((float) normal.Sample(), (float) normal.Sample()); } } // Generate a Hermitian matrix which is positive definite. return matrixA.ConjugateTranspose()*matrixA; }
/// <summary> /// Creates a <c>UserDefinedMatrix</c> with random values. /// </summary> /// <param name="row">The number of rows.</param> /// <param name="col">The number of columns.</param> /// <returns>A <c>UserDefinedMatrix</c> with the given dimensions and random values.</returns> public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) { // Fill a matrix with standard random numbers. var normal = new Normal(new MersenneTwister(1)); var matrixA = new UserDefinedMatrix(row, col); for (var i = 0; i < row; i++) { for (var j = 0; j < col; j++) { matrixA[i, j] = new Complex32((float) normal.Sample(), (float) normal.Sample()); } } return matrixA; }
public static Matrix<Complex32> GenerateRandomUserDefinedMatrix(int row, int col) { // Fill a matrix with standard random numbers. var normal = new Distributions.Normal { RandomSource = new Random.MersenneTwister(1) }; var matrixA = new UserDefinedMatrix(row, col); for (var i = 0; i < row; i++) { for (var j = 0; j < col; j++) { matrixA[i, j] = new Complex32((float)normal.Sample(), (float)normal.Sample()); } } // Generate a matrix which is positive definite. return matrixA; }
/// <summary> /// Initializes a square matrix with all zero's except for ones on the diagonal. /// </summary> /// <param name="order">the size of the square matrix.</param> /// <returns>A identity matrix.</returns> public static UserDefinedMatrix Identity(int order) { var m = new UserDefinedMatrix(order, order); for (var i = 0; i < order; i++) { m[i, i] = 1.0f; } return m; }