इस प्रकार के किसी भी प्रश्न के साथ एक कठिनाई यह है कि इसका उत्तर अत्यधिक समुदाय-निर्भर है।
आपके कुछ सवालों का जवाब देने के लिए
MATLAB का उपयोग शिक्षा और उद्योग दोनों में बहुत किया जाता है। इसका एक कारण यह है कि उद्योग में इसका उपयोग बहुत कम किया जाता है क्योंकि यह एकेडेमिया में पढ़ाया जाता है। मुझे पता है कि MATLAB का उपयोग लिंकन प्रयोगशाला में और ड्यूपॉन्ट के अनुसंधान और विकास प्रभागों में किया जाता है।
पायथन में लिखे गए सॉफ्टवेयर पैकेज हैं जो प्रतीकात्मक गणना में अच्छे हैं, जैसे कि सिम्पी और SAGE। आपकी विशेष रुचियों, फ़ीचर आवश्यकताओं, और व्यक्तिगत प्राथमिकताओं के आधार पर, इन पैकेजों से Mathematica (या मेपल, या अन्य कंप्यूटर बीजगणित प्रणालियाँ) बेहतर हो सकती हैं।
MATLAB में एक प्रतीकात्मक गणित टूलबॉक्स है जिसका उपयोग कुछ प्रतीकात्मक संगणनाओं के लिए किया जा सकता है, लेकिन इसकी प्रतीकात्मक हेरफेर क्षमताओं, मेरे अनुभव में, गणितज्ञ और पायथन की तुलना में कमजोर हैं। कुछ प्रतीकात्मक हेरफेर सैद्धांतिक रूप से C ++ में किया जा सकता था, लेकिन यह अस्पष्ट है। MATLAB भी एक सामान्य सामान्य भाषा नहीं है। यह रैखिक बीजगणित और संख्यात्मक गणित को अच्छी तरह से करता है, लेकिन इसमें अच्छा इनपुट / आउटपुट क्षमताएं नहीं हैं। इसमें C ++ या Python की तुलना में अच्छी समांतर क्षमताएं नहीं हैं (भले ही समानांतर MATLAB, MATLAB Star-P, और Parallel Computing Toolbox जैसे वेरिएंट हैं)। यहां तक कि इसकी ग्राफिक्स क्षमताएं कुछ काम का उपयोग कर सकती हैं। MATLAB भी महंगा है जब तक कि आप उस संस्था से संबद्ध न हों जिसके पास लाइसेंस है। प्रत्येक टूलबॉक्स खरीदना महंगा है, और आमतौर पर सैकड़ों से हजारों डॉलर के ऑर्डर पर खर्च होता है।
प्रतीकात्मक संगणना के अलावा गणितज्ञ संख्यात्मक गणना करता है। मैंने देखा नहीं कि लोग संख्यात्मक अभिकलन के लिए इसका उपयोग करते हैं जितना मैंने देखा है कि लोगों ने संख्यात्मक कार्य के लिए पायथन और MATLAB का उपयोग किया है। इसकी भी समानांतर क्षमताएं हैं, लेकिन बड़े सुपर कंप्यूटरों के पैमाने नहीं होंगे।
पायथन एक सामान्य सामान्य भाषा है जिसे सीखना और प्रयोग करने में आसान माना जाता है। इसका उपयोग बड़े सुपर कंप्यूटरों पर किया जाता है (देखें, उदाहरण के लिए, PyClaw, Petsc4py, mpi4py, और अन्य), और अच्छी तरह से तराजू। यह भी उच्च माना संख्यात्मक पैकेज (जैसे कि NumPy और SciPy) है; एक बड़ा, सक्रिय समुदाय; अच्छा इनपुट / आउटपुट प्रोसेसिंग क्षमता; और अच्छे ग्राफिक्स पुस्तकालय, पुस्तकालयों के एक बड़े भंडार (PyPI की जाँच करें) के साथ। यह ऊपर उल्लेखित मालिकाना पैकेजों की तुलना में मुफ़्त है। आप आसानी से उपलब्ध पायथन पैकेजों में MATLAB या गणितज्ञ की अधिकांश कार्यक्षमता पा सकते हैं। पायथन का मुख्य नुकसान यह है कि यह C ++ जैसी संकलित भाषाओं की तुलना में धीमा हो जाता है, हालांकि यह नुकसान साइथन, नुम्बा और PyPy के निरंतर विकास के साथ कम हो रहा है; इसे C (या C ++, या Fortran) कोड के साथ धीमी पायथन कोड को बदलकर और उचित रूप से लिखे गए पायथन रैपर से भी कम किया जा सकता है। व्याख्या की जा रही है, कई लोग संकलित भाषाओं की तुलना में पायथन के साथ उच्च उत्पादकता की रिपोर्ट करते हैं। यह काफी लोकप्रिय है, और यदि आपके पास समय है तो शायद सीखने लायक है।
C ++ एक जटिल भाषा है, और कम्प्यूटेशनल विज्ञान में इसका उपयोग विवादास्पद है। इसका बड़ा फीचर सेट सॉफ्टवेयर को लिखना आसान बनाता है जिसे बनाए रखना मुश्किल है और इसे हमेशा के लिए संकलित करना मुश्किल है। हालांकि, विवेकपूर्ण तरीके से इस्तेमाल किया गया, जैसे कि टेम्प्लेटिंग और ऑपरेटर ओवरलोडिंग जैसी विशेषताओं को बहुत प्रभाव में नियोजित किया जा सकता है, क्योंकि यह डील.II, ब्लेज़ और एलिमेंटल (अन्य के बीच) जैसी परियोजनाओं में रही है। C ++ में एक उन्नत सीखने की अवस्था है, जब इसकी उन्नत विशेषताओं की बात आती है, और मैंने वर्षों से लोगों को यह महसूस करने के बारे में सुना है कि उन्होंने पूरी भाषा सीख ली है। फिर भी, यह प्रयोज्य चिंताओं और जटिल सुविधा सेट के बावजूद भी एक लोकप्रिय भाषा है। यह शायद सीखने लायक है, यदि केवल खुद को अधिक रोजगारपरक बनाना है; कम्प्यूटेशनल विज्ञान में इसके मुख्य प्रतियोगी फोरट्रान और सी हैं, जो सीखने लायक भी हैं।
आप जो भी सीखने का फैसला करते हैं, वह उस चीज पर आधारित होगा जिसकी आपको वास्तव में जरूरत है। निश्चित रूप से, पायथन और सी ++ दोनों को सीखना अच्छा है, लेकिन समय और संसाधन की कमी के कारण, आप शायद केवल यह जानने जा रहे हैं कि आपको वास्तव में उपयोग करने की आवश्यकता क्या है, और यह उस समुदाय पर निर्भर करता है जिसमें आप काम करते हैं।