Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. vector <double> Gauss(vector <vector <double>> A, vector <double> ans) {
  6. for (int i = 0; i < A.size(); i++) {
  7. if (A[i][i] == 0) {
  8. int maxIndex = i;
  9. for (int j = i + 1; j < A.size(); j++) {
  10. if (A[maxIndex][i] < A[j][i]) {
  11. maxIndex = j;
  12. }
  13. }
  14. swap(A[i], A[maxIndex]);
  15. }
  16. for (int j = A[i].size() - 1; j >= i; j--) {
  17. A[i][j] /= A[i][i];
  18. }
  19.  
  20. for (int k = i + 1; k < A.size(); k++) {
  21. for (int l = A[k].size() - 1; l >= 0; l--) {
  22. A[k][l] = A[k][l] - A[i][l] * A[k][i];
  23. }
  24. }
  25. }
  26.  
  27. for (int i = A.size() - 1; i >= 0; i--) {
  28. ans[i] = A[i][A[i].size() - 1];
  29. for (int j = i + 1; j < A.size(); j++) {
  30. ans[i] -= A[i][j] * ans[j];
  31. }
  32. }
  33. return ans;
  34. }
  35. int main() {
  36. int n;
  37. cin >> n;
  38. vector <vector <double>> A;
  39. vector <double> ans;
  40. A.resize(n);
  41. for (int i = 0; i < n; i++) {
  42. A[i].resize(n + 1);
  43. }
  44. for (int i = 0; i < n; i++)
  45. for (int j = 0; j <= n; j++) {
  46. double a;
  47. cin >> a;
  48. A[i][j] = a;
  49. }
  50. ans.resize(n);
  51. ans = Gauss(A, ans);
  52. for (int i = 0; i < n; i++) {
  53. cout << ans[i] << endl;
  54. }
  55. system("pause");
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement