Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <vector>
- using namespace std;
- vector<double> iter(vector<vector<double>>& a, vector<double>& y, int n, double eps)
- {
- vector<double> res(n);
- for (int i = 0; i < n; i++)
- res[i] = y[i] / a[i][i];
- bool flag;
- do
- {
- vector<double> xn(n);
- for (int i = 0; i < n; i++)
- {
- xn[i] = y[i] / a[i][i];
- for (int j = 0; j < n; j++)
- if (i != j)
- xn[i] -= a[i][j] / a[i][i] * res[j];
- }
- flag = true;
- for (int i = 0; i < n - 1; i++)
- if (abs(xn[i] - res[i]) > eps)
- {
- flag = false;
- break;
- }
- for (int i = 0; i < n; i++)
- res[i] = xn[i];
- } while (!flag);
- return res;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int n;
- cout << "Введите порядок системы\n";
- cin >> n;
- double e;
- cout << "Введите точность\n";
- cin >> e;
- vector<vector<double>> mat(n, vector<double>(n));
- cout << "Введите коэфиценты системы\n";
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++)
- cin >> mat[i][j];
- vector<double> free(n);
- cout << "Введите свободные члены\n";
- for (int i = 0; i < n; i++)
- cin >> free[i];
- vector<double> result = iter(mat, free, n, e);
- cout << "Корни\n";
- for (int i = 0; i < n; i++)
- cout << result[i] << ' ';
- }
Add Comment
Please, Sign In to add comment