ปัญหาของคำถามประเภทนี้คือคำตอบนั้นขึ้นอยู่กับชุมชนเป็นอย่างมาก
ในการตอบคำถามของคุณตามลำดับอย่างไม่ตั้งใจ:
MATLAB มีการใช้กันอย่างแพร่หลายทั้งในแวดวงวิชาการและในอุตสาหกรรม หนึ่งในเหตุผลที่ใช้ค่อนข้างน้อยในอุตสาหกรรมคือเนื่องจากมีการสอนในสถาบันการศึกษา ฉันรู้ว่ามีการใช้ MATLAB ในห้องปฏิบัติการ Lincoln และในแผนกวิจัยและพัฒนาของ DuPont
มีแพ็คเกจซอฟต์แวร์ที่เขียนด้วย Python ซึ่งสามารถใช้ในการคำนวณเชิงสัญลักษณ์ได้ดีเช่น Sympy และ SAGE ข้อกำหนดคุณสมบัติและความชอบส่วนตัว Mathematica (หรือ Maple หรือระบบพีชคณิตคอมพิวเตอร์อื่น ๆ ) อาจเหนือกว่าแพ็คเกจเหล่านี้ทั้งนี้ขึ้นอยู่กับความสนใจเฉพาะของคุณ
MATLAB มี Symbolic Math Toolbox ซึ่งสามารถใช้สำหรับการคำนวณเชิงสัญลักษณ์บางอย่าง แต่ความสามารถในการจัดการเชิงสัญลักษณ์ในประสบการณ์ของฉันนั้นอ่อนแอกว่า Mathematica และ Python การดัดแปลงเชิงสัญลักษณ์บางอย่างสามารถทำได้ในทางทฤษฎีใน C ++ แต่มันไม่สะดวก MATLAB ยังไม่ได้เป็นภาษาที่ใช้โดยทั่วไปที่ดี มันใช้พีชคณิตเชิงเส้นและคณิตศาสตร์เชิงตัวเลขได้ดี แต่มันไม่มีความสามารถด้านอินพุต / เอาต์พุตที่ดี มันไม่มีความสามารถในการขนานที่ดี (แม้ว่าจะมีตัวแปรเช่น MATLAB แบบขนาน, MATLAB Star-P และกล่องเครื่องมือคำนวณแบบขนาน) เทียบกับ C ++ หรือ Python แม้แต่ความสามารถด้านกราฟิกก็สามารถใช้งานได้ MATLAB นั้นแพงเช่นกันถ้าคุณไม่ได้เป็นพันธมิตรกับสถาบันที่มีใบอนุญาต กล่องเครื่องมือแต่ละกล่องมีราคาแพงในการซื้อและโดยทั่วไปมีค่าใช้จ่ายในการสั่งซื้อหลายร้อยถึงหลายพันดอลลาร์
Mathematica ทำการคำนวณเชิงตัวเลขเพิ่มเติมจากการคำนวณเชิงสัญลักษณ์ ฉันไม่เคยเห็นคนใช้สำหรับการคำนวณเชิงตัวเลขเท่าที่ฉันเคยเห็นผู้คนใช้ Python และ MATLAB สำหรับการคำนวณเชิงตัวเลข มันก็มีความสามารถแบบขนาน แต่จะไม่ขยายไปถึงซูเปอร์คอมพิวเตอร์ขนาดใหญ่
Python เป็นภาษาวัตถุประสงค์ทั่วไปที่ดีซึ่งถือว่าเป็นเรื่องง่ายที่จะเรียนรู้และใช้งานได้ มันถูกใช้กับซูเปอร์คอมพิวเตอร์ขนาดใหญ่ (ดูตัวอย่าง PyClaw, Petsc4py, mpi4py และอื่น ๆ ) และปรับขนาดได้ดี นอกจากนี้ยังมีแพ็คเกจตัวเลขที่ได้รับการยอมรับอย่างสูง (เช่น NumPy และ SciPy) ชุมชนขนาดใหญ่ที่แอคทีฟ ความสามารถในการประมวลผลอินพุต / เอาท์พุตที่ดี และห้องสมุดกราฟิกที่ดีพร้อมกับพื้นที่เก็บข้อมูลขนาดใหญ่ของห้องสมุด (ตรวจสอบ PyPI) ฟรีเมื่อเทียบกับแพ็คเกจที่กล่าวถึงข้างต้น คุณสามารถค้นหาการทำงานส่วนใหญ่ของ MATLAB หรือ Mathematica ในแพ็คเกจ Python ที่มีให้ใช้งานได้ฟรี ข้อเสียเปรียบหลักของ Python คือมันมีแนวโน้มที่จะช้ากว่าภาษาที่คอมไพล์เช่น C ++ ถึงแม้ว่าข้อเสียนี้จะลดน้อยลงด้วยการพัฒนาอย่างต่อเนื่องของ Cython, Numba และ PyPy; มันยังสามารถบรรเทาได้ด้วยการแทนที่รหัส Python ที่ช้าลงด้วยรหัส C (หรือ C ++ หรือ Fortran) และตัวห่อ Python ที่เหมาะสม ถูกตีความหลาย ๆ คนรายงานว่าผลิตภาพได้สูงขึ้นด้วย Python มากกว่าภาษาที่รวบรวม มันค่อนข้างเป็นที่นิยมและน่าจะเรียนรู้ได้ถ้าคุณมีเวลา
C ++ เป็นภาษาที่มีความซับซ้อนและการใช้งานในวิทยาศาสตร์การคำนวณเป็นที่ถกเถียงกัน ชุดคุณลักษณะที่มีขนาดใหญ่สามารถทำให้ง่ายต่อการเขียนซอฟต์แวร์ที่ยากต่อการบำรุงรักษาและรวบรวมตลอดไป อย่างไรก็ตามใช้อย่างรอบคอบคุณสมบัติเช่นเทมเพลตและการบรรทุกเกินพิกัดสามารถใช้เพื่อผลที่ยอดเยี่ยมตามที่ได้รับในโครงการเช่นข้อตกลง II, Blaze, และ Elemental (อื่น ๆ ) C ++ มีช่วงการเรียนรู้ที่สูงชันเมื่อมันมาถึงคุณสมบัติขั้นสูงและฉันเคยได้ยินรายงานเล็ก ๆ น้อย ๆ เกี่ยวกับผู้คนที่ใช้เวลาหลายปีในการรู้สึกเหมือนพวกเขาได้เรียนรู้ภาษาเต็มรูปแบบ อย่างไรก็ตามมันยังเป็นภาษาที่นิยมแม้จะมีข้อกังวลเกี่ยวกับการใช้งานและชุดคุณลักษณะที่ซับซ้อน มันอาจคุ้มค่าที่จะเรียนรู้ถ้าเพียงเพื่อให้ตัวเองมีงานทำมากขึ้น คู่แข่งหลักในด้านวิทยาศาสตร์การคำนวณ ได้แก่ Fortran และ C ซึ่งเป็นสิ่งที่ควรค่าแก่การเรียนรู้
สิ่งที่คุณตัดสินใจที่จะเรียนรู้จะขึ้นอยู่กับสิ่งที่คุณต้องการจริง แน่นอนว่าเป็นเรื่องดีที่จะเรียนรู้ทั้ง Python และ C ++ แต่ให้เวลาและข้อ จำกัด ด้านทรัพยากรคุณอาจจะได้เรียนรู้ว่าคุณต้องใช้อะไรจริง ๆ และขึ้นอยู่กับชุมชนที่คุณทำงาน