// Metoda Jacobi //#include "stdafx.h" #include #include #include using namespace std; #define max 10 //const int max=10; int main() { double s, s1, eps; double a[max + 1][max + 1], b[max + 1], x[max + 1], y[max + 1]; int n, i, j; cout << "Zadej pocet rovnic: " << endl; cin >> n; cout << " Nacti matici soustavy (leve strany ): " << endl; for (i = 1; i <= n; i++) for (j = 1; j <= n; j++) { cout << "a[" << i << j << "]="; cin >> a[i][j]; } cout << endl; cout << "Nacti prave strany rovnic: " << endl; for (i = 1; i <= n; i++) { cout << "b[" << i << "]="; cin >> b[i]; } cout << endl; cout << "Pocatecni aproximace ( napr. x[1]=0): " << endl; for (i = 1; i <= n; i++) { cout << "x[" << i << "]="; cin >> y[i]; } cout << endl; cout << " Velikost chyby (napr. 0.0001): " << endl; cin >> eps; cout << endl; s = eps + 1; while (s >= eps) { for (i = 1; i <= n; i++) { s1 = 0; for (j = 1; j <= n; j++) if (j != i)s1 = s1 + a[i][j] * y[j]; x[i] = (b[i] - s1) / a[i][i]; } s = 0; for (i = 1; i <= n; i++) s = s + fabs(x[i] - y[i]); for (i = 1; i <= n; i++) y[i] = x[i]; } cout << " Priblizna reseni " << endl; for (i = 1; i <= n; i++) cout << x[i] << endl; //system("pause"); return 0; }