सी ++ - सी ++, सरणी में ल्यू अपघटन

मैं वर्तमान में अपने कोड के साथ ऊपरी (u) और निचले (l) सरणी में किसी सरणी को विघटित करने के लिए कुछ जांच कर रहा हूँ

मैं डोलिटल विधि का उपयोग कर रहा हूं

मेरा कोड:

#include <iostream>

using namespace std;

int main(){

double a[10][10];
double l[10][10];
double u[10][10];
double som=0;
int RANG;
cin >> RANG;
for(int i=0; i<RANG; i++){
for(int j=0; j<RANG;j++){
cin >> a[i][j];
}
}
for(int i=0; i<RANG; i++){
for(int j=0; j<RANG;j++){
u[i][j]=0;
l[i][j]=0;
}
}

for(int i=0;i<RANG;i++) {
l[i][i]=1;

for(int j=i;j<RANG;j++) {
for(int s=0;s<i-1;s++) {
som+= l[i][s]*u[s][j];
}
u[i][j]=a[i][j]-som;
}

for(int k=i+1;k<RANG;k++) {
double som=0;
for(int s=0;s<i-1;s++) {
som+=l[k][s]*u[s][i];
}
l[k][i]=(a[k][i]-som)/u[i][i];
}
}
cout << "l:" << endl;
for(int i=0; i<RANG; i++){
for(int j=0; j<RANG;j++){
cout << l[i][j] << "t";
}
cout << endl << endl;
}
cout << "u: " << endl;
for(int i=0; i<RANG; i++){
for(int j=0; j<RANG;j++){
cout << u[i][j] << "t";
}
cout << endl << endl;
}
return 0;
}

अगर आप कर सकते हैं plz मदद ...

पुनश्च: यकीन नहीं है कि अगर यह यहाँ है, तो गणित साइट पर बेहतर हो सकता है

उत्तर:

जवाब के लिए 2 № 1

अच्छी तरह से देखिए http://download.intel.com/design/PentiumIII/sml/24504601.pdf यह स्रोत कोड के साथ पूरा समाधान मिल गया!


उत्तर № 2 के लिए 1

आप क्वांटलिब की जाँच कर सकते हैं। http://quantlib.org/index.shtml

यहाँ कोड का एक उदाहरण है जो एक 3x3 सरणी विघटित करने के लिए QuantLib लाइब्रेरी का उपयोग करता है। यह एक चॉल्स्की अपघटन का उपयोग करता है, लेकिन शायद यह मदद करेगा। http://quantcorner.wordpress.com/2011/02/20/matrix-decomposition-with-quantlib/


उत्तर के लिए -3 № 3

अपने "s" पुनरावृत्ति की जाँच करें जो यह होना चाहिए for (int s = 0; s