Numerical Analysis Programming Language

Click For Summary

Discussion Overview

The discussion revolves around the selection of a programming language for a numerical analysis course within an Applied Mathematics major. Participants explore various programming languages and their suitability for the course, considering factors such as ease of learning, application in numerical methods, and personal experiences with different languages.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant suggests that C++, C, Python, and Fortran are good options, emphasizing the importance of choosing a language based on available resources and personal career relevance.
  • Another participant notes that numerical analysis courses often involve programming algorithms in MATLAB, focusing more on theoretical aspects like derivation and methods rather than complex programming skills.
  • A participant expresses a preference for Python due to its ease of use and the availability of the Anaconda package for scientific computing, while also acknowledging that it can be challenging for matrix operations.
  • MATLAB is highlighted for its strengths in matrix manipulation and data visualization, but its cost is mentioned as a drawback, with Scilab proposed as a free alternative.
  • Concerns are raised about the steep learning curve associated with C/C++, particularly regarding the need for additional libraries for advanced mathematical functions and the lack of data visualization tools.
  • A recommendation is made to use "Engineering Problem Solving in C++" by Etter as a resource for learning C++, with advice on setting up a suitable programming environment.

Areas of Agreement / Disagreement

Participants express a range of opinions on the best programming language for numerical analysis, with no consensus reached. Some favor Python for its accessibility, while others advocate for C/C++ or MATLAB based on different criteria.

Contextual Notes

Participants mention various programming environments and tools, but there is no agreement on a single best approach, reflecting diverse experiences and preferences. The discussion also highlights the importance of understanding fundamental programming concepts regardless of the chosen language.

Who May Find This Useful

Students preparing for numerical analysis courses, educators seeking insights on programming language recommendations, and professionals interested in numerical methods and computational tools.

occh
Messages
14
Reaction score
2
In two semesters or so, i will be taking a numerical analysis course as part of an Applied Mathematics major. In the course description it says that you should have knowledge of at least one programming language, but i cannot find any more information about this. What do you all think would be a good language to learn in order to prepare for this class?
 
Physics news on Phys.org
C++, C, Python and Fortran come to mind, in no particular order of preference. If you don't have any idea which one you're more likely to use in your work later on, just pick whichever one you can find compilers and learning resources for easily. Don't stress out over the choice. Whichever one you choose, you'll probably end up needing to learn one of the others at some point, if you program regularly as part of your career.
 
In my experience, numerical analysis courses may require a programming language like C++, Fortran, or python, but a lot of times it's simply programming an algorithm into matlab. The focus of the course will probably be more about derivation, bounds, methods, and maybe run times. Programming aspect will probably be in the form of implementing the different methods. Thus, there really isn't anything extremely complicated you need to know programming wise. IF you are unfamiliar with programming entirely, learning in any language how for loops, do while, while and foreach loops work would be beneficial to avoid common bugs that occur when people miss count the index. Other good things to know is the difference between a global variable and local variable.

If the course uses matlab, learning how MATLAB takes arguments will save a few headaches too.

Just as a personal opinion, python, to me, is the easier to get up and running with little to no help. Especially if you download anaconda package you'll have basically everything you'll need for scientific computing and data munging. Thus, I'll consider that a good starting point to learn a language.
 
MATLAB is particulary good for matrix and vector manipulation and data visualization. The problem is that it is expensive. Scilab is my favorite alternative, though it is a little bit kooky in the way it implements functions.

I am just learning python myself, it has some ups and downs but it is a pain working with matrices. It is more powerful than MATLAB and thus has a steeper learning curve. Python is also used with a lot of MOOCS and other software. I'm not sure how I feel about python yet.

C/C++ is the most advanced of them all. You can do almost anything you want with C, but the learning curve is steeper and you'll have to look for libraries that can implement advanced math (unless you want to write your own). I enjoyed C++, but it is severely lacking in the data visualization department.
 
Get "Engineering Problem Solving in C++" by Etter. Go through everything but feel free to stop when it gets to classes. This is the equivalent of one intro C++ class only better.

Also, get a good programming environment. If you have a Mac, learn the command line. If you have Windows, install a Linux partition (or thumb drive installation).
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
589
  • · Replies 9 ·
Replies
9
Views
3K
Replies
6
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
Replies
41
Views
9K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K