मुझे अपने कार्यक्रम में रैखिक समीकरणों की एक प्रणाली को हल करने की आवश्यकता है। क्या सी ++ के लिए एक साधारण रैखिक बीजगणित लाइब्रेरी है, अधिमानतः कुछ शीर्षकों से अधिक नहीं है? मैं लगभग एक घंटे की तलाश में हूं, और जिन लोगों को मैंने पाया है, उन्हें लिनक्स के साथ गड़बड़ करने की आवश्यकता है, एमएनजीडब्लू आदि में डीएलएल संकलित करना आदि। (मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं।)सी ++ में रैखिक समीकरणों की प्रणाली?
उत्तर
मुझे लगता है कि ईजिन वह है जिसे आप ढूंढ रहे हैं।
http://eigen.tuxfamily.org/index.php?title=Main_Page
यह एक हेडर केवल पुस्तकालय है और कई compilers पर संकलित करता है। यह तेजी से गणित के लिए विदेशी असेंबली का भी उपयोग करता है।
यह वह पृष्ठ है जो रैखिक सॉल्वर एपीआई दिखाता है।
http://eigen.tuxfamily.org/dox-2.0/TutorialAdvancedLinearAlgebra.html
यह एक सरल एपीआई के साथ कुछ समाधानकर्ताओं है।
Boost में कुछ है मूल रैखिक बीजगणित सामान।
यहां एक और सटीक लिंक है: http://www.boost.org/doc/libs/1_42_0/libs/numeric/ublas/doc/index.htm – Potatoswatter
मुझे कुछ भी नहीं मिला एक मैट्रिक्स को बदलने या रैखिक समीकरणों को हल करने के बारे में प्रलेखन में। क्या मैं इसे याद कर रहा हूँ? – Archagon
@ आर्चगोन: मूल रूप से, बूस्ट वैक्टर, मैट्रिस, और मूल बीएलएस कार्यक्षमता के लिए कंटेनर प्रदान करता है (यह सभी तीन बीएलएएस स्तरों का समर्थन करता है)। अधिक उन्नत रैखिक बीजगणित के लिए, आप LAPACK के कुछ कार्यान्वयन को प्राप्त करना चाहते हैं। बूस्ट के लिए बाइंडिंग हैं, लेकिन वे मुख्य वितरण में नहीं हैं (आपको उनके लिए शिकार करना होगा)। आप बाइंडिंग _need_ नहीं करते हैं, लेकिन वे चीजों को थोड़ा आसान बनाते हैं (सैद्धांतिक रूप से)। –
मैं Armadillo का एक बड़ा प्रशंसक हूँ, लेकिन यहाँ end of the download page के अनुसार अपने संकलक एक मुद्दा हो सकता:
विंडोज
विकास और वर्मी के परीक्षण अब तक मुख्य रूप से किया गया है यूनिक्स-जैसे प्लेटफ़ॉर्म पर , हालांकि बहुत कम या कोई प्लेटफ़ॉर्म विशिष्ट कोड होना चाहिए। जबकि विंडोज मशीन पर प्राथमिक परीक्षण किए गए थे, डेवलपर्स सुनने में रूचि रखते हैं कि आर्मडिलो में पूरी तरह से परीक्षण करता है।
आप (C++ मानक के लिए अपने अधूरा समर्थन की वजह से) 'एमएस विजुअल C++ 2008 एक्सप्रेस संस्करण' संकलक में कठिनाई आ रही हैं, तो आप निम्नलिखित विकल्प मुक्त compilers की कोशिश करना चाहते हो सकता है:
- इंटेल की सी ++ संकलक
- जीसीसी (MinGW का हिस्सा)
- जीसीसी (cygwin का हिस्सा)
यह एक अच्छी तरह से नामित (और अधिकतर टेम्पलेट) पुस्तकालय है, यह कोशिश करने लायक है।
अन्यथा, शायद Eigen2 आज़माएं जो आपके कंपाइलर को समर्थित के रूप में सूचीबद्ध करता है।
संपादित करें: टिप्पणी के जवाब में, वर्मी नहीं LAPACK लेकिन इसके साथ बेहतर (और बेहतर देखते ब्लास साथ अभी भी) काम करता है की आवश्यकता होती है:
प्रश्न: अन्य पुस्तकालयों मैं करने की आवश्यकता है Armadillo का पूरा उपयोग करें?
ए: आर्मडिलो बाहरी पुस्तकालयों के बिना काम कर सकता है। हालांकि को अतिरिक्त कार्यक्षमता प्राप्त करने के लिए LAPACK और ATLAS लाइब्रेरी स्थापित करने की अनुशंसा की जाती है। आर्मडिलो जहां भी संभव हो LAPACK के बदले एटीएलएएस दिनचर्या का उपयोग करेगा।प्रश्न: आर्मडिलो LAPACK/ATLAS के बिना कितनी अच्छी तरह काम करेगा?
ए: मूल कार्यक्षमता उपलब्ध होगी (जैसे मैट्रिक्स अतिरिक्त और गुणा), लेकिन ईजिन अपघटन जैसी चीजें नहीं होंगी।मैट्रिक्स गुणा (मुख्य matrices के लिए मुख्य रूप से ) तेजी से नहीं होगा।
मैंने आर्मडिलो की कोशिश की। रैखिक समीकरणों को हल करने के लिए इसे LAPACK की आवश्यकता है, जिसके लिए एक डीएलएल संकलन की आवश्यकता होती है। – Archagon
नहीं, मेरा संपादन देखें। लैपैक के साथ यह * बेहतर * है लेकिन कहता है कि यह बिना रह सकता है। मैंने उस कॉन्फ़िगरेशन की कोशिश नहीं की है क्योंकि मेरे पास लैपैक है ... –
मैंने ऐसा भी सोचा, लेकिन जब भी मैं हल() फ़ंक्शन का उपयोग करता हूं, तो यह मुझे बताता है कि मुझे LAPACK इंस्टॉल करने की आवश्यकता है ... – Archagon
मुझे यह प्रश्न पसंद है और यह मेरे लिए उपयोगी है। यह मेरे लिए रचनात्मक है .... – user40780