Advertisement
Dambosin

dddddd

Mar 11th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <time.h>
  4. using namespace std;
  5. int n;
  6. double eps = 0.0001;
  7. bool converge(double *xk, double *xkp)
  8. {
  9. double norm = 0;
  10. for (int i = 0; i < n; i++)
  11. norm += (xk[i] - xkp[i])*(xk[i] - xkp[i]);
  12. return (sqrt(norm) < eps);
  13. }
  14.  
  15. int main()
  16. {
  17. double a[100][100];
  18. double b[100];
  19. double x[100];
  20. double p[100];
  21. cin >> n;
  22. for (int i = 0; i < n; i++) {
  23. x[i] = 0;
  24. }
  25. for (int i = 0; i < n; i++) {
  26. for (int j = 0; j < n; j++) {
  27. cin >> a[i][j];
  28. }
  29. cin >> b[i];
  30. }
  31. for (int i = 0; i < n; i++) {
  32.  
  33. int pos = 0;
  34. for (int j = 0; j < n; j++) {
  35. if (a[pos][i] < a[j][i]) {
  36. pos = j;
  37. }
  38. }
  39. double z[100];
  40. for (int j = 0; j < n; j++) {
  41. z[j] = a[i][j];
  42. a[i][j] = a[pos][j];
  43. a[pos][j] = z[j];
  44. }
  45. double g;
  46. g = b[i];
  47. b[i] = b[pos];
  48. b[pos] = g;
  49. }
  50. do
  51. {
  52. for (int i = 0; i < n; i++)
  53. p[i] = x[i];
  54. for (int i = 0; i < n; i++)
  55. {
  56. double var = 0;
  57. for (int j = 0; j < i; j++)
  58. var += (a[i][j] * x[j]);
  59. for (int j = i + 1; j < n; j++)
  60. var += (a[i][j] * p[j]);
  61. x[i] = (b[i] - var) / a[i][i];
  62. }
  63. } while (!converge(x, p));
  64. for (int i = 0; i < n; i++) {
  65. cout << x[i] << endl;
  66. }
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement