Question? Leave a message!




MATLAB LECTURE NOTES

MATLAB LECTURE NOTES 23
MATLAB LECTURE NOTES Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering MATLAB LECTURE NOTES Student Name Student ID Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering MATLAB LECTURE NOTES LESSON 1 INTRODUCTION Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering • MATLAB stands for MATrix LABoratory. • MATLAB was invented by Cleve Moler in the late 1970s. • MATLAB is written in C. • MATLAB works as an interpreter. • MATLAB works slower than C and Fortran. • MATLAB has many toolboxes for different disciplines. • MATLAB has many visualisation tools. This section lists the Command Window Workspace shows the Command History script and function is the main window names and values of lists the copy of the files in your working that you write your the variables defined commands you have folder commands by the user run on the command window clc Clears the command window. Does not delete any variable. home Move cursor to the upper left corner of the command window. clear Deletes all the variables. clear variable name Deletes a certain variable. who Lists the names of the variables defined by the user. whos Lists detailed information about the variables defined by the user. beep Produce a beep sound. computer Identify the computer on which MATLAB is running. realmin Smallest positive real number. realmax Largest positive real number. date Shows the current system date. disp ( variable name ) Displays the value of the variable. disp ( string constant ) Displays the string constant. ans Automatically created variable when the result of an operation is not assigned to a variable. pi Mathematical π constant. Used for writing a comment. ; Used for suppressing a variable or the result of an operation. + : Plus – : Minus : Matrix multiplication . : Array multiplication (Element wise) : Matrix power . : Array power (Element wise) \ : Backslash or left division / : Slash or right division .\ : Left array division (Element wise) ./ : Right array division (Element wise) : : Colon ‘ : Transpose = : Assignment == : Equal to = : Not equal to : Greater than : Less than = : Greater than or equal to = : Less than or equal to : Logical AND : Logical OR : Logical NOT true : Logical TRUE false : Logical FALSE abs (x) Calculates absolute value of x ceil (x) Rounds x to the next integer floor (x) Rounds x to the previous integer round (x) Rounds x to the nearest integer exp (x) x Calculates exponential of x (e ) log (x) Calculates natural logarithm of x (lnx) log2 (x) Calculates base 2 logarithm of x (log x) 2 log10 (x) Calculates base 10 logarithm of x (log x) 10mod (x,a) Calculates modulus of x (x mod a) sqrt (x) Calculates square root of x nthroot (x,n) th Calculates n root of x factorial (x) Calculates factorial of x (x) sin (x) Calculates sine of x sinh (x) Calculates hyperbolic sine of x asin (x) Calculates inverse sine of x asinh (x) Calculates inverse hyperbolic sine of x cos (x) Calculates cosine of x cosh (x) Calculates hyperbolic cosine of x acos (x) Calculates inverse cosine of x acosh (x) Calculates inverse hyperbolic cosine of x tan (x) Calculates tangent of x tanh (x) Calculates hyperbolic tangent of x atan (x) Calculates inverse tangent of x atanh (x) Calculates inverse hyperbolic tangent of x sind (x) Calculates sine of x (x in degrees) cosd (x) Calculates cosine of x (x in degrees) tand (x) Calculates tangent of x (x in degrees) cotd (x) Calculates cotangent of x (x in degrees) secd (x) Calculates secant of x (x in degrees) asind (x) Calculates inverse sine of x (result in degrees) acosd (x) Calculates inverse cosine of x (result in degrees) atand (x) Calculates inverse tangent of x (result in degrees) acotd (x) Calculates inverse cotangent of x (result in degrees) asecd (x) Calculates inverse secant of x (result in degrees) format short 4 decimal places (3.1416) format short e 4 decimal places with exponent (3.1416e+000) format long Many decimal places (3.141592653589793) format long e Many decimal places with exponent (3.141592653589793e+000) format bank 2 decimal places (3.14) • A scalar is a matrix with only one row and one column. It is simply a single value. • A vector is a special form of matrix which contains only one row or one column. A matrix with only one row is called a “row vector” and a matrix with only one column is called a “column vector”. They can be named as onedimensional arrays. • A matrix is a rectangular multidimensional array of numbers. A scalar can be created as follows : A row vector can be created as follows : A column vector can be created as follows : A matrix can be created as follows : • Variable and function names are case sensitive. • They can not start with a number. • They can not include language specific characters. • They can not include punctuation characters. • They can not include spaces. MATLAB LECTURE NOTES LESSON 2 MATRIX OPERATIONS Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering a : b : c Starting Value Increment Ending Value This method creates an array with values starting from a and ending at c with an increment of b. An array can be created as follows : Same array can also be created as follows : linspace (a,b,n) This method creates an array with n number of equally spaced values starting from a and ending at b. logspace (a,b,n) This method creates an array with n number of equally x spaced logarithmic (10 ) values starting from a and ending at b. Addition and subtraction of two vectors : Multiplication and division of two vectors : Multiplication of a scalar and a vector : Addition and subtraction of two matrices : Matrix multiplication of two matrices : Element wise multiplication of two matrices : Element wise division of two matrices : Multiplication of a scalar and a matrix : dot (A,B) Calculates the dot product of two vectors. cross (A,B) Calculates the cross product of two vectors. sort (A) Sorts the elements of the given vector. mean (A) Calculates the average value of the elements of the given vector. sum (A) Calculates the sum of the elements of the given vector. prod (A) Calculates the product of the elements of the given vector. min (A) Results the minimum value of the given vector. max (A) Results the maximum value of the given vector. zeros (m,n) Creates an mxn matrix of all zeros. ones (m,n) Creates an mxn matrix of all ones. eye (m) Creates an mxm identity matrix. rand (m,n) Creates an mxn matrix full of uniformly distributed random numbers between 0 and 1. diag (A) Creates a diagonal matrix with the elements of the given vector as the diagonal. size (A) Returns the dimensions of the given matrix. length (A) Returns the length of the given vector. det (A) Calculates the determinant of the given matrix. inv (A) Calculates the inverse of the given matrix. A’ Calculates the transpose of the given matrix. A ( m , n ) Results the element of the given matrix in row m and column n. A ( : , n ) Results the elements of the given matrix in column n. A ( m , : ) Results the elements of the given matrix in row m. Solving a system of linear equations : K X S K.X = S 1 1 K .K.X = K .S 1 X = K .S X = inv (K)S 3a + 6b + 8c = 101.5 5a – 4b – 7c = –56.5 4a + 5b + 9c = 108.5 MATLAB LECTURE NOTES LESSON 3 DATA VISUALIZATION Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering plot (x,y) Plots the given vectors on a normal chart. plot (x1,y1,x2,y2) Plots the two given vectors on a normal chart. plotyy (x,y1,x,y2) Plots the two given vectors with two different yaxis. bar (x,y) Plots the given vectors on a vertical bar chart. barh (x,y) Plots the given vectors on a horizontal bar chart. polar (x,y) Plots the given vectors on a polar coordinate chart. area (x,y) Plots the given vectors on an area chart. quiver (x,y) Plots the given vectors on a velocity chart. ribbon (x,y) Plots the given vectors on a ribbon chart. stairs (x,y) Plots the given vectors on a stairstep chart. stem (x,y) Plots the given vectors on a discrete data chart. pie (x) Plots the pie chart for the values given in the vector. semilogx (x,y) Plots the given vectors on a normal chart with logarithmic x axis and linear y axis. semilogy (x,y) Plots the given vectors on a normal chart with logarithmic y axis and linear x axis. loglog (x,y) Plots the given vectors on a normal chart with logarithmic x axis and logarithmic y axis . subplot (m,n,k) Creates a chart area of mxn and locates the next plot to the position of k. MATLAB LECTURE NOTES LESSON 4 POLYNOMIALS Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering th General form of an n degree polynomial function is defined as follows : The vector representing the polynomial function is defined as follows : Examples of polynomial vectors : polyval (p,x) This method calculates the value of the polynomial p for the given value of x. Plotting polynomial vectors : roots (p) Calculates the roots of the given polynomial vector. poly (r) Calculates the polynomial vector for the given roots. polyder (p) Calculates the derivative of the given polynomial vector. polyint (p) Calculates the analytic integral of the given polynomial vector. conv (p1,p2) Multiplies the given two polynomial vectors. deconv (p1,p2) Divides the given two polynomial vectors. polyfit (x,y,degree) th Calculates the polynomial vector of n degree that represents the data given by x and y. In other words, it is a polynomial curve fitting using the least squares method. Example of curve fitting : Curve fitting with different functions : Curve fitting with different functions : Example of curve fitting with different functions : interp1 (x,y,xnew,method) Performs a onedimensional interpolation over the data given by x and y for the values of xnew using the specified method. Methods are ; nearest : This method accepts the nearest neighbor point. linear : This method performs a linear interpolation. spline : This method performs a cubic spline polynomial interpolation. cubic : This method performs a cubic Hermite interpolation. Example of spline interpolation : MATLAB LECTURE NOTES LESSON 5 PROGRAMMING Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering mfile Script File Function File A script file is A function file is a sequence of a subprogram commands or to execute a statements. certain process. Examples of function files : function result = add (x,y,z) result = x + y + z; function s c = SquareAndCube (x) s = x.2; c = x.3; function result = FahToCel (f) result = (f – 32)5/9; inline (‘...’) Lets you define simple functions without writing external mfiles. fplot (‘...’ , a b) Plots simple functions within the range of a and b. input (‘...’) Lets you input data into a variable from command window. fprintf (‘...’) Displays constant data or the values of variables in a certain format. Use the formatting strings given below to format the output. • Use s to format as a string. • Use d to format a number as an integer. • Use f to format a number as a floatingpoint value. • Use e to format a number in a scientific notation. • Use \n to insert a newline. • Use \t to insert a tab. Examples of fprintf : if ... elseif ... else ... end This statement executes the program block which satisfies the corresponding condition. if condition ... Program Block ... elseif condition ... Program Block ... else ... Program Block ... end if grade 50 disp ('You failed.') else disp ('You passed.') end if mach 1 disp ('Flow is subsonic.') elseif mach 1 disp ('Flow is supersonic.') else disp ('Flow is sonic.') end switch ... end This statement executes the program block which the variable satisfies the corresponding case value. switch variable case value1 Program Block ... case value2 Program Block ... case value3 Program Block ... otherwise Program Block ... end mach = input ('Please enter mach number: '); switch mach case 1 disp ('Flow is sonic.'); case 0.5 disp ('Flow is subsonic.'); case 1.2 disp ('Flow is transonic.'); case 3 disp ('Flow is supersonic.'); case 5 disp ('Flow is hypersonic.'); otherwise disp ('Flow is undefined.'); end for ... end This statement repeats the program block within the range of the loop statement. for expression ... ... Program Block ... end for k = 1:1:10 s = k2; fprintf ('Square of 2d = d \n',k,s); end continue This command jumps to the next iteration of the loop. for k = 1:1:10 if k == 5 continue end s = k2; fprintf ('Square of 2d = d \n',k,s); end break This command stops the loop. for k = 1:1:10 if k == 5 break end s = k2; fprintf ('Square of 2d = d \n',k,s); end while ... end This statement repeats the program block as long as the loop expression is true. while expression ... ... Program Block ... end k = 5; while k = 10 c = k3; fprintf ('Cube of 2d = d \n',k,c); k = k + 1; end MATLAB LECTURE NOTES LESSON 6 NUMERICAL INTEGRATION Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering Numerical integration (quadrature) is simply the area under the curve of a function. Trapezoidal Rule : Trapezoidal Rule : Trapezoidal Rule Algorithm : segment = ... ; point = segment + 1; a = ... ; b = ... ; h = (b a) / (point – 1); x = a:h:b; y = ... ; I = (h/2) ( y(1) + 2sum( y(2:point–1) ) + y(point) ) Simpson Rule : Simpson Rule : Simpson Rule Algorithm : segment = ... ; point = 2segment + 1; a = ... ; b = ... ; h = (b a) / (point – 1); x = a:h:b; y = ... ; I = (h/3) ( y(1) + 4sum( y(2:2:point–1) ) + 2sum( y(3:2:point–2) ) + y(point) ) trapz (x,y) Calculates the area under the trapezoids created by xy pairs. quad (‘...’,a,b) Numerically integrates the given function in the range of a and b using the adaptive simpson method. MATLAB LECTURE NOTES LESSON 7 ROOT FINDING ALGORITHMS Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering Bisection Method : if f(a) . f(m) 0 → a = m if f(b) . f(m) 0 → b = m Bisection Method Algorithm : a = ... ; b = ... ; m = (a + b) / 2; while abs ( f(m) ) 1e6 if f(a) f(m) 0 a = m; else b = m; end m = (a + b) / 2; end m Bisection Method Example: f = inline (‘cos(x) – x’); x = –1:0.01:1; y = f(x); plot (x,y) grid a = –1 ; b = 1 ; m = (a + b) / 2; while abs ( f(m) ) 1e6 if f(a) f(m) 0 a = m; else b = m; end m = (a + b) / 2; end m Newton's Method : Newton's Method Algorithm : x0 = ... ; while abs ( f(x0) ) 1e6 x1 = x0 – ( f(x0) / fd(x0) ); x0 = x1; end x0 Newton's Method Example: f = inline (‘cos(x) – x’); fd = inline (‘– sin(x) – 1’); x = –1:0.01:1; y = f(x); plot (x,y) grid x0 = 0.2; while abs ( f(x0) ) 1e6 x1 = x0 – ( f(x0) / fd(x0) ); x0 = x1; end x0 Fixed Point Iteration Method : converges to a root. Fixed Point Iteration Method Algorithm : x0 = ... ; tol = 1; while abs ( tol ) 1e6 x1 = g(x0); tol = x0 – x1; x0 = x1; end x0 Fixed Point Iteration Method Example: f = inline (‘x.2 – 2x – 3’); g = inline (‘sqrt (2x + 3)’); x = 0:0.01:5; y = f(x); plot (x,y) grid x0 = 0; tol = 1; while abs ( tol ) 1e6 x1 = g(x0); tol = x0 – x1; x0 = x1; end x0 fzero (f,x0) Finds the root of the function f starting from an initial guess of x0. fminbnd (f,a,b) Finds the local minimizer of function f in the interval a and b. MATLAB LECTURE NOTES LESSON 8 SYMBOLIC ALGEBRA Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering syms ... Used to create symbolic variables. sym (‘...’) Used to create symbolic variables, expressions and equations. findsym (f) Determines the symbolic variables present in an expression. subs (S,old,new) Substitutes a variable with a new variable or a new value in a symbolic expression. collect (S) Collects the coefficients in a symbolic expression. factor (S) Gives the prime factors of a symbolic expression. expand (S) Expands a symbolic expression. simplify (S) Simplifies a symbolic expression. poly2sym (p) Converts a polynomial vector to a symbolic expression. sym2poly (S) Converts a symbolic expression to a polynomial vector. diff (S) Calculates the derivative of the symbolic expression. diff (S,u) Calculates the derivative of the symbolic expression with respect to a variable. int (S) Integrates the symbolic expression. int (S,u) Integrates the symbolic expression with respect to a variable. int (S,u,a,b) Integrates the symbolic expression with respect to a variable within the range of a and b. ezplot (S, xmin xmax ) Plots a symbolic expression in the given range. If the range is not defined, the default range is 2π to +2π. solve (‘...’,‘...’,‘...’) Solves the given equation or the system of equations. dsolve (‘...’,‘...’,‘...’) Solves the given differential equation or the system of differential equations. MATLAB LECTURE NOTES LESSON 9 THREE DIMENSIONAL PLOTS Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering meshgrid (rangeX, rangeY) Used to create the grid within the range of rangeX and rangeY. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); mesh (X, Y, Z) Used to plot X, Y and Z values using a mesh view. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); mesh (X, Y, Z); meshc (X, Y, Z) Used to plot X, Y and Z values using a mesh view with projections. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); meshc (X, Y, Z); surf (X, Y, Z) Used to plot X, Y and Z values using a surface mesh view. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); surf (X, Y, Z); surfc (X, Y, Z) Used to plot X, Y and Z values using a surface mesh view with projections. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); surfc (X, Y, Z); shading interp Plots the graphic with interpolated colors. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); surf (X, Y, Z); shading interp shading faceted Plots the graphic with meshed colors. rangeX = 10:1:10; rangeY = 5:1:5; X, Y = meshgrid (rangeX, rangeY); Z = X . sin(Y); surf (X, Y, Z); shading faceted plot3 (X, Y, Z) Used to create a simple plot in three dimensions. X = 10:0.1:10; Y = 10:0.1:10; Z = X . sin(Y); plot3 (X, Y, Z); grid Dr. ADİL YÜCEL Istanbul Technical University Department of Mechanical Engineering adil.yucelitu.edu.tr – adil.yucelgmail.com www.adilyucel.com