Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. using System;
  2. class Gauss
  3. {
  4. static double[,] matrix = {{1.334E-4, 4.123E+1, 7.912E+2, -1.544E+3, -711.5698662},
  5. {1.777, 2.367E-5, 2.07E+1, -9.035E+1, -67.87297633},
  6. {9.188, 0, -1.015E+1, 1.988E-4, -0.9618012},
  7. {1.002E+2, 1.442E+4, -7.014E+2, 5.321, 13824.121}};
  8. static double[,] matrix2 = {{1.334E-4, 4.123E+1, 7.912E+2, -1.544E+3, -711.5698662},
  9. {1.777, 2.367E-5, 2.07E+1, -9.035E+1, -67.87297633},
  10. {9.188, 0, -1.015E+1, 1.988E-4, -0.9618012},
  11. {1.002E+2, 1.442E+4, -7.014E+2, 5.321, 13824.121}};
  12. static int n = 4;
  13. public static void Main()
  14. {
  15. double[] ans = new double[n];
  16. Console.WriteLine("With out pivot:");
  17. GaussElim();
  18. Cal(ans);
  19. PrintAnsElim(ans);
  20.  
  21. Console.WriteLine("With pivot:");
  22. matrix = matrix2;
  23. Pivot();
  24. GaussElim();
  25. Cal(ans);
  26. PrintAnsElim(ans);
  27. }
  28. static void PrintAnsElim(double[] ans)
  29. {
  30. for(int i=0 ; i<n ; i++)
  31. Console.WriteLine("{0}",ans[i]);
  32. }
  33. static void Print()
  34. {
  35. for(int i=0 ;i<n ; i++)
  36. {
  37. for(int j=0 ; j<n+1 ; j++)
  38. {
  39. Console.Write("{0} ",matrix[i,j]);
  40. }
  41. Console.WriteLine();
  42. }
  43. }
  44. static void Pivot()
  45. {
  46. for(int i=0 ; i<n ; i++){
  47. for(int j=0 ; j<n ; j++){
  48. if(matrix[i,0]>matrix[j,0]){
  49. for(int k=0 ; k<n+1 ; k++){
  50. Swap(ref matrix[i,k],ref matrix[j,k]);
  51. }
  52. }
  53. }
  54. }
  55. }
  56. static void Swap(ref double a,ref double b)
  57. {
  58. double tmp = a;
  59. a = b;
  60. b = tmp;
  61. }
  62. static void GaussElim()
  63. {
  64. int i,j,k;
  65. double a,b;
  66. for(j=0 ; j<n-1 ; j++)
  67. {
  68. for(i=j+1 ; i<n ; i++)
  69. {
  70. a = matrix[i,j];
  71. b = matrix[j,j];
  72. for(k=j ; k<n+1 ; k++)
  73. {
  74. matrix[i,k] -=matrix[j,k]*a/b;
  75. }
  76. }
  77. }
  78. }
  79. static void Cal(double[] ans)
  80. {
  81. int i,j;
  82. for(i = n-1 ; i>=0 ; i--)
  83. {
  84. for(j = n-1 ; j>=i ; j--)
  85. {
  86. if(j == i)
  87. {
  88. ans[i] = matrix[i,n]/matrix[i,j];
  89. }
  90. else
  91. {
  92. matrix[i,n] -= matrix[i,j]*ans[j];
  93. }
  94. }
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement