मैं कुछ सी # कोड लिख रहा हूं जो MathNet.Numerics.LinearAlgebra का उपयोग करता है, और पाठ्यपुस्तक उदाहरण के साथ परिणामों से मिलान करने का प्रयास करता है। कोड का एक हिस्सा एक और सरणी "Zbus" में एक complex32 सरणी "Ybus", और यह स्टोर के एक व्युत्क्रम करता है:मैट्रिक्स इनवर्स का उपयोग MathNet.Numerics
Matrix<Complex32> Ybus = Matrix<Complex32>.Build.Dense(numBuses, numBuses);
Matrix<Complex32> Zbus = Matrix<Complex32>.Build.Dense(numBuses, numBuses);
मेरे Ybus किताब में बिल्कुल उदाहरण मेल खाता है।
Ybus = j[ -13 5 4 0
5 -13.5 2.5 2
4 2.5 -9 2.5
0 2 2.5 -4.5]
लेकिन जब मैं एक व्युत्क्रम करना
Zbus = Ybus.Inverse();
Zbus के परिणाम सभी NaN
जबकि किताब से सही परिणाम इस तरह दिखता है:
Zbus = j[ .15 .09 .12 .11
.09 .15 .12 .13
.12 .12 .25 .19
.11 .13 .19 .39]
किसी को भी क्या कोई विचार है कि समस्या क्या हो सकती है? शायद एक जटिल मैट्रिक्स के उलटा कुछ मुद्दों है?
सबक सीखा:
: इतना है कि वे 0 के या उलटा को उड़ाने होगा :) ... की पंक्तियों अपने सरणियों बहुत बड़ा नहीं बनाते हैं यहाँ सही जवाब है
यह मेरे लिए अच्छा काम करने लगता है। मेरा अनुमान है कि आपका 'यब्स' वह नहीं है जो आपको लगता है। चूंकि आप यह नहीं दिखाते कि आप 'यब्स' को कैसे पॉप्युलेट कर रहे हैं या आपने यह कैसे निर्धारित किया है कि आप यही दावा करते हैं कि समस्या यह है कि समस्या वास्तव में क्या है। –
धन्यवाद। मुझे लगता है कि मुझे एक छवि पोस्ट करने के लिए पर्याप्त प्रतिष्ठा मिली है, इसलिए मैंने सरणी के तत्वों के कंसोल प्रिंट का एक स्क्रीनशॉट पोस्ट किया है। अजीब ... दो सरणी के बीच एकमात्र अंतर उलटा ऑपरेशन है। जब तक मेरे इनपुट सरणी के हुड के नीचे कुछ अजीब बात न हो .. –
और बीटीडब्ल्यू, दोनों मामलों में सरणी तत्वों को मुद्रित करने के लिए एक ही विधि/फ़ंक्शन का उपयोग किया जाता है, इसलिए ऐसा नहीं है कि प्रिंटिंग प्रारूप या कुछ के साथ कोई समस्या है ... I लगता है –