DarkDevourer

Метод простых итераций и Зейделя

May 18th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <math.h>
  4. #include <cstdlib>
  5. #include <locale>
  6. #include <iomanip>
  7.  
  8. using namespace std;
  9. int main()
  10. {
  11. setlocale(LC_ALL, "Russian");
  12. double x = 0, x1 = 0, y = 0, y1 = 0, z = 0, z1 = 0, v = 0, v1 = 0, e = 0.001, pogx, pogy, pogz, pogv;
  13. int k = 1;
  14. do
  15. {
  16. cout.precision(4);
  17. cout << fixed;
  18. x1 = x;
  19. y1 = y;
  20. z1 = z;
  21. v1 = v;
  22. cout << endl << k << "-я итерация." << endl;
  23. x = (-y1 + z1 - 2 * v1 + 6) / 5;
  24. y = (x1 + z1 - 2 * v1 - 14) / 6;
  25. z = (-x1 + y1 + v1 - 3) / 8;
  26. v = (x1 + y1 + z1 + 5) / 10;
  27. pogx = abs(x - x1);
  28. pogy = abs(y - y1);
  29. pogz = abs(z - z1);
  30. pogv = abs(v - v1);
  31. cout.precision(4);
  32. cout << "x = (-y + z - 2 * v + 6) / 5 = " << x << endl;
  33. cout << "y = (x + z - 2 * v - 14) / 6 = " << y << endl;
  34. cout << "z = (-x + y + v - 3) / 8 = " << z << endl;
  35. cout << "v = (x + y + z + 5) / 10 = " << v << endl;
  36. cout << "Погрешность для x = " << pogx << endl;
  37. cout << "Погрешность для y = " << pogy << endl;
  38. cout << "Погрешность для z = " << pogz << endl;
  39. cout << "Погрешность для v = " << pogv << endl;
  40. k++;
  41. } while (pogx > e || pogy > e || pogz > e || pogv > e);
  42. system("pause");
  43. return 0;
  44.  
  45. }
  46.  
  47. /*#include "pch.h"
  48. #include <iostream>
  49. #include <math.h>
  50. #include <cstdlib>
  51. #include <locale>
  52. #include <iomanip>
  53.  
  54. using namespace std;
  55. int main()
  56. {
  57. setlocale(LC_ALL, "Russian");
  58. double x = 0, x1 = 0, y = 0, y1 = 0, z = 0, z1 = 0, v = 0, v1 = 0, e = 0.001, pogx,pogy, pogz, pogv;
  59. int k = 1;
  60. cout << endl << k << "-я итерация." << endl;
  61. x = (-y1 + z1 - 2 * v1 + 6) / 5;
  62. y = (x1 + z1 - 2 * v1 - 14) / 6;
  63. z = (-x1 + y1 + v1 - 3) / 8;
  64. v = (x1 + y1 + z1 + 5) / 10;
  65. pogx = abs(x - x1);
  66. pogy = abs(y - y1);
  67. pogz = abs(z - z1);
  68. pogv = abs(v - v1);
  69. cout.precision(4);
  70. cout << fixed;
  71. cout << "x = (-y + z - 2 * v + 6) / 5 = " << x << endl;
  72. cout << "y = (x + z - 2 * v - 14) / 6 = " << y << endl;
  73. cout << "z = (-x + y + v - 3) / 8 = " << z << endl;
  74. cout << "v = (x + y + z + 5) / 10 = " << v << endl;
  75. cout << "Погрешность для x = " << pogx << endl;
  76. cout << "Погрешность для y = " << pogy << endl;
  77. cout << "Погрешность для z = " << pogz << endl;
  78. cout << "Погрешность для v = " << pogv << endl;
  79. k++;
  80. while (pogx > e || pogy > e || pogz > e || pogv > e)
  81. {
  82. cout.precision(4);
  83.  
  84. x1 = x;
  85. y1 = y;
  86. z1 = z;
  87. v1 = v;
  88. cout << endl << k << "-я итерация." << endl;
  89. x = (-y + z - 2 * v + 6) / 5;
  90. y = (x + z - 2 * v - 14) / 6;
  91. z = (-x + y + v - 3) / 8;
  92. v = (x + y + z + 5) / 10;
  93. pogx = abs(x - x1);
  94. pogy = abs(y - y1);
  95. pogz = abs(z - z1);
  96. pogv = abs(v - v1);
  97. cout.precision(4);
  98. cout << "x = (-y + z - 2 * v + 6) / 5 = " << x << endl;
  99. cout << "y = (x + z - 2 * v - 14) / 6 = " << y << endl;
  100. cout << "z = (-x + y + v - 3) / 8 = " << z << endl;
  101. cout << "v = (x + y + z + 5) / 10 = " << v << endl;
  102. cout << "Погрешность для x = " << pogx << endl;
  103. cout << "Погрешность для y = " << pogy << endl;
  104. cout << "Погрешность для z = " << pogz << endl;
  105. cout << "Погрешность для v = " << pogv << endl;
  106. k++;
  107. };
  108. system("pause");
  109. return 0;
  110.  
  111. }*/
Add Comment
Please, Sign In to add comment