2009-08-29 19 views
13

सबसे अच्छा उपकरण (सबसे कुशल) नेट (सी #) में उपलब्ध की गणना के लिए कर रहे हैं क्या:जटिल गणनाओं

  • अभिन्न
  • आंशिक डेरिवेटिव
  • अन्य गैर तुच्छ गणित

क्या लोग गणित और मैटलैब पर टिप्पणी कर सकते हैं और सी # में उनके एकीकरण पर टिप्पणी कर सकते हैं?

+1

संख्यात्मक या प्रतीकात्मक रूप से? –

+0

अपने नवीनतम संपादन को स्पष्ट करने के लिए, क्या आप सी # में गणित और/या मैटलैब फ़ंक्शंस का उपयोग करने की कोशिश कर रहे हैं, या आप गणित या मैटलैब से सी # कक्षाओं को कॉल करने का प्रयास कर रहे हैं? – las3rjock

+0

आवेदन सी ​​# में लिखा गया है - मुझे सी # (बाहरी कार्यों को कॉल करें) से गणना करने की आवश्यकता है – mson

उत्तर

13

Math.NET माइक्रोसॉफ्ट .NET प्लेटफार्म के लिए सी # में लिखा गया गणितीय ओपन सोर्स टूलकिट है जिसका लक्ष्य संख्यात्मक वैज्ञानिक और प्रतीकात्मक बीजगणितीय गणना दोनों के लिए स्वयं निहित स्वच्छ ढांचा प्रदान करना है। विशेष रूप से, Math.NET NumericsMath.NET Iridium साथ dnAnalytics के विलय का परिणाम है और निम्नलिखित विशेषताएं शामिल हैं:

  • वास्तविक और जटिल, घने और विरल रेखीय बीजगणित
  • ( LU, QR, eigenvalues ... decompositions के साथ)
  • संख्यात्मक समारोह एकीकरण (क्षेत्रकलन), दिनचर्या
  • अभिन्न रूपांतरण
+0

लिंक काम नहीं कर रहा है :-) –

+0

यूआरएल गलत है, http://www.mathdotnet.com/ –

1

मैं यह सबसे अच्छा या अधिक कुशल जा रहा है की पुष्टि नहीं कर सकते हैं, लेकिन कुछ दिनों के पहले मुझे पता चला कि Luca Bolognese नेट

आप इसे यहाँ पा सकते हैं के लिए वित्तीय कार्यों का एक पुस्तकालय विकसित की है: http://code.msdn.microsoft.com/FinancialFunctions

शायद यह आपके लिए उपयोगी होगा।

0

आप http://www.dmoz.org/Science/Math/Software/ देख सकते हैं - वे कई सी # वाले सूचीबद्ध करते हैं। मैं कहूंगा कि कुछ (डेमो संस्करणों को वाणिज्यिक) की कोशिश करें और कुछ प्रोफाइलिंग करें ताकि यह देखने के लिए कि वे आपकी आवश्यकताओं को पूरा करते हैं या नहीं। आप MATLAB का भी उपयोग कर सकते हैं - उस प्रविष्टि की सीमाएं और विकल्प अनुभाग देखें। (मेरे पास इन उपकरणों के साथ कोई व्यक्तिगत अनुभव नहीं है।)

1

मैं मेथेमेटिका/नेट पुल के साथ अनुभव नहीं है, लेकिन मैंने गणित/जावा पुल का उपयोग किया है, जो दस्तावेज़ीकरण से निर्णय लेना बहुत समान है। बेशक, एक सवाल मैं जवाब नहीं दे सकता कि इंटरफेस के कार्यान्वयन कार्यान्वयन स्थिरता और प्रदर्शन के मामले में कितना अच्छा है।

संकल्पनात्मक रूप से, मुझे गणित को बुलाए जाने के लिए जावा इंटरफेस मिला है। आपके पास ऑब्जेक्ट्स और विधियों का एक सेट है जो आपको गणित सत्र शुरू करने और मूल्यांकन करने के लिए गणित अभिव्यक्ति भेजने देता है। आप या तो टेक्स्ट भेज सकते हैं (जो साधारण मामलों में आसान है लेकिन मुश्किल अगर आप कुछ गैर-तुच्छ चाहते हैं) या अधिक संरचित Expr ऑब्जेक्ट्स जो वाक्यविन्यास वृक्ष संरचना को दर्पण करते हैं। ये अभिव्यक्ति आपको कुछ भी करने की अनुमति देगी: संख्यात्मक रूप से या प्रतीकात्मक रूप से इंटीग्रेट का मूल्यांकन करें, डेरिवेटिव लें, ओडीई को हल करें, और इसी तरह।

एक ऐसा क्षेत्र जहां यह नीचे गिरता है, त्रुटि प्रबंधन में है। गणित में प्रति अपवाद नहीं है; इसके बजाए यह "संदेश" उत्पन्न करता है जब यह परेशानी में पड़ता है और जिस अभिव्यक्ति पर काम कर रहा है उसका मूल्यांकन करने की कोशिश जारी रखता है।यह गणित के असामान्य अर्थशास्त्र के प्रकाश में कुछ समझ में आता है (जहां यह बार-बार नियम पुनर्लेखन के साथ अभिव्यक्तियों पर चलता है) लेकिन गणित के साथ संवाद करने के तरीकों का डिफ़ॉल्ट सेट आपको जावा के भीतर से उन संदेशों की आसानी से निगरानी करने की अनुमति नहीं देता है (या, ऐसा प्रतीत होता है , .NET), हालांकि यह आपके स्वयं के तरीकों को लिखना संभव है जो इस का बेहतर काम करते हैं।

+0

गणित का MathLink.NET भी होना चाहिए जटिल संख्याओं के साथ संघर्ष और गणित स्वयं इन प्रकार की समस्याओं पर विशेष रूप से अच्छा नहीं है (उदाहरण के लिए मैथमैटिका का 'फूरियर' एफएफटीडब्ल्यू की तुलना में लगभग 4 × धीमी थी और मैंने देखा कि मैथमैटिका का मल्टीकोर समर्थन भयानक है)। –

1

माइक्रोसॉफ्ट के Visual F# प्रोग्रामिंग भाषा विशेष रूप से ऐसा आप शायद सिर्फ एक मौजूदा एफ # समाधान कॉल करना चाहते हैं इस तरह का काम करने के लिए डिजाइन किया गया था आपके सी # कोड से। उदाहरण के लिए, हमारे F# for Numerics पुस्तकालय स्थापित विजुअल स्टूडियो 2010 में आप इस प्रकार एक्स -x-1 से -3 3 सहभागी को एकीकृत कर सकते हैं:

> Functional.integrate (fun [x] -> x**3.0 - x - 1.0) [-3.0, 3.0];; 
val it : float = -6.0 

और कम से x के संबंध में है कि समारोह के आंशिक व्युत्पन्न की गणना x=2 इस प्रकार है:

> Functional.d (fun x -> x**3.0 - x - 1.0) 2.0;; 
val it : float = 11.0 
0

आप नेट के लिए एक ऐड-ऑन उत्पाद MATLAB बिल्डर है, तो आप एक .NET विधानसभा कि सी # से कहा जा सकता है में MATLAB कोड पैकेज कर सकते हैं।

संबंधित मुद्दे