के शून्य स्थान की गणना करना मैं फॉर्म एएक्स = 0. के समीकरणों के एक सेट को हल करने का प्रयास कर रहा हूं। ए 6x6 मैट्रिक्स ज्ञात है और मैंने वेक्टर एक्स प्राप्त करने के लिए एसवीडी का उपयोग करके नीचे दिया गया कोड लिखा है जो काम करता है एक निश्चित हद तक जवाब लगभग सही है लेकिन मेरे लिए उपयोगी होने के लिए पर्याप्त नहीं है, मैं गणना की सटीकता को कैसे सुधार सकता हूं? 1.e-4 से नीचे eps को कम करने से फ़ंक्शन विफल हो जाता है।मैट्रिक्स
from numpy.linalg import *
from numpy import *
A = matrix([[0.624010149127497 ,0.020915658603923 ,0.838082638087629 ,62.0778180312547 ,-0.336 ,0],
[0.669649399820597 ,0.344105317421833 ,0.0543868015800246 ,49.0194290212841 ,-0.267 ,0],
[0.473153758252885 ,0.366893577716959 ,0.924972565581684 ,186.071352614705 ,-1 ,0],
[0.0759305208803158 ,0.356365401030535 ,0.126682113674883 ,175.292109352674 ,0 ,-5.201],
[0.91160934274653 ,0.32447818779582 ,0.741382053883291 ,0.11536775372698 ,0 ,-0.034],
[0.480860406786873 ,0.903499596111067 ,0.542581424762866 ,32.782593418975 ,0 ,-1]])
def null(A, eps=1e-3):
u,s,vh = svd(A,full_matrices=1,compute_uv=1)
null_space = compress(s <= eps, vh, axis=0)
return null_space.T
NS = null(A)
print "Null space equals ",NS,"\n"
print dot(A,NS)
x = 0 समस्या का समाधान है , लेकिन एक अनिच्छुक एक। समस्या का सही समाधान, विभिन्न माध्यमों से पहुंचा है: [0.880057009282733,0.571293018023548,0.0664250041765576,1,186.758799941964,33.7579819749057] टी – Ainsworth
क्या आप निश्चित हैं? मैं 'ए * एक्स' ---' -0.056356 -0.055643 -7.3896e-013 -0.0043278 0.004483 -2.1316e-014] – Jacob
के परिणामस्वरूप कुछ गैर-शून्य तत्व देखता हूं, बेशक, आप नहीं चाहते शून्य स्थान, लेकिन कम से कम वर्ग समाधान, यानी 'मिनट || ए * एक्स || s.t. || एक्स || = 1' – Jacob