एक मैट्रिक्स को विकर्ण रूप से प्रभावी मैट्रिक्स कहा जाता है यदि प्रत्येक मैट्रिक्स पंक्ति के लिए, पंक्ति का विकर्ण प्रवेश परिमाण उस पंक्ति में प्रत्येक अन्य गैर-विकर्ण प्रविष्टि के परिमाण के योग से बड़ा या बराबर होता है।
आइए पहले मान 3 के साथ एक स्थिर इंट वेरिएबल एन को परिभाषित करें जो हमारे मैट्रिक्स आयामों का प्रतिनिधित्व करता है।
const int N = 3;
isDDM(int mat[N][N], int n) एक बूलियन फ़ंक्शन है जो हमारे मैट्रिक्स और हमारे मैट्रिक्स के आकार की एक प्रति लेता है। अंदर हम लूप के लिए नेस्टेड का उपयोग करके अपने मैट्रिक्स की पंक्तियों और स्तंभों को पुनरावृत्त करते हैं। फिर हम प्रत्येक कॉलम के लिए प्रत्येक पंक्ति का योग पाते हैं और इसे अपने योग चर में जोड़ते हैं।
bool isDDM(int mat[N][N], int n){ for (int i = 0; i < n; i++){ int sum = 0; for (int j = 0; j < n; j++) sum += abs(mat[i][j]);
इसके बाद, हम वर्तमान योग से विकर्ण तत्वों का योग निकालते हैं।
sum -= abs(mat[i][i]);
इसके बाद, हम जांचते हैं कि कोई विकर्ण तत्व योग से कम है या नहीं। यदि उनमें से कोई भी योग से कम है तो हम झूठे लौटते हैं और हमारे लूप से बाहर निकलते हैं और कार्य करते हैं अन्यथा लूप के पूरा होने के बाद हम सही लौटते हैं क्योंकि कोई भी तत्व योग से कम नहीं होता है।
bool isDDM(int mat[N][N], int n){ for (int i = 0; i < n; i++){ int sum = 0; for (int j = 0; j < n; j++) sum += abs(mat[i][j]); sum -= abs(mat[i][i]); if (abs(mat[i][i]) < sum) return false; } return true; }
अंत में, मूल्य वापसी के आधार पर हम प्रदर्शित करते हैं कि यह हमारे मुख्य कार्य में एक तिरछे प्रमुख मैट्रिक्स है या नहीं।
if(isDDM(mat,matSize)){ cout << "yes,its a diagonally dominant matrix"; } else { cout << "NO, its not a diagonally dominant matrix"; }
उदाहरण
आइए यह जांचने के लिए निम्नलिखित कार्यान्वयन को देखें कि मैट्रिक्स तिरछे प्रभावशाली है या नहीं।
#include <iostream> const int N = 3; using namespace std; bool isDDM(int mat[N][N], int n){ for (int i = 0; i < n; i++){ int sum = 0; for (int j = 0; j < n; j++) sum += abs(mat[i][j]); sum -= abs(mat[i][i]); if (abs(mat[i][i]) < sum) return false; } return true; } int main(){ int matSize = 3; int mat[N][N] = { { 3, -2, 1 }, { 1, -3, 2 }, { -1, 2, 4 } }; if(isDDM(mat,matSize)){ cout << "yes,its a diagonally dominant matrix"; } else { cout << "NO, its not a diagonally dominant matrix"; } return 0; }
आउटपुट
उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा -
yes,its a diagonally dominant matrix