Muhammad al – Xorazmiy nomidagi Toshkent axborot -texnologiyalari universiteti Labaratoriya ishi 2020 – yil
Download 65.34 Kb.
|
temp
Muhammad al – Xorazmiy nomidagi Toshkent axborot -texnologiyalari universiteti Labaratoriya ishi 2020 – yil Chiziqli algebraik tenglamalar sistemasini Gauss va Kramer usullari yordamida yechish algoritmi va dasturini tuzing 1) 2) Dastur kodi: #include #include #include using namespace std; void chiq(double **a, double *y, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << "*x" << j; if (j < n - 1) cout << " + "; } cout << " = " << y[i] << endl; } return;
} double * gauss(double **a, double *y, int n) { double *x, max; int k, index; const double eps = 0.00001; x = new double[n]; k = 0;
while (k < n) { max = abs(a[k][k]); index = k; for (int i = k + 1; i < n; i++) { if (abs(a[i][k]) > max) { max = abs(a[i][k]); index = i; } } if (max < eps) { cout << "Yechib bolmaydi sabab: 0 ustun"; cout << index << " Matritsa A" << endl; return 0; } for (int j = 0; j < n; j++) { double temp = a[k][j]; a[k][j] = a[index][j]; a[index][j] = temp; } double temp = y[k]; y[k] = y[index]; y[index] = temp; for (int i = k; i < n; i++) { double temp = a[i][k]; if (abs(temp) < eps) continue; for (int j = 0; j < n; j++) a[i][j] = a[i][j] / temp; y[i] = y[i] / temp; if (i == k) continue; for (int j = 0; j < n; j++) a[i][j] = a[i][j] - a[k][j]; y[i] = y[i] - y[k]; } k++;
} // ???????? ??????????? for (k = n - 1; k >= 0; k--) { x[k] = y[k]; for (int i = 0; i < k; i++) y[i] = y[i] - a[i][k] * x[k]; } return x; } int main() { double **a, *y, *x; int n; system("chcp 1251"); system("cls"); cout << "Tenglamalar sonini kiriting: "; cin >> n; a = new double*[n]; y = new double[n]; for (int i = 0; i < n; i++) { a[i] = new double[n]; for (int j = 0; j < n; j++) { cout << "a[" << i << "][" << j << "]= "; cin >> a[i][j]; } } for (int i = 0; i < n; i++) { cout << "y[" << i << "]= "; cin >> y[i]; } chiq(a, y, n); x = gauss(a, y, n); for (int i = 0; i < n; i++) cout << "x[" << i << "]=" << x[i] << endl; cin.get(); cin.get(); return 0; } 2. Topshiriq: #include using namespace std; int d0(int a[3][3]); int d1(int a[3][3], int b[3]); int d2(int a[3][3], int b[3]); int d3(int a[3][3], int b[3]); int main() { int i, j; int A[3][3]; int B[3]; cout << "Vvedite koefficienty i sbobodnye chleny " << endl; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { cout << "a[" << i << "," << j << "]= "; cin >> A[i][j]; } cout << "b[" << i << "]= "; cin >> B[i]; } int det = d0(A); int detX1 = d1(A, B); int detX2 = d2(A, B); int detX3 = d3(A, B); if (det != 0) { cout << "X1 = " << (float)detX1/(float)det << endl; cout << "X2 = " << (float)detX2/(float)det << endl; cout << "X3 = " << (float)detX3/(float)det << endl; } else
cout << "Yeshim mavjud emas! " << endl << endl; return 0; } int d0(int a[3][3]) { int a11 = a[0][0]; int a12 = a[0][1]; int a13 = a[0][2]; int a21 = a[1][0]; int a22 = a[1][1]; int a23 = a[1][2]; int a31 = a[2][0]; int a32 = a[2][1]; int a33 = a[2][2]; return (a11 * a22 * a33) + (a12 * a23 * a31) + (a13 * a21 * a32) - (a13 * a22 * a31) - (a11 * a23 * a32) - (a12 * a21 * a33); } int d1(int a[3][3], int b[3]) { int a12 = a[0][1]; int a13 = a[0][2]; int a22 = a[1][1]; int a23 = a[1][2]; int a32 = a[2][1]; int a33 = a[2][2]; int c1 = b[0]; int c2 = b[1]; int c3 = b[2]; return (c1 * a22 * a33) + (a12 * a23 * c3) + (a13 * c2 * a32) - (a13 * a22 * c3) - (c1 * a23 * a32) - (a12 * c2 * a33); } int d2(int a[3][3], int b[3]) { int a11 = a[0][0]; int a13 = a[0][2]; int a21 = a[1][0]; int a23 = a[1][2]; int a31 = a[2][0]; int a33 = a[2][2]; int c1 = b[0]; int c2 = b[1]; int c3 = b[2]; return (a11 * c2 * a33) + (c1 * a23 * a31) + (a13 * a21 * c3) - (a13 * c2 * a31) - (a11 * a23 * c3) - (c1 * a21 * a33); } int d3(int a[3][3], int b[3]) { int a11 = a[0][0]; int a12 = a[0][1]; int a21 = a[1][0]; int a22 = a[1][1]; int a31 = a[2][0]; int a32 = a[2][1]; int c1 = b[0]; int c2 = b[1]; int c3 = b[2]; return (a11 * a22 * c3) + (a12 * c2 * a31) + (c1 * a21 * a32) - (c1 * a22 * a31) - (a11 * c2 * a32) - (a12 * a21 * c3); } Download 65.34 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling