Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7. int n, v;//A - матрица
  8. cout<<"v="; cin>>v;
  9. cout<<"n="; cin>>n;
  10. int **A=new int *[n];
  11.  
  12. cout << n << endl;
  13.  
  14.  
  15. for (int i=0; i<n; ++i)
  16.   A[i]=new int [n];
  17.  
  18. A[0][0]=v;
  19.  
  20.  
  21. for (int i=1; i<n; i++)
  22.   A[i][i]=A[i-1][i-1]+2;
  23.  
  24.  
  25. for (int i=0; i<n; i++)
  26.   for (int j=0; j<n; j++)
  27.     if(j!=i)
  28.       A[i][j]=0.01*A[i][i];
  29.  
  30. cout << "Первичная матрица:" << endl;
  31. for (int i=0; i<n; i++){
  32.   for(int j=0; j<n; j++)
  33.     if(A[i][j] >= 10)
  34.       cout<<"A["<<i<<"]["<<j<<"] = " << A[i][j] << "| ";
  35.     else
  36.       cout<<"A["<<i<<"]["<<j<<"] = " << A[i][j] << " | ";
  37.   cout << endl;
  38. }
  39.  
  40. int *h=new int[n];//h-вектор-столбец
  41.  
  42. for (int i=0; i<n; i++)
  43.   h[i]=A[i][i];
  44.  
  45. int *b=new int [n];//умножение матрицы А на вектор-столбец
  46.  
  47. for(int j=0;j<n;j++){
  48.   b[j]=0;
  49.   for(int i=0;i<n;i++){
  50.     b[j]=b[j]+h[j]*A[j][i];
  51.   }
  52. }
  53.  
  54. cout << endl << "b: ";
  55. for(int j=0;j<n;j++)
  56.     cout << b[j] << " ";
  57. cout << endl << endl;
  58.  
  59.  
  60. int **M=new int *[n];//Расширенная матрица
  61.  
  62. for (int i=0; i<n; ++i)
  63.   M[i]=new int [n];
  64.  
  65. for (int i=0; i<n; ++i){
  66.   for (int j=0; j<n; ++j){
  67.       M[i][j] = A[i][j];
  68.       M[i][n] = b[i];
  69.     }
  70. }
  71.  
  72. cout << "Расширенная матрица: " << endl;
  73. for (int i=0; i<n; i++){
  74.   for(int j=0; j<=n; j++)
  75.     if(M[i][j] >= 10)
  76.       cout<<"M["<<i<<"]["<<j<<"] = " << M[i][j] << "| ";
  77.     else
  78.       cout<<"M["<<i<<"]["<<j<<"] = " << M[i][j] << " | ";
  79.   cout << endl;
  80. }
  81.  
  82. //прямой ход метода Гаусса
  83.  
  84. double d, s;
  85. double *x = new double [n];
  86.  
  87.  
  88. /*
  89. for (int k = 0; k < n; k++){
  90.     for (int j = k + 1; j <= n; j++){
  91.         d = M[k][j] / M[k][k];
  92.         for (int i = k; i <= n; i++){
  93.             M[k][i] = M[k][i] - d * M[k][i];
  94.         }
  95.         b[k] = b[k] - d * b[k];
  96.     }
  97. }
  98.  
  99.  
  100.  
  101. for (int k = n; k >= 1; k--){
  102.   d = 0;
  103.   x[k] = (b[k] - d) / M[k-1][k];
  104.   for (int j = k; j <= n; j++){
  105.     s = M[k][j] * x[j];
  106.     d = d + s;
  107.   }
  108. }
  109.  
  110. cout << endl << "Korni sistemy: " << endl;
  111.  
  112. for(int i = 0; i <= n; i++)
  113.     cout << "x[" << i << "]=" << x[i] << " " << endl;
  114. */
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement