Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <cmath>
- using namespace std;
- void multiplyingMatrix(vector<vector<double>> x, vector <double> &y, vector <double> &l)
- {
- int sz = y.size();
- vector <double> yy(sz);
- for (int i = 0; i < sz; ++i)
- {
- double perem = 0;
- for (int j = 0; j < sz; ++j)
- {
- perem += x[i][j] * y[j];
- }
- yy[i] = perem;
- // cout << yy[i] << '\n';
- }
- for (int i = 0; i < sz; ++i)
- {
- l[i] = yy[i] / y[i];
- y[i] = yy[i];
- }
- }
- int main()
- {
- int n;
- cin >> n;
- vector<vector <double>> v(n, vector<double>(n));
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < n; ++j)
- cin >> v[i][j];
- }
- vector <double> y(n, 1), lambda(n, 1), lambda2(n, 1);
- vector <double> yy(n, 1);
- /*multiplyingMatrix(v, yy, lambda2);
- for (int i = 0; i < n; ++i)
- {
- cout << lambda2[i] << ' ';
- }*/
- while (true)
- {
- bool f = 0;
- multiplyingMatrix(v, yy, lambda2);
- for (int i = 0; i < n; ++i)
- if (abs(lambda2[i] - lambda[i]) < 0.0001)
- {
- f = 1;
- break;
- }
- if (f)
- break;
- for (int i = 0; i < n; ++i)
- {
- cout << lambda2[i] << ' ';
- }
- cout << '\n';
- for (int i = 0; i < n; ++i)
- lambda[i] = lambda2[i];
- }
- cout << "ANSWER: ";
- for (int i = 0; i < n; ++i)
- {
- cout << lambda2[i] << ' ';
- }
- return 0;
- }
- /*
- 4
- 1.2 0.5 2 1
- 0.5 1 0.8 2
- 2 0.8 1 1
- 1 2 1 2
- */
Advertisement
Add Comment
Please, Sign In to add comment