Introduction to MATLAB January 18, 2008 Steve Gu Reference: Eta Kappa Nu, UCLA Iota Gamma Chapter, Introduction to MATLAB,
Part I: Basics • MATLAB Environment • Getting Help • Variables • Vectors, Matrices, and Linear Algebra • Flow Control / Loops
Display Windows
Display Windows (con’t…) • Graphic (Figure) Window – Displays plots and graphs • E.g: surf(magic(30)) – Created in response to graphics commands. • M-file editor/debugger window – Create and edit scripts of commands called M-files.
Getting Help • type one of following commands in the command window: – help – lists all the help topic – help command – provides help for the specified command • help help – provides information on use of the help command – Google… of course
Variables • Variable names: – Must start with a letter – May contain only letters, digits, and the underscore “_” – Matlab is case sensitive, i.e. one & OnE are different variables. • Assignment statement: – Variable = number; – Variable = expression; • Example: >> tutorial = 1234; >> tutorial = 1234 tutorial = 1234 NOTE: when a semi- colon ”;” is placed at the end of each command, the result is not displayed.
Variables (con’t…) • Special variables: –ans : default variable name for the result –pi:  = 3.1415926………… –eps:  = 2.2204e-016, smallest amount by which 2 numbers can differ. –Inf or inf : , infinity –NaN or nan: not-a-number
Vectors, Matrices and Linear Algebra • Vectors • Matrices • Solutions to Systems of Linear Equations.
Vectors Example: >> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ] x = 0 0.7854 1.5708 2.3562 3.1416 >> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ] y = 0 0.7854 1.5708 2.3562 3.1416 x is a row vector. y is a column vector.
Vectors (con’t…) • Vector Addressing – A vector element is addressed in MATLAB with an integer index enclosed in parentheses. • Example: >> x(3) ans = 1.5708  1st to 3rd elements of vector x • The colon notation may be used to address a block of elements. (start : increment : end) start is the starting index, increment is the amount to add to each successive index, and end is the ending index. A shortened format (start : end) may be used if increment is 1. • Example: >> x(1:3) ans = 0 0.7854 1.5708 NOTE: MATLAB index starts at 1.  3rd element of vector x
Vectors (con’t…) Some useful commands: x = start:end create row vector x starting with start, counting by one, ending at end x = start:increment:end create row vector x starting with start, counting by increment, ending at or before end linspace(start,end,number) create row vector x starting with start, ending at end, having number elements length(x) returns the length of vector x y = x’ transpose of vector x dot (x, y) returns the scalar dot product of the vector x and y.
Matrices A is an m x n matrix.  A Matrix array is two-dimensional, having both multiple rows and multiple columns, similar to vector arrays:  it begins with [, and end with ]  spaces or commas are used to separate elements in a row  semicolon or enter is used to separate rows. •Example: •>> f = [ 1 2 3; 4 5 6] f = 1 2 3 4 5 6 the main diagonal
Matrices (con’t…) • Matrix Addressing: -- matrixname(row, column) -- colon may be used in place of a row or column reference to select the entire row or column. recall: f = 1 2 3 4 5 6 h = 2 4 6 1 3 5  Example: >> f(2,3) ans = 6 >> h(:,1) ans = 2 1
Matrices (con’t…) Transpose B = A’ Identity Matrix eye(n)  returns an n x n identity matrix eye(m,n)  returns an m x n matrix with ones on the main diagonal and zeros elsewhere. Addition and subtraction C = A + B C = A – B Scalar Multiplication B = A, where  is a scalar. Matrix Multiplication C = A*B Matrix Inverse B = inv(A), A must be a square matrix in this case. rank (A)  returns the rank of the matrix A. Matrix Powers B = A.^2  squares each element in the matrix C = A * A  computes A*A, and A must be a square matrix. Determinant det (A), and A must be a square matrix. more commands A, B, C are matrices, and m, n,  are scalars.
Solutions to Systems of Linear Equations • Example: a system of 3 linear equations with 3 unknowns (x1, x2, x3): 3x1 + 2x2 – x3 = 10 -x1 + 3x2 + 2x3 = 5 x1 – x2 – x3 = -1 Then, the system can be described as: Ax = b               1 1 1 2 3 1 1 2 3 A            3 2 1 x x x x             1 5 10 b Let :
Solutions to Systems of Linear Equations (con’t…) • Solution by Matrix Inverse: Ax = b A-1Ax = A-1b x = A-1b • MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = inv(A)*b x = -2.0000 5.0000 -6.0000 Answer: x1 = -2, x2 = 5, x3 = -6 • Solution by Matrix Division: The solution to the equation Ax = b can be computed using left division. Answer: x1 = -2, x2 = 5, x3 = -6 NOTE: left division: Ab  b  A right division: x/y  x  y  MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = Ab x = -2.0000 5.0000 -6.0000
Flow Control: If…Else Example: (if…else and elseif clauses) if temperature > 100 disp (‘Too hot – equipment malfunctioning.’) elseif temperature > 90 disp (‘Normal operating range.’); else disp (‘Too cold – turn off equipment.’) end
Flow Control: Loops • for loop for variable = expression commands end • while loop while expression commands end •Example (for loop): for t = 1:5000 y(t) = sin (2*pi*t/10); end •Example (while loop): EPS = 1; while ( 1+EPS) >1 EPS = EPS/2; end EPS = 2*EPS  the break statement break – is used to terminate the execution of the loop.
Part II: Visualization
Visualization: Plotting • Example: >> s = linspace (-5, 5, 100); >> coeff = [ 1 3 3 1]; >> A = polyval (coeff, s); >> plot (s, A), >> xlabel ('s') >> ylabel ('A(s)') A(s) = s3 + 3s2 + 3s + 1
Plotting (con’t)  Plot a Helix t = linspace (-5, 5, 101); x = cos(t); y = sin(t); z = t plot3(x,y,z); box on;
Advanced Visualization
Part III: Modelling Vibrations Second Order Difference Equations
Modelling Vibrations The equation for the motion: Remark: Second Order Difference Equation
Modelling Vibrations • How to use MATLAB to compute y? • Let’s Do It !
Modelling Vibrations
Results

matlab_tutorial.ppt

  • 1.
    Introduction to MATLAB January18, 2008 Steve Gu Reference: Eta Kappa Nu, UCLA Iota Gamma Chapter, Introduction to MATLAB,
  • 2.
    Part I: Basics •MATLAB Environment • Getting Help • Variables • Vectors, Matrices, and Linear Algebra • Flow Control / Loops
  • 3.
  • 4.
    Display Windows (con’t…) •Graphic (Figure) Window – Displays plots and graphs • E.g: surf(magic(30)) – Created in response to graphics commands. • M-file editor/debugger window – Create and edit scripts of commands called M-files.
  • 5.
    Getting Help • typeone of following commands in the command window: – help – lists all the help topic – help command – provides help for the specified command • help help – provides information on use of the help command – Google… of course
  • 6.
    Variables • Variable names: –Must start with a letter – May contain only letters, digits, and the underscore “_” – Matlab is case sensitive, i.e. one & OnE are different variables. • Assignment statement: – Variable = number; – Variable = expression; • Example: >> tutorial = 1234; >> tutorial = 1234 tutorial = 1234 NOTE: when a semi- colon ”;” is placed at the end of each command, the result is not displayed.
  • 7.
    Variables (con’t…) • Specialvariables: –ans : default variable name for the result –pi:  = 3.1415926………… –eps:  = 2.2204e-016, smallest amount by which 2 numbers can differ. –Inf or inf : , infinity –NaN or nan: not-a-number
  • 8.
    Vectors, Matrices andLinear Algebra • Vectors • Matrices • Solutions to Systems of Linear Equations.
  • 9.
    Vectors Example: >> x =[ 0 0.25*pi 0.5*pi 0.75*pi pi ] x = 0 0.7854 1.5708 2.3562 3.1416 >> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ] y = 0 0.7854 1.5708 2.3562 3.1416 x is a row vector. y is a column vector.
  • 10.
    Vectors (con’t…) • VectorAddressing – A vector element is addressed in MATLAB with an integer index enclosed in parentheses. • Example: >> x(3) ans = 1.5708  1st to 3rd elements of vector x • The colon notation may be used to address a block of elements. (start : increment : end) start is the starting index, increment is the amount to add to each successive index, and end is the ending index. A shortened format (start : end) may be used if increment is 1. • Example: >> x(1:3) ans = 0 0.7854 1.5708 NOTE: MATLAB index starts at 1.  3rd element of vector x
  • 11.
    Vectors (con’t…) Some usefulcommands: x = start:end create row vector x starting with start, counting by one, ending at end x = start:increment:end create row vector x starting with start, counting by increment, ending at or before end linspace(start,end,number) create row vector x starting with start, ending at end, having number elements length(x) returns the length of vector x y = x’ transpose of vector x dot (x, y) returns the scalar dot product of the vector x and y.
  • 12.
    Matrices A is anm x n matrix.  A Matrix array is two-dimensional, having both multiple rows and multiple columns, similar to vector arrays:  it begins with [, and end with ]  spaces or commas are used to separate elements in a row  semicolon or enter is used to separate rows. •Example: •>> f = [ 1 2 3; 4 5 6] f = 1 2 3 4 5 6 the main diagonal
  • 13.
    Matrices (con’t…) • MatrixAddressing: -- matrixname(row, column) -- colon may be used in place of a row or column reference to select the entire row or column. recall: f = 1 2 3 4 5 6 h = 2 4 6 1 3 5  Example: >> f(2,3) ans = 6 >> h(:,1) ans = 2 1
  • 14.
    Matrices (con’t…) Transpose B= A’ Identity Matrix eye(n)  returns an n x n identity matrix eye(m,n)  returns an m x n matrix with ones on the main diagonal and zeros elsewhere. Addition and subtraction C = A + B C = A – B Scalar Multiplication B = A, where  is a scalar. Matrix Multiplication C = A*B Matrix Inverse B = inv(A), A must be a square matrix in this case. rank (A)  returns the rank of the matrix A. Matrix Powers B = A.^2  squares each element in the matrix C = A * A  computes A*A, and A must be a square matrix. Determinant det (A), and A must be a square matrix. more commands A, B, C are matrices, and m, n,  are scalars.
  • 15.
    Solutions to Systemsof Linear Equations • Example: a system of 3 linear equations with 3 unknowns (x1, x2, x3): 3x1 + 2x2 – x3 = 10 -x1 + 3x2 + 2x3 = 5 x1 – x2 – x3 = -1 Then, the system can be described as: Ax = b               1 1 1 2 3 1 1 2 3 A            3 2 1 x x x x             1 5 10 b Let :
  • 16.
    Solutions to Systemsof Linear Equations (con’t…) • Solution by Matrix Inverse: Ax = b A-1Ax = A-1b x = A-1b • MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = inv(A)*b x = -2.0000 5.0000 -6.0000 Answer: x1 = -2, x2 = 5, x3 = -6 • Solution by Matrix Division: The solution to the equation Ax = b can be computed using left division. Answer: x1 = -2, x2 = 5, x3 = -6 NOTE: left division: Ab  b  A right division: x/y  x  y  MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = Ab x = -2.0000 5.0000 -6.0000
  • 17.
    Flow Control: If…Else Example:(if…else and elseif clauses) if temperature > 100 disp (‘Too hot – equipment malfunctioning.’) elseif temperature > 90 disp (‘Normal operating range.’); else disp (‘Too cold – turn off equipment.’) end
  • 18.
    Flow Control: Loops •for loop for variable = expression commands end • while loop while expression commands end •Example (for loop): for t = 1:5000 y(t) = sin (2*pi*t/10); end •Example (while loop): EPS = 1; while ( 1+EPS) >1 EPS = EPS/2; end EPS = 2*EPS  the break statement break – is used to terminate the execution of the loop.
  • 19.
  • 20.
    Visualization: Plotting • Example: >>s = linspace (-5, 5, 100); >> coeff = [ 1 3 3 1]; >> A = polyval (coeff, s); >> plot (s, A), >> xlabel ('s') >> ylabel ('A(s)') A(s) = s3 + 3s2 + 3s + 1
  • 21.
    Plotting (con’t)  Plota Helix t = linspace (-5, 5, 101); x = cos(t); y = sin(t); z = t plot3(x,y,z); box on;
  • 22.
  • 23.
    Part III: ModellingVibrations Second Order Difference Equations
  • 24.
    Modelling Vibrations The equationfor the motion: Remark: Second Order Difference Equation
  • 25.
    Modelling Vibrations • Howto use MATLAB to compute y? • Let’s Do It !
  • 26.
  • 28.