কম্পিউটার

সি প্রোগ্রামে ম্যাট্রিক্স গুণন এবং স্বাভাবিককরণ


ম্যাট্রিক্স গুণন

এখন ম্যাট্রিক্স গুণের পদ্ধতি আলোচনা করা হয়েছে। ম্যাট্রিক্স গুণন শুধুমাত্র সঞ্চালিত হতে পারে, যদি এটি নির্দিষ্ট শর্ত পূরণ করে। ধরুন দুটি ম্যাট্রিক্স হল P এবং Q, এবং তাদের মাত্রা হল P (a x b) এবং Q (z x y) ফলাফল ম্যাট্রিক্স পাওয়া যাবে যদি এবং শুধুমাত্র যদি b =x হয়। তাহলে ফলাফলের ম্যাট্রিক্স R এর ক্রম হবে (m x q)।

অ্যালগরিদম

matrixMultiply(P, Q):
Assume dimension of P is (a x b), dimension of Q is (z x y)
Begin
   if b is not same as z, then exit
   otherwise define R matrix as (a x y)
   for i in range 0 to a - 1, do
      for j in range 0 to y – 1, do
         for k in range 0 to z, do
            R[i, j] = R[i, j] + (P[i, k] * Q[k, j])
         done
      done
   done
End

ম্যাট্রিক্স স্বাভাবিকীকরণ

Suppose we have a 2x3 matrix:
4 5 6
1 2 3 The normalized matrix would be:
4/sqrt(pow(5,2) + pow(6,2)) 5/sqrt(pow(5,2) + pow(6,2)) 6/sqrt(pow(5,2) + pow(6,2))
1/sqrt(pow(2,2) + pow(3,2)) 2/sqrt(pow(2,2) + pow(3,2)) 3/sqrt(pow(2,2) + pow(3,2))

উদাহরণ

#include <stdio.h>
#include <math.h>
int main() {
   int row, col, row1, col1;
   int assignMatrix[50][50], rowAdd[100] = {0};
   long long int a, square[50] = {0};
   double norm[50][50], k;
   printf("Enter size of a matrix\n");
   scanf("%d %d", &row, &col);
   printf("Enter matrix of size %dX%d\n", row, col);
   for ( row1 = 0; row1 < row; row1++) {
      for (col1 = 0; col1 < col; col1++) {
         scanf("%d", &assignMatrix[row1][col1]);
      }
   }
   printf("\nrows: %d cols: %d elements:\n",row,col);
   for( row1 = 0; row1 < row; row1++) {
      for( col1 = 0; col1 < col; col1++) {
         printf("%d ", assignMatrix[row1][col1]);
      }
      printf("\n");
   }
   for (row1 = 0; row1 < row; row1++) {
      for (col1 = 1; col1 < col; col1++) {
         a = assignMatrix[r][c];
         square[row1] += a * a;
      }
      printf("Sum of squares of row %d: %lld\n",row1,square[row1]);
   }
   for ( row1 = 0; row1 < row; row1++ ) {
      k = 1.0 / sqrt(square[row1]);
      for( col1 = 0; col1 < col; col1++ ) {
         norm[row1][col1] = k * assignMatrix[row1][col1] ;
      }
   }
   printf("\nNormalized Matrix:\n");
   for( row1 = 0; row1 < row; row1++) {
      for( col1 = 0; col1 < col; col1++) {
         printf("%.3lf ", norm[row1][col1]);
      }
      printf("\n");
   }
   return 0;
}

আউটপুট

Enter size of a matrix
2
3
Enter matrix of size 2X3
4 5 6
1 2 3
rows: 2 cols: 3 elements:
4 5 6
1 2 3
Sum of squares of row 0: 61
Sum of squares of row 1: 13
Normalized Matrix:
0.512 0.640 0.768
0.277 0.555 0.832
Process returned 0 (0x0) execution time : 12.446 s
Press any key to continue.

  1. বিটওয়াইজ অপারেশন ব্যবহার করে 2 দ্বারা যোগ এবং গুণ করার জন্য সি প্রোগ্রাম।

  2. C-তে একটি অ্যারের নিম্ন ত্রিভুজাকার এবং উপরের ত্রিভুজাকার ম্যাট্রিক্স প্রিন্ট করার জন্য প্রোগ্রাম

  3. C প্রোগ্রামের একটি 2-ডি ম্যাট্রিক্সে কোণার উপাদান এবং তাদের যোগফল প্রিন্ট করুন।

  4. C++ এ তির্যক ম্যাট্রিক্স এবং স্কেলার ম্যাট্রিক্স পরীক্ষা করার জন্য প্রোগ্রাম