न्यूमेरिकल रेसिपी में क्या आधुनिक विकल्प मौजूद हैं? [बन्द है]


21

अतीत में, न्यूमेरिकल व्यंजनों की किताब को संख्यात्मक एल्गोरिदम के लिए सोने का मानक संदर्भ माना जाता था। जल्द से जल्द फोरट्रान संस्करण को सी और सी ++ और अन्य में संस्करणों के बाद लाया गया था, फिर इसे और अधिक अप-टू-डेट किया गया। इनके माध्यम से, यह दिन के अत्याधुनिक एल्गोरिदम के लिए संदर्भ कोड प्रदान करता है।

पुराने संस्करण आजकल मुफ्त में ऑनलाइन उपलब्ध हैं।

दुर्भाग्य से, मुझे लगता है कि यह अब केवल एक ऐतिहासिक ठुमके के रूप में उपयोगी है। "सॉफ़्टवेयर इंजीनियरिंग" प्रथा मुझे पुरानी लगती है, और वास्तविक सामग्री ने साहित्य के साथ तालमेल नहीं रखा है।

इसी तरह के व्यापक अभी तक स्वीकार्य संदर्भों को आधुनिक प्रोग्रामर को इसके बजाय देखना चाहिए?


7
एल्गोरिदम स्वयं सामान्य प्रयोजन समस्या-समाधान के लिए बहुत अच्छे हैं। यह उनका कार्यान्वयन है जो वांछित होने के लिए कुछ छोड़ सकता है। लेकिन यह ठीक है क्योंकि पुस्तक में कोड सरल है जो आपके स्वादों को संशोधित करने के लिए पर्याप्त है। अध्यायों में कार्यान्वयन काफी हद तक "आत्म-निहित" और cruft से मुक्त है। संख्यात्मक व्यंजनों अभी भी समय के लिए एक अच्छा संदर्भ है जब आपको कुछ बुनियादी संख्यात्मक सामानों को लागू करने की आवश्यकता होती है, लेकिन एक विशाल जटिल या महंगे पुस्तकालय या ढांचे की आवश्यकता नहीं होती है।
एंजेलो

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

5
मुझे इस बात से सहमत होना होगा कि पुस्तकों में प्रदान किया गया C और C ++ कोड एक बार फिर साबित करता है कि एक अच्छा फोरट्रान प्रोग्रामर किसी भी भाषा में अच्छे फोरट्रान कोड लिख सकता है। हालाँकि, ये पुस्तकें अभी भी एक महान संदर्भ हैं। एल्गोरिदम के स्पष्टीकरण बहुत स्पष्ट हैं। कोड बॉक्स के बाहर प्रयोग करने योग्य है, और यदि यह वास्तव में आपकी संवेदनाओं को समाप्त करता है, तो आप इसे हमेशा स्वयं लिख सकते हैं। इसे खरोंच से लागू करने की तुलना में अभी भी बहुत आसान होगा।
दिमा

12
याद रखें कि NR में कोड पर कॉपीराइट प्रतिबंध काफी कठोर हैं। आपको केवल दस रूटीन तक कोड में व्यक्तिगत रूप से कुंजी की अनुमति है, और आपके परिणामी कार्यक्रम को किसी अन्य व्यक्ति या कंप्यूटर को वितरित करने की अनुमति नहीं है। लगभग किसी भी काम के माहौल में इसका मतलब है कि आपको एल्गोरिथम को फिर से लागू करना होगा, इसलिए परिष्कृत ओओ या कार्यात्मक कार्यान्वयन प्रदान करने वाले लेखकों को क्या लाभ होगा? पुस्तक द्वारा प्रदान की गई सेवा महत्वपूर्ण एल्गोरिदम की स्पष्ट व्याख्या है, न कि एक मजबूत गणित पुस्तकालय का प्रावधान।
चार्ल्स ई। ग्रांट

3
कौन परवाह करता है कि कोड क्या है? इसे अच्छे से लपेटें और इसे कभी न देखें।
डेविड हेफर्नन

जवाबों:


7

न्यूमेरिकल रेसिपी के संदर्भ में, हमें दो चीजों की आवश्यकता है - एल्गोरिदम कैसे प्रोग्रामिंग कार्यान्वयन में अनुवाद करता है और दूसरा, एक संदर्भ कार्यान्वयन इन चीजों को लागू करता है।

लगता है बुक + संदर्भ सॉफ्टवेयर का कोई संयोजन नहीं है । हालांकि, कुछ अच्छे संदर्भ सॉफ्टवेयर्स हैं और इनमें से कुछ ऐसे एल्गोरिदम के आधार पर कागजात के संदर्भ प्रदान करते हैं।

यहाँ कुछ संदर्भों (अधिकतर खुले स्रोत) पुस्तकालयों की सूची है जो मदद कर सकते हैं:

  1. GNU साइंटिफिक लाइब्रेरी
  2. LAPACK यह एक अच्छा है पुस्तक एक के रूप में उपयोगकर्ता के मैनुअल वहाँ भी है LAPACK ++ और अन्य (टीएनटी) व्युत्पन्न / संबंधित संकुल। अधिक जानकारी के लिए इसे देखें ।
  3. रैखिक बीजगणित को बढ़ावा दें
  4. वर्मी
  5. BLAS

अन्य विशिष्ट बातें हैं

  1. सांख्यिकीय मॉडल के लिए एपोफेनिया
  2. बछेड़ा
  3. FFTW
  4. आर पैकेज - और एक किताब
  5. OpenCV
  6. इंटेल मठ कर्नेल लाइब्रेरी
  7. के लिए पैटर्न मान्यता

आप " ओपन सोर्स टूल्स के साथ डेटा एनालिसिस " भी देख सकते हैं ।

यहाँ तुलना की एक विशाल सूची है, हालांकि मैंने सब कुछ सत्यापित नहीं किया है।
http://www.netlib.org/utk/people/JackDongarra/la-sw.html


4

न्यूमेरिकल रेसिपीज़, IMO, एक उपयोगी किताब है। यह उनके व्युत्पत्ति सहित एल्गोरिदम का वास्तव में अच्छी तरह से वर्णन करता है, उन स्थितियों में जिनमें वे उपयोगी हैं, और जब वे नहीं हैं, तो विचार करने के लिए विकल्प। मैं वर्षों से पुस्तक का उपयोग कर रहा हूं।

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

एनआर के बारे में उसी तरह से सोचें जैसे आप नूथ के बारे में सोचते हैं: आप कभी भी उस किताब के कोड को अपने प्रोजेक्ट में पेस्ट नहीं करेंगे।


3

व्यक्तिगत रूप से मुझे यह पसंद है, यह उस स्तर के बारे में है जिसे मैं समझ सकता हूं

कोड फोरट्रान का 'सी' में अनुवाद किया गया है, लेकिन यह ठीक है कि आप इसे वापस फोरट्रान और फिर सी ++ में स्वयं अनुवाद कर सकते हैं! फोरट्रान या सी संस्करणों के फायदे हैं जिसमें कोड बहुत अधिक आत्म निहित है, आपको मैट्रिस, कॉम्प्लेक्स, आदि करने के लिए सी ++ कक्षाओं के एक समूह में खींचने की ज़रूरत नहीं है - विशेष रूप से उनके कोडिंग की गुणवत्ता को देखते हुए!

लेखकों द्वारा अजीबोगरीब कॉपीराइट दावों के लिए एक उचित आपत्ति है और मुझे पता है कि कई व्याख्याता हैं जो अपनी कक्षाओं में एनआर पर प्रतिबंध लगाते हैं। संख्यात्मक विशेषज्ञों के बीच, पुस्तकों में "आपको परेशानी में डालने के लिए पर्याप्त जानकारी" के रूप में भी प्रतिष्ठा है। लेकिन उनका एकमात्र सुझाव आम तौर पर अपने व्यक्तिगत कोड का उपयोग करना या एनएजी खरीदना है।

Http://www.netlib.org/ पर वैकल्पिक उच्च गुणवत्ता संख्यात्मक लिबास का सुझाव दिया गया संग्रह है

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