MATLAB (matrix laboratory) is a commerical software package which represents a numerical computing environment, high level programming language and visualization package. Matlab was developed by Mathworks and costs on the order of ~$100 for a student licence, or $1900 for a single commercial licence (updated Dec 2012, version 8 / R2012v). Among its features, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, and Fortran.
I haven't personally used MATLAB much yet, but here I've collected some videos and what few things that I have learnt in MATLAB. Although hideously expensive, I do regret not learning to use it earlier, since suddenly in 2012 I've been told to use it.
Tutorials (the fastest way to learn Matlab)
Make a shortcut to Matlab
To make a shortcut on your Terminal, edit your profile file:
pico ~/.bashrc # then add this line: alias matlab="/usr/local/MATLAB/R2012b/bin/matlab"
After your next restart you can just type "matlab" to launch it.
CVX is a Matlab-based modeling system for convex optimization.
Download from here Unpack and copy to:
Once matlab is open copy this:
cd /usr/local/MATLAB/plugins/cvs cvx_setup
cvx_begin variables x1 x2 minimize(x1 + x2) subject to 2*x1 + x2 >= 1 x1 + 3*x2 >= 1 x1 >= 0 x2 >= 0 cvx_end % PROBLEM EXTRA EXC 3.2 / EX 4.1 ANSWERS: % (a) minimize(x1 + x2) --> x1=0.4, x2=0.2 % (b) minimize(-x1 - x2) --> x1=3.9088e-08, x2=1.0 % (c) minimize(x1) --> x1=6.0507e-11, x2=9.6117 % (d) minimize(max(x1,x2)) --> x1=0.3333, x2=0.3333 % (d) minimize(x1^2 + 9*(x2^2)) --> x1=0.5, x2=0.1667 A = [-1, 0.4, 0.8; 1, 0, 0; 0, 1, 0]; b = [1; 0; 0.3]; xdes = [7; 2; -6]; N = 30; x0 = [0; 0; 0];
cvx_begin variables x(3, N+1) umid(N) uneg(N) upos(N) minimize(norm(umid,1)+2*norm(upos,1)+2*norm(uneg,1)) subject to umid >= -1 umid <= 1 upos >= 0 uneg <= 0 for t = 1:N x(:, t+1) == A*x(:,t) + b*(umid(t)+uneg(t)+upos(t)) end x(:,1) == x0 x(:,N+1) == xdes cvx_end