Tag Archives: MIT

Starting with Python

python logo
Python logo

For about a year I have been programming in Python as a Matlab alternative. I love Matlab but I can’t afford being tied to a licence. Python is free, open source, and so far I have been able to do everything I did with Matlab. I am fairly impressed!

Python is becoming, or it may be already, a main stream programming language, specially for open source software. Since it’s a scripting language a lot of programs use it for scripting in that app. A few examples are Blender for 3D modeling and animation, FreeCad for 3D mechanical modeling, Fenics for solving differential equations by finite element methods, etc. Many universities have adopted Python in their class work, MIT, Georgia Tech, UC Davis, etc.

If you want to start with Python let me recommend the following:

  1. Use Enthought! Yes, I know … there is also a licence attached if you really want full support and all the packages. But it’s free if you have a .edu email and even if you don’t have one there is a totally free version of Enhtought: Canopy Express! By the way, the Enthought distro works on Mac, Linux and Windows. It’s perfect!
  2. If you really… really don’t want to be attached to a licence (I made my peace with Enthought since they have a free version) you can use Spyderlib. It’s also an Integrated Development Environment (IDE) like Enthought but has a few less python libraries… but you can install them separately with a bit of pain.

If you want to lear more about Python and how to get started check these references:

Free Online Classes

Linear Algebra

By Gilbert Strang – MIT

COURSE INDEX

  1. Positive definite matrices K = A’CA
  2. One-dimensional applications: A = difference matrix
  3. Network applications: A = incidence matrix
  4. Applications to linear estimation: least squares
  5. Applications to dynamics: eigenvalues of K, solution of Mu” + Ku = F(t)
  6. Underlying theory: applied linear algebra
  7. Discrete vs. continuous: differences and derivatives
  8. Applications to boundary value problems: Laplace equation
  9. Solutions of Laplace equation: complex variables
  10. Delta function and Green’s function
  11. Initial value problems: wave equation and heat equation
  12. Solutions of initial value problems: eigenfunctions
  13. Numerical linear algebra: orthogonalization and A = QR
  14. Numerical linear algebra: SVD and applications
  15. Numerical methods in estimation: recursive least squares and covariance matrix
  16. Dynamic estimation: Kalman filter and square root filter
  17. Finite difference methods: equilibrium problems
  18. Finite difference methods: stability and convergence
  19. Optimization and minimum principles: Euler equation
  20. Finite element method: equilibrium equations
  21. Spectral method: dynamic equations
  22. Fourier expansions and convolution
  23. Fast fourier transform and circulant matrices
  24. Discrete filters: lowpass and highpass
  25. Filters in the time and frequency domain
  26. Filter banks and perfect reconstruction
  27. Multiresolution, wavelet transform and scaling function
  28. Splines and orthogonal wavelets: Daubechies construction
  29. Applications in signal and image processing: compression
  30. Network flows and combinatorics: max flow = min cut
  31. Simplex method in linear programming
  32. Nonlinear optimization: algorithms and theory

Artificial Intelligence

By Sebastian Thrun & Peter Norvig – Stanford

Machine Learning

By Andrew Ng – Stanford

Other great resources