मान लीजिए मेरे पास एक अज्ञात वेक्टर 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