查找矩阵基础和维度的C ++程序

这是一个C ++程序,用于查找矩阵的基础和维度。

算法

Begin

   Function determinant() :

   It calculates determinant of the matrix.

   /*

      Arguments:

      n = number of elements.

      matrix[10][10] = input matrix.

   */

   declare the submatrix submatrix[10][10].

   //函数主体:

   if (n == 2)

      return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]))

   else

      Make a for loop c = 0 to n-1

         Declare and initialize submati = 0, submatj.

         Make a For loop i = 1 to n-1

         initialize subj = 0

         Make a For loop i = 1 to n-1

            if (j == c)

               continue

            submatrix[submati][submatj] = matrix[i][j].

            Increment subj.

         increment submati.

      Compute d = d + (pow(-1, c) * matrix[0][c] * determinant(n- 1, submatrix)).

End

示例

#include<iostream>

#include<math.h>

using namespace std;

double d = 0;

double determinant(int n, double matrix[10][10]) {

   double submatrix[10][10];

   if (n == 2)

      return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] *

      matrix[0][1]));

   else {

      for (int c = 0; c < n; c++) {

         int submati = 0,submatj;

         for (int i = 1; i < n; i++) {

            int subj = 0;

            for (int j = 0; j < n; j++) {

               if (j == c)

                  continue;

               submatrix[submati][submatj] = matrix[i][j];

               subj++;

            }

            submati++;

         }

         d = d + (pow(-1, c) * matrix[0][c] * determinant(n -

         1, submatrix));

      }

   }

   return d;

}

int main(int argc, char **argv) {

   cout << "Enter the number of elements:\n";

   int n;

   cin >> n;

   double matrix[10][10];

   cout << "Enter elements one by one:\n";

   for (int i = 0; i < n; i++) {

      for (int j = 0; j < n; j++) {

         cin >> matrix[j][i];

      }

   }

   d = determinant(n, matrix); //call the function

   if (d != 0)

      cout << "The elements form the basis of R" << n << " as the determinant is non-zero";

   else

      cout << "The elements don't form the basis of R" << n << " as the determinant is zero";

}

输出-1

Enter the number of elements:

3 Enter elements one by one:

7 6 1

2 3 4

5 8 9

The elements form the basis of R3 as the determinant is

non-zero

输出-2

Enter the number of elements:

4 Enter the elements one by one:

7 6 1 4

2 3 5 4

9 8 2 3

2 1 3 0

The elements don't form the basis of R4 as the

determinant is zero

以上是 查找矩阵基础和维度的C ++程序 的全部内容, 来源链接: utcz.com/z/331212.html

回到顶部