2010-03-19 14 views
13

मुझे अपने कार्यक्रम में रैखिक समीकरणों की एक प्रणाली को हल करने की आवश्यकता है। क्या सी ++ के लिए एक साधारण रैखिक बीजगणित लाइब्रेरी है, अधिमानतः कुछ शीर्षकों से अधिक नहीं है? मैं लगभग एक घंटे की तलाश में हूं, और जिन लोगों को मैंने पाया है, उन्हें लिनक्स के साथ गड़बड़ करने की आवश्यकता है, एमएनजीडब्लू आदि में डीएलएल संकलित करना आदि। (मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं।)सी ++ में रैखिक समीकरणों की प्रणाली?

+1

मुझे यह प्रश्न पसंद है और यह मेरे लिए उपयोगी है। यह मेरे लिए रचनात्मक है .... – user40780

उत्तर

15

मुझे लगता है कि ईजिन वह है जिसे आप ढूंढ रहे हैं।

http://eigen.tuxfamily.org/index.php?title=Main_Page

यह एक हेडर केवल पुस्तकालय है और कई compilers पर संकलित करता है। यह तेजी से गणित के लिए विदेशी असेंबली का भी उपयोग करता है।

यह वह पृष्ठ है जो रैखिक सॉल्वर एपीआई दिखाता है।

http://eigen.tuxfamily.org/dox-2.0/TutorialAdvancedLinearAlgebra.html

यह एक सरल एपीआई के साथ कुछ समाधानकर्ताओं है।

+1

ऐसा लगता है। धन्यवाद! – Archagon

+0

मुझे यह भी चाहिए! धन्यवाद। – user40780

7

Boost में कुछ है मूल रैखिक बीजगणित सामान।

+2

यहां एक और सटीक लिंक है: http://www.boost.org/doc/libs/1_42_0/libs/numeric/ublas/doc/index.htm – Potatoswatter

+0

मुझे कुछ भी नहीं मिला एक मैट्रिक्स को बदलने या रैखिक समीकरणों को हल करने के बारे में प्रलेखन में। क्या मैं इसे याद कर रहा हूँ? – Archagon

+0

@ आर्चगोन: मूल रूप से, बूस्ट वैक्टर, मैट्रिस, और मूल बीएलएस कार्यक्षमता के लिए कंटेनर प्रदान करता है (यह सभी तीन बीएलएएस स्तरों का समर्थन करता है)। अधिक उन्नत रैखिक बीजगणित के लिए, आप LAPACK के कुछ कार्यान्वयन को प्राप्त करना चाहते हैं। बूस्ट के लिए बाइंडिंग हैं, लेकिन वे मुख्य वितरण में नहीं हैं (आपको उनके लिए शिकार करना होगा)। आप बाइंडिंग _need_ नहीं करते हैं, लेकिन वे चीजों को थोड़ा आसान बनाते हैं (सैद्धांतिक रूप से)। –

5

आप LAPACK का उपयोग कर सकते हैं। विंडोज लाइब्रेरीज़ के लिए कुछ लापैक में एक त्वरित Google this link चालू हुआ। इस पर निर्भर करता है कि आपके सिस्टम कितने बड़े हैं, हालांकि यह सब खत्म हो सकता है।

2

मैं Armadillo का एक बड़ा प्रशंसक हूँ, लेकिन यहाँ end of the download page के अनुसार अपने संकलक एक मुद्दा हो सकता:

विंडोज

विकास और वर्मी के परीक्षण अब तक मुख्य रूप से किया गया है यूनिक्स-जैसे प्लेटफ़ॉर्म पर , हालांकि बहुत कम या कोई प्लेटफ़ॉर्म विशिष्ट कोड होना चाहिए। जबकि विंडोज मशीन पर प्राथमिक परीक्षण किए गए थे, डेवलपर्स सुनने में रूचि रखते हैं कि आर्मडिलो में पूरी तरह से परीक्षण करता है।

आप (C++ मानक के लिए अपने अधूरा समर्थन की वजह से) 'एमएस विजुअल C++ 2008 एक्सप्रेस संस्करण' संकलक में कठिनाई आ रही हैं, तो आप निम्नलिखित विकल्प मुक्त compilers की कोशिश करना चाहते हो सकता है:

  • इंटेल की सी ++ संकलक
  • जीसीसी (MinGW का हिस्सा)
  • जीसीसी (cygwin का हिस्सा)

यह एक अच्छी तरह से नामित (और अधिकतर टेम्पलेट) पुस्तकालय है, यह कोशिश करने लायक है।

अन्यथा, शायद Eigen2 आज़माएं जो आपके कंपाइलर को समर्थित के रूप में सूचीबद्ध करता है।

संपादित करें: टिप्पणी के जवाब में, वर्मी नहीं LAPACK लेकिन इसके साथ बेहतर (और बेहतर देखते ब्लास साथ अभी भी) काम करता है की आवश्यकता होती है:

प्रश्न: अन्य पुस्तकालयों मैं करने की आवश्यकता है Armadillo का पूरा उपयोग करें?
ए: आर्मडिलो बाहरी पुस्तकालयों के बिना काम कर सकता है। हालांकि को अतिरिक्त कार्यक्षमता प्राप्त करने के लिए LAPACK और ATLAS लाइब्रेरी स्थापित करने की अनुशंसा की जाती है। आर्मडिलो जहां भी संभव हो LAPACK के बदले एटीएलएएस दिनचर्या का उपयोग करेगा।

प्रश्न: आर्मडिलो LAPACK/ATLAS के बिना कितनी अच्छी तरह काम करेगा?
ए: मूल कार्यक्षमता उपलब्ध होगी (जैसे मैट्रिक्स अतिरिक्त और गुणा), लेकिन ईजिन अपघटन जैसी चीजें नहीं होंगी।मैट्रिक्स गुणा (मुख्य matrices के लिए मुख्य रूप से ) तेजी से नहीं होगा।

+0

मैंने आर्मडिलो की कोशिश की। रैखिक समीकरणों को हल करने के लिए इसे LAPACK की आवश्यकता है, जिसके लिए एक डीएलएल संकलन की आवश्यकता होती है। – Archagon

+0

नहीं, मेरा संपादन देखें। लैपैक के साथ यह * बेहतर * है लेकिन कहता है कि यह बिना रह सकता है। मैंने उस कॉन्फ़िगरेशन की कोशिश नहीं की है क्योंकि मेरे पास लैपैक है ... –

+0

मैंने ऐसा भी सोचा, लेकिन जब भी मैं हल() फ़ंक्शन का उपयोग करता हूं, तो यह मुझे बताता है कि मुझे LAPACK इंस्टॉल करने की आवश्यकता है ... – Archagon