Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1.  
  2. namespace MasterMatrix
  3. {
  4. class Program
  5. {
  6.  
  7. static void Main(string[] args)
  8. {
  9.  
  10. }
  11.  
  12. static double[,] CreateMatrix(int N)
  13. {
  14.  
  15. Random rand = new Random();
  16. double[,] array1 = new double[N, N];
  17. for (int i = 0; i < N; i++)
  18. {
  19. for (int j = 0; j < N; j++)
  20. {
  21. array1[i, j] = rand.NextDouble() * 20.0 - 10.0;
  22. }
  23. }
  24. return array1;
  25. }
  26.  
  27. static void DisplayMatrix(double[,] array1, int N)
  28. {
  29. for (int i = 0; i < N; i++)
  30. {
  31. for (int j = 0; j < N; j++)
  32. {
  33. Console.Write("{0:f4}" + "\t", array1[i, j]);
  34. }
  35. Console.WriteLine();
  36. }
  37. }
  38.  
  39. static double[,] MultConstMatrix(double[,] array1, int N, double c)
  40. {
  41. for (int i = 0; i < N; i++)
  42. {
  43. for (int j = 0; j < N; j++)
  44. {
  45. array1[i, j] = c * array1[i, j];
  46. }
  47. }
  48. return array1;
  49. }
  50.  
  51. static double[,] TranspMatrix(double[,] array1, int N)
  52. {
  53. double temp;
  54. for (int i = 0; i < N; i++)
  55. {
  56. for (int j = 0; j < N; j++)
  57. {
  58. if (i > j)
  59. {
  60. temp = array1[i, j];
  61. array1[i, j] = array1[j, i];
  62. array1[j, i] = temp;
  63. }
  64. }
  65. }
  66. return array1;
  67. }
  68. static double[,] SumMatrix(double[,] array1, double[,] array2, int N, int M)
  69. {
  70. if (N == M)
  71. {
  72. for (int i = 0; i < N; i++)
  73. {
  74. for (int j = 0; j < N; j++)
  75. {
  76. array1[i, j] = array1[i, j] + array2[i, j];
  77. }
  78. }
  79. return array1;
  80. }
  81. else
  82. {
  83. Console.WriteLine("Невозможно посчитать сумму матриц!");
  84. return array1;
  85. }
  86. }
  87.  
  88. static double[,] MultyplyTwoMatrix(double[,] array1, double[,] array2, int N1, int N2, int M1, int M2)
  89. {
  90. if (N2 == M1)
  91. {
  92. double[,] array3 = new double[N1, M2];
  93.  
  94. for (int i = 0; i < N1; i++)
  95. {
  96. for (int j = 0; j < M2; j++)
  97. {
  98. array3[i, j] = 0;
  99. for (int k = 0; k < M1; k++)
  100. {
  101. array3[i, j] += array1[i, k] * array2[k, j];
  102. }
  103. }
  104. }
  105. return array3;
  106. }
  107. else
  108. {
  109. Console.WriteLine("Невозможно посчитать произведение матриц!");
  110. return array1;
  111. }
  112. }
  113.  
  114. static double DeterminateMatrix(double[,] array1, int N)
  115. {
  116. double Det = 0;
  117. if (N == 1)
  118. {
  119. Det = array1[0, 0];
  120. return Det;
  121. }
  122. else
  123. {
  124. for (int j = 0; j < N; j++)
  125. {
  126. double[,] tempArr = new double[N - 1, N - 1];
  127.  
  128. for (int k = 0; k < N; k++)
  129. {
  130. for (int l = 0; l < N; l++)
  131. {
  132.  
  133. if (k > 0 && l < j)
  134. {
  135. tempArr[k - 1, l] = array1[k, l];
  136. }
  137. else
  138. {
  139. tempArr[k - 1, l - 1] = array1[k, l];
  140. }
  141. }
  142. }
  143. {
  144.  
  145. Det += Math.Pow(-1.0, 0 + j) * array1[0, j] * DeterminateMatrix(tempArr, N - 1);
  146.  
  147. }
  148. }
  149. return Det;
  150. }
  151.  
  152.  
  153. }
  154. }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement