Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -0.92 -0.03 0 -0.04
- 0.51 -1 0.27 -0.08
- 0.33 0 -1.37 0.21
- 0.11 0 0.03 -0.42
- 1.2 -0.81 0.92 -0.17
- */
- #include <iostream>
- #include <cmath>
- using namespace std;
- double EPS = 0.00001;
- double** createMatrix(int line, int column) {
- double** c = new double* [line];
- for (int i = 0; i < line; i++)
- c[i] = new double[column];
- return c;
- }
- double** inputMatrix(int line, int column) {
- double** c = createMatrix(line, column);
- for (int i = 0; i < line; i++)
- for (int j = 0; j < column; j++)
- cin >> c[i][j];
- return c;
- }
- bool compare_EPS(double* a, int n, double _EPS) {
- bool f = 0;
- for (int i = 0; i < n; i++) {
- if (fabs(a[i]) > _EPS)
- f = 1;
- else
- f = 0;
- }
- return f;
- }
- bool is_compatible(double** A, double** B, int line, int column) {
- }
- bool is_convergence(double** A, double** B, int line, int column) {
- }
- double** culc(double** A, double** B, int line, int column) {
- double** X = createMatrix(line, 1);
- double** X0 = createMatrix(line, 1);
- double* dif = new double[line];
- for (int i = 0; i < line; i++) {
- X[i][0] = 0;
- dif[i] = 0;
- }
- do {
- for (int i = 0; i < line; i++)
- X0[i][0] = X[i][0];
- for (int i = 0; i < line; i++) {
- double tmp = 0;
- for (int j = 0; j < column; j++) {
- if (j == i)
- continue;
- else
- tmp -= A[i][j] * X[j][0];
- }
- X[i][0] = (B[i][0] + tmp) / A[i][i];
- dif[i] = X[i][0] - X0[i][0];
- }
- } while (compare_EPS(dif, line, EPS));
- return X;
- }
- int main() {
- int n, m;
- cout << "Enter size A(n m): ";
- cin >> n >> m;
- cout << "Enter Matrix A: " << endl;
- double** A = inputMatrix(n, m);
- cout << "Enter Matrix B: " << endl;
- double** B = inputMatrix(n, 1);
- cout << "Enter EPS: ";
- cin >> EPS;
- double** X = culc(A, B, n, m);
- for (int i = 0; i < n; i++)
- cout << "x" << i+1 << " = " << X[i][0] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement