Advertisement
Falexom

Untitled

May 5th, 2022
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5.  
  6. void Zapolnenie_2 (double **matrix, int n)
  7. {for (int i=0; i<n; i++)
  8. for (int j=0; j<n; j++)
  9. {cout<<"a["<<i<<"]["<<j<<"] = ";
  10. cin>>matrix[i][j];}
  11. }
  12. void Zapolnenie_1 (double *matrix, int n)
  13. {for (int i=0; i<n; i++)
  14. {cout<<"a["<<i<<"] = ";
  15. cin>>matrix[i];}
  16. }
  17. void Vivod_2 (double **matrix, int n)
  18. {for (int i=0; i<n; i++)
  19. {for (int j=0; j<n;j++)
  20. cout<<"\t"<<matrix[i][j];
  21. cout<<" "<<endl;}
  22. }
  23. void Vivod_1 (double *matrix, int n)
  24. {for (int i=0; i<n; i++)
  25. cout<<"\t"<<matrix[i];
  26. }
  27.  
  28. int main()
  29. {
  30. int n, k=0, sum;
  31. double eps;
  32. cout<<"Введите количесво переменных: ";
  33. cin>>n;
  34. double **koef = new double*[n];
  35. for (int c=0; c<n; c++)
  36. koef[c]=new double[n];
  37. double *temp = new double[n];
  38. double **alfa = new double*[n];
  39. for (int c=0; c<n; c++)
  40. alfa[c]=new double[n];
  41. double *betta = new double[n];
  42. double *x = new double[n];
  43.  
  44.  
  45.  
  46. cout<<"Введите матрицу коэффициентов СЛАУ:"<<endl;
  47. Zapolnenie_2 (koef, n);
  48. Vivod_2 (koef, n);
  49. cout<<"Введите матрицу векторов правых частей"<<endl;
  50. Zapolnenie_1 (temp, n);
  51. Vivod_1 (temp, n);
  52. cout<<endl<<"Введите точность вычисления: ";
  53. cin>>eps;
  54.  
  55. for (int i=0; i<n; i++)
  56. for (int j=0; j<n; j++)
  57. {if (i==j)
  58. alfa[i][j]=0;
  59. else
  60. alfa[i][j]=-koef[i][j]/koef[i][i];}
  61. for (int i=0;i<n;i++)
  62. betta[i]=temp[i]/koef[i][i];
  63. Vivod_2 (alfa, n);
  64. cout<<" "<<endl;
  65. Vivod_1 (betta, n);
  66.  
  67.  
  68. for (int i=0;i<n;i++)
  69. temp[i]=betta[i];
  70. for (int i=0; i<n; i++)
  71. {sum=0;
  72. for(int j=0; j<n;j++)
  73. sum+=alfa[i][j]*temp[j];
  74. x[i]=sum+betta[i];
  75. if (abs(x[i]-temp[i])<=eps)
  76. break;}
  77. cout<<" "<<endl;
  78.  
  79. Vivod_1 (temp,n);
  80.  
  81.  
  82.  
  83. return 0;
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement