संख्यात्मक विश्लेषण के लिए OCaml कोई अच्छा है? [बन्द है]


10

मैं वर्तमान में अंतर समीकरणों की संख्यात्मक प्रणाली को हल करने के लिए C और कुछ FORTRAN का उपयोग कर रहा हूं।

मैं इन दोनों भाषाओं से थोड़ा तंग आ गया हूँ, लेकिन मुझे कुछ (बल्कि) कुशल कोड की आवश्यकता है ... मैं OCaml पर स्विच करने के बारे में सोच रहा हूँ।

यह इसके लायक है?


4
मैं SciPy की अत्यधिक अनुशंसा करता हूं - यह मुफ़्त है, मटलब की तरह दिखता है (लेकिन पायथन है), और इसे पूरा करने के लिए कुछ ही लाइनें लगती हैं! scipy.org/Cookbook/…
जॉब

1
MATLAB। विभेदक समीकरणों की प्रणालियों का संख्यात्मक समाधान एक हल की गई समस्या है, और काफी समय से है। यदि आपका उद्देश्य आपकी संख्या को कम करना है, तो उन उपकरणों का उपयोग करें जिन्हें पिछले कई दशकों में विकसित किया गया है। पहिया को सुदृढ़ मत करो, चाहे वह कितना भी मजेदार क्यों न हो। आप अपने आप को बहुत समय और पीड़ा से बचाएंगे।
जॉन आर। स्ट्रॉहम

जवाबों:


11

जेन स्ट्रीट कैपिटल के लोग ऐसा सोचते हैं। उन्होंने 2009 में OCaml का उपयोग करने के बारे में CMU में बातचीत की

एकमात्र दोष यह है कि मैं यह सोच सकता हूं कि मैट्रिस प्रथम श्रेणी के नागरिक नहीं हैं।


7

सबसे पहले, मैं असामान्य बयान करना चाहता हूं कि संख्यात्मक अभिकलन के लिए, उच्च-स्तरीय भाषाएं निम्न-स्तरीय भाषाओं की तुलना में लंबे समय में बहुत अधिक उपयोगी हैं। मुझे मौसम के पूर्वानुमान में उपयोग किए जाने वाले संख्यात्मक सिमुलेशन में काम करने वाले फ्रुनहोफर इंस्टीट्यूट के एक शोधकर्ता के बारे में बताएं।

पिछले दशक में, सीपीयू 1000 गुना तेज हो गया जबकि एल्गोरिदम 1000 * 1000 तेज हो गया। इसका मतलब है, कि आज के कल के सीपीयू पर चलने वाले एल्गोरिदम कल के एल्गोरिदम को आज के सीपीयू पर 1000 के कारक से हरा देंगे।

जाहिर है, सीपीयू की गति और एल्गोरिदम, जैसे डिस्क या रैम को ध्यान में रखने के लिए बहुत अधिक पैरामीटर हैं, लेकिन यह कथन हमें यह बताने में मदद करता है कि, यदि आप एक निम्न-स्तरीय भाषा चुनते हैं, तो आप गलत कारक (1000 के बजाय 1000) पर ध्यान केंद्रित करते हैं। 1000 * 1000)।

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

एक साइड नोट के रूप में, यदि आप OCaml में संख्यात्मक कोड लिखने पर विचार करते हैं, तो आपको निश्चित रूप से पता होना चाहिए कि OCaml कैसे मापदंडों को फ़ंक्शन, इनलाइन फ़ंक्शंस और अनबॉक्स फ़्लोट को पास करता है। यह सब जेवियर लेरॉय के नोट्स में विस्तृत है ।


जवाब के लिए धन्यवाद। मैंने तब से J का सहारा लिया और उसे प्यार किया। OCaml मेरे लिए एक करीबी दूसरा है।
बारह

6

करने के लिए to solve numerically systems of differential equationsआप सभी उचित पुस्तकालयों के पहले की आवश्यकता होगी। इसलिए एक अनिवार्य जांच है: क्या प्रोग्रामिंग भाषा xउनका समर्थन करती है।

व्यक्तिगत तौर पर मैं से लिखने कोड उच्च स्तर की तरह Cया Fortran, इस प्रकार मैं का इस्तेमाल किया है Matlab, Octave, numpy\scipy


2

मुझे OCaml पसंद आया, कम से कम जब तक मैंने मल्टी-थ्रेडेड प्रोग्रामिंग को नहीं देखा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.