1. Introduction to Computing - MATLAB.pptx

tgkfkj9n2k 15 views 54 slides Mar 12, 2025
Slide 1
Slide 1 of 54
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54

About This Presentation

Using MATLAB in computing


Slide Content

Introduction to MATLAB Introduction MATLAB computations

Topics Introduction MATLAB Environment Getting Help Variables Vectors, Matrices, and Linear Algebra Mathematical Functions and Applications Plotting Selection Programming M-Files User Defined Functions Specific Topics

Introduction What is MATLAB ? MATLAB is a computer program that combines computation and visualization power that makes it particularly useful tool for engineers. MATLAB is an executive program, and a script can be made with a list of MATLAB commands like other programming language. MATLAB Stands for MAT rix LAB oratory. The system was designed to make matrix computation particularly easy. The MATLAB environment allows the user to: manage variables import and export data perform calculations generate plots develop and manage files for use with MATLAB.

Display Windows

Display Windows (con’t…) Graphic (Figure) Window Displays plots and graphs 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 topic – provides help for the specified topic help command – provides help for the specified command help help – provides information on use of the help command helpwin – opens a separate help window for navigation lookfor keyword – Search all M-files for keyword

Getting Help (con’t…) Google “MATLAB helpdesk” Go to the online HelpDesk provided by www.mathworks.com You can find EVERYTHING you need to know about MATLAB from the online HelpDesk.

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. Matlab only recognizes the first 31 characters in a variable name. Assignment statement: Variable = number; Variable = expression; E x a m p l e : >> 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 Commands involving variables: who : lists the names of defined variables whos : lists the names and sizes of defined variables clear : clears all varialbes, reset the default values of special variables. clear name : clears the variable name clc : clears the command window clf : clears the current figure and the graph window.

Vectors, Matrices and Linear Algebra Vectors Array Operations Matrices Solutions to Systems of Linear Equations.

MATLAB BASICS Variables and Arrays Array : A collection of data values organized into rows and columns, and known by a single name. Row 1 Row 2 Row 3 arr(3,2) Row 4 Col 1 Col 2 Col 3 Col 4 Col 5

MATLAB BASICS Arrays The fundamental unit of data in MATLAB Scalars are also treated as arrays by MATLAB (1 row and 1 column). Row and column indices of an array start from 1. Arrays can be classified as vectors and matrices .

MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified by the number of rows and the number of columns, with the number of rows mentioned first ( For example: n x m array ). Total number of elements in an array is the product of the number of rows and the number of columns.

MATLAB BASICS 1 2 3 4 5 6 a= 3x2 matrix  6 elements b =[ 1 2 3 4] 1x4 array  4 elements, row vector c= 1 3 5 3x1 array  3 elements, column vector b(3) = 3 c(2) = 3 a(2,1)=3 Row # Column #

Vectors A row vector in MATLAB can be created by an explicit list, starting with a left bracket, entering the values separated by spaces (or commas) and closing the vector with a right bracket. A column vector can be created the same way, and the rows are separated by semicolons. Example: >> x = [ 0.25*pi 0.5*pi 0.75*pi pi ] x = 0.7854 1.5708 2.3562 3.1416 >> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ] y = 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  1 st to 3 rd 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.7854 1.5708 NOTE: MATLAB index starts at 1.  3 rd 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 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.

Array Operations Scalar-Array Mathematics For addition, subtraction, multiplication, and division of an array by a scalar simply apply the operations to all elements of the array. Example: >> f = [ 1 2; 3 4] f = 1 2 3 4 >> g = 2*f – 1 g = 1 3 5 7 Each element in the array f is multiplied by 2, then subtracted by 1.

Array Operations (con’t…) Element-by-Element Array-Array Mathematics. Operation Algebraic Form MATLAB Addition a + b a + b Subtraction a – b a – b Multiplication a x b a .* b Division a  b a ./ b Exponentiation a b a .^ b Example: >> x = [ 1 2 3 ]; >> y = [ 4 5 6 ]; >> z = x .* y z = 4 10 18 Each element in x is multiplied by the corresponding element in y.

M a tr ice s 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 >> h = [ 2 4 6 1 3 5] h = 2 4 6 1 3 5 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. r e c a l l: f = 1 4 h = 2 1 2 3 5 6 4 6 3 5 Example: >> f(2,3) ans = 6 >> h(:,1) ans = 2 1

Matrices (con’t…) Some useful commands: zeros(n) z e r o s ( m , n) ones(n) o n e s ( m , n ) size (A) len gt h( A) returns a n x n matrix of zeros returns a m x n matrix of zeros returns a n x n matrix of ones returns a m x n matrix of ones for a m x n matrix A, returns the row vector [m,n] containing the number of rows and columns in matrix. returns the larger of the number of rows or columns in A.

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 (x 1 , x 2 , x 3 ): 3x 1 + 2x 2 – x 3 = 10 -x 1 + 3x 2 + 2x 3 = 5 x 1 – x 2 – x 3 = -1 Then, the system can be described as: Ax = b 2   3 2 1  A    1 3     1  1  1       x 3   x   x 2   x 1       1   b   5   10  Let :

Solutions to Systems of Linear Equations (con’t…) Solution by Matrix Inverse: Ax = b A - 1 Ax = A - 1 b x = A - 1 b 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 : x 1 = -2, x 2 = 5, x 3 = -6 Solution by Matrix Division: The solution to the equation Ax = b can be computed using left division . MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; > > x = A\ b x = -2.0000 5.0000 -6.0000 Answer : x 1 = -2, x 2 = 5, x 3 = -6 NOTE : left division: A\b  b  A right division: x/y  x  y

The input function displays a prompt string in the Command Window and then waits for the user to respond. my_val = input( ‘Enter an input value: ’ ); in1 = input( ‘Enter data: ’ ); in2 = input( ‘Enter data: ’ ,`s`); Initializing with Keyboard Input

How to display data The disp( ) function >> disp( 'Hello' ) Hello >> disp(5) 5 >> disp( [ 'Bilkent ' 'University' ] ) Bilkent University >> name = 'Alper'; >> disp( [ 'Hello ' name ] ) Hello Alper

Plo tt ing For more information on 2-D plotting, type help graph2d Plotting a point: >> plot ( variablename, ‘symbol’) the function plot () creates a graphics window, called a Figure window, and named by default “Figure No. 1” Example : Complex number >> z = 1 + 0.5j; >> plot (z, ‘.’)

Plotting (con’t…)

>> t = 0:pi/100:2*pi; >> y = sin(t); >> plot(t,y) Line Plot 30

>> xlabel(‘t’); >> ylabel(‘sin(t)’); >> title(‘The plot of t vs sin(t)’); Line Plot 31

>> y2 = sin(t-0.25); >> y3 = sin(t+0.25); >> plot(t,y,t,y2,t,y3) curves % make 2D line plot of 3 >> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1) Line Plot 32

Generally, MATLAB’s default graphical settings are adequate which make plotting fairly effortless. For more customized effects, use the get and set commands to change the behavior of specific rendering properties. >> hp1 = plot(1:5) of this line plot >> get(hp1) properties and their values >> set(hp1, ‘lineWidth’) values for lineWidth >> set(hp1, ‘lineWidth’, 2) % returns the handle % to view line plot’s % show possible % change line width Customizing Graphical Eff 3 e 3 cts

>> x = magic(3); >> bar(x) >> grid % generate data for bar graph % create bar chart % add grid To add a legend, either use the legend command or via insert in the Menu Bar on the figure. Many other actions are available in Tools . It is convenient to use the Menu Bar to change a figure’s properties interactively. However, the set command is handy for non-interactive changes, Save A Plot With print 34

>> x = magic(3); >> bar(x) >> grid % generate data for bar graph % create bar chart % add grid for clarity 2D Bar Graph 35

>> print –djpeg 'mybar' >> print('-djpeg', 'mybar') % print as a command % print as a function Function ? Many MATLAB utilities are available in both command and function forms. For this example, both forms produce the same effect: For this example, the command form yields an unintentional outcome: >> myfile = 'mybar'; % myfile is defined as a U s e M A T n t L d A io n B o M C L ommand or 36

Surface Plot >> Z = peaks; % generate data for plot; returns function values >> surf(Z) % surface plot of Z Try these commands also: >> shading flat >> shading interp >> shading faceted >> grid off >> axis off peaks 37

>> >> contourf(Z, 20); % with color fill colormap('hot') % map option colorbar % make color bar Contour Plots >> Z = peaks; >> contour(Z, 20) % contour plot of Z with 20 contours >> 38

Integration Example Integration of cosine from 0 to π /2. Use mid-point rule for simplicity. 39 m m b a 2 1 c o s ( a  ( i  ) h ) h c o s ( x ) d x    i  1 c o s ( x ) d x   i  1 a  ih  a  ( i  1 ) h mid-point of increment cos(x) h a = 0; b = pi/2 ; % range m = 8 ; % # of increments h = (b-a)/m ; % increment

m a b h = 100; = 0; = pi/2; = (b – a)/m; % lower limit of integration % upper limit of integration % increment length % initialize integral integral = 0; for i=1:m x = a+(i-0.5)*h; % mid-point of increment i integral = integral + cos(x)*h; end toc I n t e g r a t i o I n tr o n d u loop % integration with for-loop tic E to M x A T a L A m B ple — using 40 for- X(1) = a + h/2 X (m) = b - h/2 a h b

% integration with tic vector form m = 100; a = 0; % lower limit of integration b = pi/2; % upper limit of integration h = (b – a)/m; % increment length x = a+h/2:h:b-h/2; % mid-point integral = sum(cos(x))*h; toc of m increments I n t e g r a t i o I n tr o n d u vector form E to M x A T a L A m B ple — using 41 X(1) = a + h/2 X (m) = b - h/2 a h b

Use the editor to write a program to generate the figure that describe the integration scheme we discussed. (Hint: use plot to plot the cosine curve. Use bar to draw the rectangles that depict the integrated value for each interval. Save as plotIntegral.m Compute the integrals using 10 different increment sizes (h), for m=10, 20, 30, . . . , 100 . Plot these 10 values to see how the solution converges to the analytical value of 1 . Hands On Exercise 42

a = 0; b=pi/2; m = 8; h = (b-a)/m; x= a+h/2:h:b-h/2; bh = bar(x,cos(x),1,'c'); hold x = a:h/10:b; f = cos(x); ph = plot(x,f,'r'); % lower and upper limits of integration % number of increments % increment size % m mid-points % make bar chart with the bars in cyan % all plots will be superposed on same figure % use more points at which to evaluate cosine % compute cosine at x % plots x vs f, in red % Compute integral with different values of m to study convergence for i=1:10 n(i) = 10+(i-1)*10; h = (b-a)/n(i); x = a+h/2:h:b-h/2; integral(i) = sum(cos(x)*h); end figure % create a new figure plot(n, integral) Hands On Exercise Solutio 4 n 3

SCV home page ( www.bu.edu/tech/research ) Resource Applications www.bu.edu/tech/accounts/special/research/accounts Help System [email protected], bu.service-now.com Web-based tutorials ( www.bu.edu/tech/research/training/tutorials ) (MPI, OpenMP, MATLAB, IDL, Graphics tools) HPC consultations by appointment Kadin Tseng ([email protected]) Yann Tambouret ([email protected]) Useful SCV Info 44

Built-in MATLAB Functions result = function_name( input ) ; abs, sign log, log10, log2 exp sqrt sin, cos, tan asin, acos, atan max, min round, floor, ceil, fix mod, rem help elfun  help for elementary math functions

Selection Programming Flow Control Loops

Flow Control Simple if statement: if logical expression commands end Example: (Nested) if d <50 count = count + 1; disp(d); if b>d b=0; end end Example: ( else and elseif clauses) if temperature > 100 disp (‘Too hot – equipment malfunctioning.’) elseif temperature > 90 disp (‘Normal operating range.’); elseif (‘Below desired operating range.’) else disp (‘Too cold – turn off equipment.’) end

Flow Control (con’t…) The switch statement: switch expression case test expression 1 commands case test expression 2 commands otherwise commands end Example: switch interval < 1 case 1 xinc = interval /10; case xinc = 0.1; end

Loops for loop for variable = expression c o mma nd s 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.

M-Files So far, we have executed the commands in the command window. But a more practical way is to create a M-file. The M-file is a text file that consists a group of MATLAB commands. MATLAB can open and execute the commands exactly as if they were entered at the MATLAB command window. To run the M-files, just type the file name in the command window. (make sure the current working directory is set correctly) All MATLAB commands are M-files.

User-Defined Function Add the following command in the beginning of your m-file: function [output variables] = function_name (input variables); NOTE: the function_name should be the same as your file name to avoid confusion. calling your function: -- a user-defined function is called by the name of the m-file, not the name given in the function definition. -- type in the m-file name like other pre-defined commands. Comments: -- The first few lines should be comments, as they will be displayed if help is requested for the function name. the first comment line is reference by the lookfor command.

Specific Topics This tutorial gives you a general background on the usage of MATLAB. There are thousands of MATLAB commands for many different applications, therefore it is impossible to cover all topics here.