मान लीजिए मेरे पास एक अज्ञात वेक्टर v
है, और एक क्रमचय p
।
मैं v
से v (p)
और p
से कैसे पुनर्निर्माण कर सकता हूं?
एक बराबर प्रश्न एक क्रमचय q
को खोजना होगा, जैसे कि p (q) = [1 2 ... n]
?
चूंकि ये चल रहा है एक तंग पाश में चलाने के लिए, मुझे सदिश (और कुशल) होने की आवश्यकता है।
यदि आप q
के व्युत्क्रम क्रमवत्ता को पी
के लिए चाहते हैं, इससे अधिक कुशल नहीं होगा:
q (p) = 1: numel ( पी);
आप इस प्रकार v
से vp = v (p)
और p
से::
q (p) = 1: numel (p); वी = वीपी (क्यू);
या स्पष्ट रूप से q
:
v (p) = vp;
(आपने देखा होगा कि v = vp (q)
से मेल खाती है v == P ^ (- 1) * vp
और v (p) = vp
उपयुक्त क्रमचय ऑपरेटर (मैट्रिक्स) P = sparse (1: numel (p) के लिए
और P * v == vp
से मेल खाती है, पी, 1) P ^ (- 1) == पी। '== स्पार्स (पी, 1: न्यूज़ेल (पी), 1)
। इस प्रकार से एक ही परिणाम देना।)
यदि आप इसे किसी लूप में उपयोग करते हैं, तो फिर से q
या v
क्रमशः []
को रीसेट करने के लिए मन करें यह ऑपरेशन यदि p
पुराने p
से कम था, तो p
की लंबाई बदलने के मामले में, आप गलत परिणाम प्राप्त करेंगे।
No comments:
Post a Comment