C++ da matritsaning aniqlovchisi
Kvadrat matritsaning determinantini uning element qiymatlari yordamida hisoblash mumkin. A matritsaning determinantini det(A) deb belgilash mumkin va uni geometriyada matritsa tomonidan tasvirlangan chiziqli transformatsiyaning masshtablash omili deb atash mumkin.
C++ da matritsaning aniqlovchisi
Matritsaning determinantini faqat kvadrat matritsa uchun birinchi qator kofaktorini mos keladigan kofaktorning determinantiga ko'paytirish va yakuniy natija olish uchun ularni muqobil belgilar bilan qo'shish orqali hisoblash mumkin.
Matritsaning determinantiga quyidagi misol keltiriladi.
#include
#include
using namespace std;
int determinant( int matrix[10][10], int n) {
int det = 0;
int submatrix[10][10];
if (n == 2)
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
else {
for (int x = 0; x < n; x++) {
int subi = 0;
for (int i = 1; i < n; i++) {
int subj = 0;
for (int j = 0; j < n; j++) {
if (j == x)
continue;
submatrix[subi][subj] = matrix[i][j];
subj++;
}
subi++;
}
det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 ));
}
}
return det;
}
int main() {
int n, i, j;
int matrix[10][10];
cout << "Enter the size of the matrix:\n";
cin >> n;
cout << "Enter the elements of the matrix:\n";
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
cin >> matrix[i][j];
cout<<"The entered matrix is:"<for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
cout << matrix[i][j] <<" ";
cout<}
cout<<"Determinant of the matrix is "<< determinant(matrix, n);
return 0;
}
Natiyja
Enter the size of the matrix: 3
Enter the elements of the matrix:
7 1 3
2 4 1
1 5 1
The entered matrix is:
7 1 3
2 4 1
1 5 1
Determinant of the matrix is 10
Yuqoridagi dasturda matritsaning hajmi va elementlari main() funksiyasida berilgan. Keyin determinant() funksiyasi chaqiriladi. U ko'rsatilgan matritsaning determinantini qaytaradi. Bu quyidagi kod parchasi bilan ko'rsatilgan.
cout << "Enter the size of the matrix:\n";
cin >> n;
cout <<"Enter the elements of the matrix:\n";
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
cin >> matrix[i][j];
cout<<"The entered matrix is:"<for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
cout << matrix[i][j] <<" ";
cout<}
cout<<"Determinant of the matrix is "<< determinant(matrix, n);
Determinant() funksiyasida matritsaning o'lchami 2 bo'lsa, u holda determinant to'g'ridan-to'g'ri hisoblanadi va qiymat qaytariladi. Bu quyidagicha ko'rsatilgan.
if (n == 2)
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
Agar matritsaning o'lchami 2 bo'lmasa, determinant rekursiv tarzda hisoblanadi. X, i va j sikl o'zgaruvchilari bilan ishlatiladigan 3 ta nested for tsikli mavjud. Ushbu tsikllar determinantni hisoblash uchun ishlatiladi va determinant() funksiyasi ichki determinantni hisoblash uchun rekursiv chaqiriladi va keyin uni tashqi qiymat bilan ko'paytiradi. Bu quyidagi kod parchasi bilan ko'rsatilgan.
for (int x = 0; x < n; x++) {
int subi = 0;
for (int i = 1; i < n; i++) {
int subj = 0;
for (int j = 0; j < n; j++) {
if (j == x)
continue;
submatrix[subi][subj] = matrix[i][j];
subj++;
}
subi++;
}
det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 ));
}
C++ da matritsaning aniqlovchisi
Matritsaning determinantini faqat kvadrat matritsa uchun birinchi qator kofaktorini mos keladigan kofaktorning determinantiga ko'paytirish va yakuniy natija olish uchun ularni muqobil belgilar bilan qo'shish orqali hisoblash mumkin.
Avval matritsani va matritsaning o'lchov qiymatini oladigan determinantOfMatrix(int mat[N][N], int o'lchov) funksiyasiga egamiz. Agar matritsa faqat 1 o'lchovli bo'lsa, u [0][0] matritsa qiymatini qaytaradi. Ushbu shart asosiy shart sifatida ham qo'llaniladi, chunki biz har bir rekursiv chaqiruvda o'lchamlarni kamaytirish bilan matritsamizni rekursiv ravishda takrorlaymiz.
int determinantOfMatrix(int mat[N][N], int dimension){
int Det = 0;
if (dimension == 1)
return mat[0][0];
Keyin birinchi qatorga qadar kofaktor(int mat[N][N], int temp[N][N], int p, int q, int n) funksiyasiga uzatiladigan kofaktorMat[N][N] ni e'lon qilamiz. o'lchamidan kichikroqdir. Matritsaning determinanti Det o'zgaruvchisida saqlanadi, har birida tsikl takrorlanishi uchun belgilar almashadi. Keyinchalik bu det chop etiladigan asosiy funktsiyaga qaytariladi.
#include
using namespace std;
const int N = 3;
void cofactor(int mat[N][N], int temp[N][N], int p,int q, int n){
int i = 0, j = 0;
for (int row = 0; row < n; row++){
for (int column = 0; column < n; column++){
if (row != p && column != q){
temp[i][j++] = mat[row][column];
if (j == n - 1){
j = 0;
i++;
}
}
}
}
}
int determinantOfMatrix(int mat[N][N], int dimension){
int Det = 0;
if (dimension == 1)
return mat[0][0];
int cofactorMat[N][N];
int sign = 1;
for (int firstRow = 0; firstRow < dimension; firstRow++){
cofactor(mat, cofactorMat, 0, firstRow, dimension);
Det += sign * mat[0][firstRow] * determinantOfMatrix(cofactorMat, dimension - 1);
sign = -sign;
}
return Det;
}
void display(int mat[N][N], int row, int col){
for (int i = 0; i < row; i++){
for (int j = 0; j < col; j++)
cout<cout<}
cout<}
int main(){
int mat[3][3] = {
{ 1, 0, 2},
{ 3, 0, 0},
{ 2, 1, 4}};
cout<<"The matrix is "<display(mat,3,3);
cout<<"Determinant of the matrix is "<return 0;
}
Chiqish
Yuqoridagi kod quyidagi natijani beradi
The matrix is
1 0 2
3 0 0
2 1 4
Determinant of the matrix is 6
XULOSA:
Bu kurs ishimizda martisa determenat larni berilishi va elon qilinishini kurib chiqdik buda qanday elon qilinishi qanday qiymat berganda qanday qiymat qaytarishlri hammasini kurib chiqdik
Avval matritsani va matritsaning o'lchov qiymatini oladigan determinantOfMatrix(int mat[N][N], int o'lchov) funksiyasiga egamiz. Agar matritsa faqat 1 o'lchovli bo'lsa, u [0][0] matritsa qiymatini qaytaradi. Ushbu shart asosiy shart sifatida ham qo'llaniladi, chunki biz har bir rekursiv chaqiruvda o'lchamlarni kamaytirish bilan matritsamizni rekursiv ravishda takrorlaymiz.
C++ da matritsaning aniqlovchisi
Matritsaning determinantini faqat kvadrat matritsa uchun birinchi qator kofaktorini mos keladigan kofaktorning determinantiga ko'paytirish va yakuniy natija olish uchun ularni muqobil belgilar bilan qo'shish orqali hisoblash mumkin.
Do'stlaringiz bilan baham: |