// Win32Lab.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { double a[4][5] = { { 0.0309, -0.0179, -0.0353, 0.048, 0.082 }, { -0.0179, 0.0114, 0.0203, -0.0298, -0.0481 }, { -0.0353, 0.0203, 0.0426, -0.0546, -0.1018 }, { 0.048, -0.0298, -0.0564, 0.0849, 0.1452 } }; int size = 4; //cin >> size; vector > matrix; // ??????? ????? ????? ?????? (size) x (size + 1), // c ?????? ??????? ????????? ?????? matrix.resize(size); for (int i = 0; i < size; i++) { matrix[i].resize(size + 1); for (int j = 0; j < size + 1; j++) { matrix[i][j] = a[i][j]; //cin >> matrix[i][j]; } } // ????????? ??????????? ???????? ??????? long double eps; // cin >> eps; eps = 0.001; // ?????? ?????? ???????? ??????????? ?? ?????????? ????????, // ?????? ???????? ????? ????? ????? ? ???????, ?.?. size, // ?????? ???????? ?????? ?????????? ????????? ??? ?????? vector previousVariableValues(size, 0.0); // ????? ????????? ???????????? ??????? ?? ??? ???, // ???? ?? ????? ?????????? ??????????? ???????? while (true) { // ?????? ?????? ???????? ??????????? ?? ??????? ???? vector currentVariableValues(size); // ????????? ???????? ??????????? ?? ??????? ???????? // ? ???????????? ? ?????????????? ????????? for (int i = 0; i < size; i++) { // ?????????????? i-?? ??????????? ????????? // ?????????? ????? i-?? ?????? ??????? currentVariableValues[i] = matrix[i][size]; // ???????? ????? ?? ???? ???????? ?? i-?? ??????????? for (int j = 0; j < size; j++) { if (i != j) { currentVariableValues[i] -= matrix[i][j] * previousVariableValues[j]; } } // ????? ?? ??????????? ??? i-?? ??????????? currentVariableValues[i] /= matrix[i][i]; } // ????????? ??????? ??????????? ???????????? ?????????? ???????? long double error = 0.0; for (int i = 0; i < size; i++) { error += fabs(currentVariableValues[i] - previousVariableValues[i]); } // ???? ??????????? ???????? ??????????, ?? ????????? ??????? if (error < eps) { break; } // ????????? ? ????????? ????????, ??? // ??? ??????? ???????? ??????????? // ?????????? ?????????? ?? ?????????? ???????? previousVariableValues = currentVariableValues; } // ??????? ????????? ???????? ??????????? ? 8 ??????? ???????? for (int i = 0; i < size; i++) { printf("%.8llf ", previousVariableValues[i]); } return 0; }