Muhammad al – Xorazmiy nomidagi Toshkent axborot -texnologiyalari universiteti Labaratoriya ishi 2020 – yil


Download 65.34 Kb.
bet1/2
Sana27.05.2020
Hajmi65.34 Kb.
#110441
  1   2
Bog'liq
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:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling