# What program to implement mathematical models? [closed]

I am an engineering student and recently came upon some articles that provide numerical models that relate electromagnetic fields and temperature. I want to test out these numerical models but am unsure how to begin.

It was suggested to use either MatLab or Python. Are there any resources that will teach me how to use either to solve numerical models that include differential equations and system of equations?

• the question is really too broad for this forum. There are many tools out there and different ones are appropriate for different problems. As an engineering student learning matlab and python would be worthwhile.I'd add mathematica to the list if its available to you. Oct 11 '17 at 23:55
• The problem with this question and answers is that everybody seems to think you are talking of an ODE, however if this is some sort of space time thing you get into Finite Element Analysis. None of the tools suggested are really super good at FEA. Reason im suspecting this is that magnetic fields and temerature are classeic FE things. @agentp mathematica definitely. Oct 12 '17 at 13:20
• Python is primarily a general-purpose programming language; it's equipped with a huge number of libraries, including scientific ones. It's free, but it's a generic tool that can be adapted for engineering or scientific use. Matlab is a big commercial application designed for scientific and engineering use. It contains its own quirky programming language (e.g. there are two types of variables: string, and matrix of complex numbers) and a number of toolboxes for specific domains.
– SF.
Oct 13 '17 at 9:29

"Numerical Recipes" is probably what you need the most. It contains tons of useful scientific/numerical computation codes. It's a book, but I believe it was also available online.

Apart from that, you probably need some more theoretical background, and some programming experience.

"Linear Algebra" lectures would help a lot with solving sets of equations. Ocw.mit.edu has open courses available, for example.

Fortran, C/C++, Python and Matlab would all help you model and solve the equations for you. And there are several good textbooks and open source materials on the Internet.

Matlab takes the most investment (unless it's already licensed at your institution). It has many solvers already built in, and it handles matrices extremely well. Plus it has built in visualization capability. (Though it takes just a few lines of code in the other languages to come up with some graphs, or you could write your data to a file and use another application for plotting).

If you'd rather learn how to do the computations yourself, Fortran and C/C++ would be the best teaching way to go.

I can wholeheartedly recommend a Python and the Numpy & Scipy libraries, there are plenty of good sources available to learn python and the Frameworks, for free and on the internet.

Python is a really good language to learn and it enforces good coding practices by design, as well as being easy to use.

If you have access to Matlab and simulink, it may already have the models you require built in, but it costs a significant amount of money unless you have a licence at your institution.

This question is very opinion based, and may therefore be closed.

• adding another voice in favor of python: you'll get going using python faster than probably any other tool out there. Oct 12 '17 at 21:30

I would look into the subject of "Numerical Methods".

There are textbooks that explain numerical methods for many different scenarios; from solving basic systems, to numerical solutions to partial differential equations.

May also be worth checking your program to see if you will have any courses on this topic. It's a pretty powerful tool, and I'd actually be pretty surprised if your program didn't have some sort of numerical methods course, or at least a lot of coverage in other courses.

The textbook I had (can't remember the author or exact title) was old (1970s/80s, always talked about FORTRAN); but the methods given were generic and could be applied to any language quite easily.