Josh Xiaomin Xi PhD Candidate Feb 27, 2013 A tutorial from... MATLAB: MATrix and LABoratory First developed by Dr.. INFORMS OSU Josh Xiaomin XiIntro: Installation Go to: http://oci
Trang 1Josh Xiaomin
Xi
PhD Candidate
Feb 27, 2013
A tutorial from
Trang 2INFORMS OSU Josh Xiaomin Xi
Overview
Introduction
Installation (Toolboxes)
Layout of Matlab Windows
Basics of Matlab language
Arithmetic Operations
Variables
Matrix
Plot
Functions: inline and sym
Programming in Matlab
m-file
Optimization in Matlab
Trang 3 MATLAB: MATrix and LABoratory
First developed by Dr Cleve Molder: Fortran based
In 1984, MathWorks was founded: C based
Trang 4INFORMS OSU Josh Xiaomin Xi
Intro: Installation
Go to: http://ocio.osu.edu/software/directory/slwin/
Trang 5Intro: Installation
Select the tool boxes that you need
e.g Matlab, curve fitting, optimization, statistics, symbolic math, etc
Trang 6INFORMS OSU Josh Xiaomin Xi
Intro: Matlab Windows
Layout
Command Window
Command History
Current Directory Browser
Workspace Browser
Trang 7 Introduction
Installation (Toolboxes)
Layout of Matlab Windows
Basics of Matlab language
Arithmetic Operation
Variables
Matrix
Plot
Functions: inline and sym
Programming in Matlab
m-file
Trang 8INFORMS OSU Josh Xiaomin Xi
Basics: Arithmetic
Operations
+ plus
- minus
* multiply / right divide
\ left divide
^ exponential
2+3=5 2-3= -1 2*3=6 2/3=0.6667 2\3=1.5000 2^3=8
Trang 9Basics: Variables
How to define a variable name
Numbers and letter, but first component must be a letter
Case sensitive
No space, punctuations (except underline)
Special variables
ans
NaN, nan
Inf, -Inf
pi
i, j
realmax, realmin
However, you can redefine these variables, and use “clear”
to clear redefinition.
Trang 10INFORMS OSU Josh Xiaomin Xi
Basics: Matrix
How to define a matrix/vector
A = [1 2 3 4; 4 5 6 7] ~~ [1:4; 4:7] (!!! Comma, colon, semicolon bracket)
Special matrix
zeros(m,n)
ones(m,n)
diag(vec)
Matrix operation
Basic arithmetic operation (!!! Period & dimensions)
Inverse (inv) and transpose (apostrophe)
Read/change matrix component (!!! parenthesis)
Stacking and breaking
Size(), length(), eig()
Trang 11Basics: Plot
An example of attenuation oscillation curve:
t=0:pi/50:4*pi;
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r')
grid
/ sin ,
t
y e = − t t ∈ [ , 0 4 π ]
Use “help” to find more info of plot, e.g linespec, legend, title, xlabel
loglog log plot, taking log on both x & y
semilogx log plot, taking log only on x
semilogy log plot, taking log only on y
mesh 3-d plot
bar bar chart
Subplot one figure with sub figures
Other
Trang 12INFORMS OSU Josh Xiaomin Xi
Basics: Functions
Use “sym” / “syms”
Use “inline”
2
3 sin( 2 )
f = x − y
syms x y;
f=3*sin(2*x^2-y)
Df=diff(f) Df2=diff(f,2) subs(f,x,4)
fin=inline(char(f)) fin(1,1)
f=inline(‘3*sin(2*x^2-y)’)
f=inline(‘3*sin(2*x^2-y)’,’x’,’y’)
f(1,1)
Trang 13 Introduction
Installation (Toolboxes)
Layout of Matlab Windows
Basics of Matlab language
Arithmetic Operation
Variables
Matrix
Plot
Functions
Programming in Matlab
m-file: run large program, build large function
Control flow: if-else, while, for
Trang 14INFORMS OSU Josh Xiaomin Xi
M File
Replace command window when running large code
Easy management
Can be reused in future
Define functions / sub-sections
Better structure
Good for complicated programming/logic
Trang 15Control Flow
If-Else If condition
expression(s) 1;
else expression(s) 2;
end
If condition1 expression(s) 1;
else if condition2 expression(s) 2;
else expression(s) 3;
end
≥
<
<
≤
<
≤
=
2 40
2 1
30
1 0
20
0 10
t t t
t F
If t >= 2
F = 40;
else if t > 1
F = 30;
else if t > 0
F = 20;
else
F = 10;
end
Trang 16INFORMS OSU Josh Xiaomin Xi
Control Flow
For / while
for i=1:5;
for j=1:3 x(i , j)= i * j;
end end
x =
1 2 3
2 4 6
3 6 9
4 8 12
5 10 15
n=1;
while prod ( 1 : n ) < 100;
n=n+1;
end
n
Because 5x4x3x2x1=120
Trang 17Optimization In Matlab
Common optimization functions
linprog: linear programming
Quadprog: quadratic programming
fmincon: constrained non-linear minimization
fminsearch, fminunc: unconstrained nonlinear minimization
fsolve: non-linear system of equations solve
lsqlin: linear least square with linear constraints
Trang 18INFORMS OSU Josh Xiaomin Xi
Optimization: linprog
linprog: linear programming
http://www.mathworks.com/help/optim/ug/linprog.html
Min f(x) = –5x1 –4x2 –6x3 s.t x1 – x2 + x3 ≤ 20
3x1 + 2x2 + 4x3 ≤ 42 3x1 + 2x2 ≤ 30
0 ≤ x1, 0 ≤ x2, 0 ≤ x3