Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <math.h>
- #include <stdlib.h>
- using namespace std;
- int main() {
- freopen("input.txt", "r", stdin);
- int i, j, n, m;
- //создаем массив
- cout << "Number of equations: ";
- cin >> n;
- cout << "Number of variables: ";
- cin >> m;
- m += 1;
- double matrix[3][4];
- double e;
- cout << "E: ";
- cin >> e;
- //инициализируем
- for (i = 0; i < n; i++) {
- for (j = 0; j < m; j++) {
- cout << " Element " << "[" << i + 1 << ", " << j + 1 << "]: ";
- cin >> matrix[i][j];
- }
- }
- //выводим массив
- cout << "matrix: " << endl;
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- cout << matrix[i][j] << " ";
- cout << endl;
- }
- cout << endl;
- //Метод простых итераций
- int iteratoin = 0;
- double tmpOpenX, openX = NULL;
- double answer[3] = {0, 0, 0};
- double tmpAnswer[3] = {0, 0, 0,};
- for (i = 0; i < n; i++) {
- double tmp = matrix[i][i];
- for (j = 0; j < m; j++) {
- matrix[i][j] /= (3!=j)? -tmp : tmp;
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- for (i = 0; i < n; i++) {
- answer[i] = matrix[i][3];
- }
- m1:
- for (i = 0; i < n; i++) {
- for (j = 0; j < m; j++) {
- if (j == i) {
- continue;
- }
- tmpAnswer[i] += matrix[i][j] * (j!=3)?answer[j]:1;
- }
- cout << tmpAnswer[i] << " ";
- }
- cout << endl;
- memcpy(answer, tmpAnswer, sizeof(double)*n + 1);
- tmpAnswer[0] = tmpAnswer[1] = tmpAnswer[2] = 0;
- tmpOpenX = max(fabs(answer[0]),max(fabs(answer[1]), fabs(answer[2])));
- if (!openX) {
- openX = tmpOpenX;
- } else if(e > tmpOpenX - openX){
- goto m2;
- }
- goto m1;
- m2:
- //Выводим решения
- for (i = 0; i < n; i++)
- cout << answer[i] << " ";
- cout << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement