Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace MasterMatrix
- {
- class Program
- {
- static void Main(string[] args)
- {
- }
- static double[,] CreateMatrix(int N)
- {
- Random rand = new Random();
- double[,] array1 = new double[N, N];
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- array1[i, j] = rand.NextDouble() * 20.0 - 10.0;
- }
- }
- return array1;
- }
- static void DisplayMatrix(double[,] array1, int N)
- {
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- Console.Write("{0:f4}" + "\t", array1[i, j]);
- }
- Console.WriteLine();
- }
- }
- static double[,] MultConstMatrix(double[,] array1, int N, double c)
- {
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- array1[i, j] = c * array1[i, j];
- }
- }
- return array1;
- }
- static double[,] TranspMatrix(double[,] array1, int N)
- {
- double temp;
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- if (i > j)
- {
- temp = array1[i, j];
- array1[i, j] = array1[j, i];
- array1[j, i] = temp;
- }
- }
- }
- return array1;
- }
- static double[,] SumMatrix(double[,] array1, double[,] array2, int N, int M)
- {
- if (N == M)
- {
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- array1[i, j] = array1[i, j] + array2[i, j];
- }
- }
- return array1;
- }
- else
- {
- Console.WriteLine("Невозможно посчитать сумму матриц!");
- return array1;
- }
- }
- static double[,] MultyplyTwoMatrix(double[,] array1, double[,] array2, int N1, int N2, int M1, int M2)
- {
- if (N2 == M1)
- {
- double[,] array3 = new double[N1, M2];
- for (int i = 0; i < N1; i++)
- {
- for (int j = 0; j < M2; j++)
- {
- array3[i, j] = 0;
- for (int k = 0; k < M1; k++)
- {
- array3[i, j] += array1[i, k] * array2[k, j];
- }
- }
- }
- return array3;
- }
- else
- {
- Console.WriteLine("Невозможно посчитать произведение матриц!");
- return array1;
- }
- }
- static double DeterminateMatrix(double[,] array1, int N)
- {
- double Det = 0;
- if (N == 1)
- {
- Det = array1[0, 0];
- return Det;
- }
- else
- {
- for (int j = 0; j < N; j++)
- {
- double[,] tempArr = new double[N - 1, N - 1];
- for (int k = 0; k < N; k++)
- {
- for (int l = 0; l < N; l++)
- {
- if (k > 0 && l < j)
- {
- tempArr[k - 1, l] = array1[k, l];
- }
- else
- {
- tempArr[k - 1, l - 1] = array1[k, l];
- }
- }
- }
- {
- Det += Math.Pow(-1.0, 0 + j) * array1[0, j] * DeterminateMatrix(tempArr, N - 1);
- }
- }
- return Det;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement