Bruce Mayer, PE Registered Electrical & Mechanical Engineer BMayer@ChabotCollege
Bruce Mayer, PE Licensed Electrical & Mechanical Engineer BMayer@ChabotCollege
description
Transcript of Bruce Mayer, PE Licensed Electrical & Mechanical Engineer BMayer@ChabotCollege
[email protected] • ENGR-25_MATLAB_OverView-1.ppt1
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Bruce Mayer, PELicensed Electrical & Mechanical Engineer
Engr/Math/Physics 25
Chp1 MATLABOverView:
Part-1
[email protected] • ENGR-25_MATLAB_OverView-1.ppt2
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Learning Goals Turn On MATLAB and use as a
calculator Create Basic Cartesian Plots Write and Save simple “Script”
Program-files Execute Conditional Statements
• IF, THEN, ELSE, >, <, >=, etc. Execute Loop Statements
• FOR & WHILE
[email protected] • ENGR-25_MATLAB_OverView-1.ppt3
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB Environment TWO Interaction Modes
• INTERACTIVE – Type in the COMMAND WINDOW– Often Called a Command-Window “Session”– Interaction is NOT Saved to Disk
Commands (NOT results) Stored in “Command History” Buffer Window
• STORED → Two Types– SCRIPT Files– FUNCTION Files
[email protected] • ENGR-25_MATLAB_OverView-1.ppt4
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB Command Window
[email protected] • ENGR-25_MATLAB_OverView-1.ppt5
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example Cmd Window Session>> %Use MATLAB As Calculator>> 17*19ans = 323
>> 77/19 -4.3ans = -0.2474
>> 64^(1/3) + 32^0.2ans = 6
>> (7+11)*2.5ans = 45
>> L = 14.4L = 14.4000
>> W = 13.3W = 13.3000
>> Area = L*WArea = 191.5200
[email protected] • ENGR-25_MATLAB_OverView-1.ppt6
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Script/Function File Editor
[email protected] • ENGR-25_MATLAB_OverView-1.ppt7
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Script & Function Files (m-files) SCRIPTS and FUNCTIONS in MATLAB
are stored in text files that end with the extension “.m”• These files are called m-files
SCRIPTS (a.k.a. “programs”)• Scripts files are useful for automating tasks
that may need to be repeated.• They have no input/output parameters• They can (but probably shouldn’t) share
variables with the command workspace
[email protected] • ENGR-25_MATLAB_OverView-1.ppt8
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Script & Function Files (m-files) SCRIPTS (cont.)
• Scripts are sequences of interactive statements stored in a file– i.e., They look liked Stored versions of Command Window
Sessions
FUNCTIONS (a.k.a. “subroutines”)• Function m-files are MATLAB subprograms
analogous to FORTRAN Subroutines, or C functions• They communicate with the command window and
other functions via a list of INPUT and OUTPUT PARAMETERS or ARGUMENTS
[email protected] • ENGR-25_MATLAB_OverView-1.ppt9
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Script & Function Files (m-files) FUNCTIONS (cont.)
• Functions COMMUNICATE with the COMMAND WINDOW and other m-files via a list of input and output variables
• LOCAL variables are variables defined INSIDE the function– They only can be used inside the function in
which they reside.• The number of output parameters used
when a function is called must match the number of outputs that the function is expected to return
[email protected] • ENGR-25_MATLAB_OverView-1.ppt10
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Entering Commands & Expressions MATLAB retains your previous keystrokes. Use the up-arrow (↑) key to scroll back
through the commands. Press the key (↑) once to see the previous
entry, and so on. Use the down-arrow (↓) key to scroll forward. Edit a line using the left (←) & right (→) arrow
keys the Backspace key, and the Delete key. Press the Enter key to execute the command
[email protected] • ENGR-25_MATLAB_OverView-1.ppt11
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Arithmetic Scalar OperationsSymbol Operation MATLAB
^ exponentiation: ab a^b* multiplication: ab a*b/ right division: a/b a/b\ left division: b/a a\b
+ addition: a + b a + b- subtraction: a - b a - b
LEFT-Division A\b read from Right-to-Left as: “b divided by A”
[email protected] • ENGR-25_MATLAB_OverView-1.ppt12
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Math Op Precedence (PEMDAS)Precedence OperationFirst Parentheses, evaluated starting with the innermost pair.
Second Exponentiation, evaluated from left to right.
Third Multiplication and Division with EQUAL precedence, evaluated from left to right.
Fourth Addition and Subtraction with EQUAL precedence, evaluated from left to right.
[email protected] • ENGR-25_MATLAB_OverView-1.ppt13
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Precedence Examples>> 8+3*5ans = 23>> 8 + (3*5)ans = 23>>(8 + 3)*5ans = 55
>> 4^2-12-8/4*2ans = 0
>> 4^2-12-8/(4*2)ans = 3
4
1
[email protected] • ENGR-25_MATLAB_OverView-1.ppt14
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Precedence Examples cont.
>> 3*4^2 + 5ans = 53>>(3*4)^2 + 5ans = 149
>>27^(1/3) + 32^0.2ans = 5>>27^1/3 + 32^0.2ans = 11
3
9
48
144
[email protected] • ENGR-25_MATLAB_OverView-1.ppt15
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
“=“ → Assignment Operator Typing x = 3 ASSIGNS the value 3 to
the variable x. We can then type x = x + 2. This assigns
the value 3 + 2 = 5 to x. But in algebra this implies that 0 = 2.
In algebra we can write x+2 = 20, but in MATLAB we cannot.
In MATLAB the LEFT side of the = operator MUST be a SINGLE variable.
The Right side must be a computable value
[email protected] • ENGR-25_MATLAB_OverView-1.ppt16
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Work Session Commands
Command Descriptionclc Clears the Command window
clear Removes all variables from memoryclear v1 v2 Removes the variables v1 and v2
from memoryexist(‘var’) Determines if a file or variable exists
having the name ‘var’quit Stops MATLAB
[email protected] • ENGR-25_MATLAB_OverView-1.ppt17
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Work Session Commands cont.1
Command Descriptionwho Lists the variables currently in
memory
whosLists the current variables and sizes, and indicates if they have imaginary parts.
: (Colon) Generates an array having regularly spaced elements
, (Comma) Separates elements of an array
; (Semicolon) Suppresses screen printing; also denotes a new row in an array
… (Ellipsis) Continues a line
[email protected] • ENGR-25_MATLAB_OverView-1.ppt18
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
whos on First???
[email protected] • ENGR-25_MATLAB_OverView-1.ppt19
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Special VARS & const’sCommand Description
ans Temporary variable containing the most recent answer
eps Specifies the accuracy of floating point precision
i,j The imaginary unit (-1)Inf Infinity (unbounded magnitude)
NaN Indicates an undefined numerical result; a.k.a., Not a Number
pi The number pi (3.14159...) NaN returns the IEEE arithmetic representation for Not-a-Number
(NaN). These result from operations which have undefined numerical results;. e.g., try Q = 0/0
[email protected] • ENGR-25_MATLAB_OverView-1.ppt20
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
The Complex PlaneIm (i or j)
Re
BjABiA FF or
[email protected] • ENGR-25_MATLAB_OverView-1.ppt21
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Complex-Number Operations The number c1 = 1 – 2i is entered as: c1 = 1 2i or c1 = 1-2j
An Asterisk is NOT needed between i or j and a NUMBER, although it is required with a VARIABLE, such as c2 = 5 - i*c1.
Be careful. The expressions • y = 7/2*i and x = 7/2j
give two DIFFERENT results: • y = (7/2)i = 3.5i• and x = 7/(2j) = –3.5j
[email protected] • ENGR-25_MATLAB_OverView-1.ppt22
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Complex Arithmetic>> Im_Pwr = Z1^3.84Im_Pwr = -1.6858e+004 -2.5886e+004i
>> e_to_Z = exp(Z2)e_to_Z = 6.8518e+006 -2.3163e+007i
>> ln_Z = log(Z1)ln_Z = 2.6922 + 1.0769i
>> Log_Z = log10(Z2)Log_Z = 1.2485 + 0.1242i
[email protected] • ENGR-25_MATLAB_OverView-1.ppt23
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Special VARS & const’s
Command Description
format short Four decimal digits (the default); 13.6745
format long 16 digits; 17.27484029463547
format short e Five digits (four decimals) plus exponent; 6.3792e+03
format long e 16 digits (15 decimals) plus exponent; 6.379243784781294e–04
[email protected] • ENGR-25_MATLAB_OverView-1.ppt24
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Discrete Math FuntionsCommand Description
factor(n) Returns a row vector containing the prime factors of n.
gcd(m,n) Finds the Greatest Common Divisor/Factor of m & n
lcm(m,n) Finds the Least Common Multiple for m & n
factorial(n) Returns the factorial of n; i.e., returns n! = 1*2*3…(n-2)*(n-1)*n
primes(n) Finds all prime numbers less than nisprime(n) Determines if n is a prime number
[email protected] • ENGR-25_MATLAB_OverView-1.ppt25
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Discrete Math Examplesfactor777 = factor(777)
factor777 =
3 7 37
GCF = gcd(1001, 1105)
GCF = 13
F7 = factorial(7)
F7 = 5040
P93 = primes(93)
P93 =
Columns 1 through 12
2 3 5 7 11 13 17 19 23 29 31 37
Columns 13 through 24
41 43 47 53 59 61 67 71 73 79 83 89
[email protected] • ENGR-25_MATLAB_OverView-1.ppt26
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Arrays An ARRAY is an ORDERED SET of
Numbers of with n DIMENSIONS• A regular Number (a SCALAR) is an
Array of Dimension ZERO a VECTOR is a 1-Dim Array a MATRIX
is an ARRAY of Dim 2with specialproperties
[email protected] • ENGR-25_MATLAB_OverView-1.ppt27
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Arrays in MATLAB The numbers 0, 0.1, 0.2, …, 10 can be
assigned to the array variable u by typing • u = [0:0.1:10]
To compute w = 5 sin u for u = 0, 0.1, 0.2, 0.3, 0.4,…, 10, the command session is; • >>u = [0:0.1:10];• >>w = 5*sin(u);
The single line, w = 5*sin(u), computed the formula, w = 5 sin(u), 101 times.
[email protected] • ENGR-25_MATLAB_OverView-1.ppt28
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Array Index >>u(7) ans = 0.6000 >>w(7) ans = 2.8232 Use the LENGTH function to determine how
many values are in an array. >>m = length(w) m = 101
[email protected] • ENGR-25_MATLAB_OverView-1.ppt29
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Polynomial Roots MATLAB has a Way-Cool Polynomial
Root Finder Find the roots of x3 − 7x2 + 40x − 34 = 0
• >>a = [1,-7,40,-34];• >>roots(a)• ans =• 3.0000 + 5.000i• 3.0000 - 5.000i• 1.0000
The roots are x = 1 and x = 3 ± 5i
[email protected] • ENGR-25_MATLAB_OverView-1.ppt30
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
5th Order Polynomial Find the roots of the 5th Order function
0266465359 2345 yyyyyyg>> r5 = [1,-9,35,-65,64,-26];>> roots(r5)ans = 3.0000 + 2.0000i 3.0000 - 2.0000i 1.0000 + 1.0000i 1.0000 - 1.0000i 1.0000
The roots of g(y)• y1,2 = 3 ± 2j• y3,4 = 1 ± j• y5 = 1
[email protected] • ENGR-25_MATLAB_OverView-1.ppt31
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Common Math FunctionsFcn MATLAB Fcn MATLAB
ex exp(x) sin x sin(x)√x sqrt(x) tan x tan(x)
ln x log(x) cos-1 x acos(x)log10 x log10(x) sin-1 x asin(x)
cos x cos(x) tan-1 x atan(x)
Note that MATLAB Trig functions Operate on RADIANS• Convert using Ratio: -rads per 180°
rads 274.1180
73 e.g., ;180
radsradsrad
[email protected] • ENGR-25_MATLAB_OverView-1.ppt32
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
The “d” Trig Comands for Degrees>> T1 = sind(77)
T1 =
0.9744
>> T2 = cosd(19)
T2 =
0.9455
>> T3 = tand(53)
T3 =
1.3270
>> T4 = asind(.497)
T4 =
29.8017
>> T5 = acosd(0.629)
T5 =
51.0236
>> T6 = atand(1.73)
T6 =
59.9706
[email protected] • ENGR-25_MATLAB_OverView-1.ppt33
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Printing From Command Window - 1
Note: MATLAB “Comments” Start with the “%” Sign
TexttoPrint
[email protected] • ENGR-25_MATLAB_OverView-1.ppt34
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Printing From Command Window - 2
SELECTText toPrint
[email protected] • ENGR-25_MATLAB_OverView-1.ppt35
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Printing From Command Window - 3 Send to printer
from Print Dialog Box
Caveat• In a COMMAND
WINDOW session once you Hit Enter () you can NOT Go back to Edit the Text– Can Save your
command sequence as an m-file SCRIPT
[email protected] • ENGR-25_MATLAB_OverView-1.ppt36
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Alternative Cmd Window Printing Perform MATLAB Operation Select Desired Text COPY text to the Windows Paste Buffer Open Text application
• MSWord, WordPad, NotePad, etc.
PASTE the MATLAB Text Into the Text Processor
Print from the Text Processor as Usual
[email protected] • ENGR-25_MATLAB_OverView-1.ppt37
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
DIARY Function to Record Cmnds Keeping a Session Log → The diary Function
• The diary function creates a copy of your session in MATLAB on a disk file, including keyboard input and system responses, but excluding graphics. You can view and edit the resulting text file using any text editor, such as the MATLAB Editor. To create a file on your disk called sept23.out that contains all the functions you enter, as well as output from MATLAB, enter– diary('sept23.out')
• To stop recording the session, use– diary('off')
• To view the file, run• edit('sept23.out')
[email protected] • ENGR-25_MATLAB_OverView-1.ppt38
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Command Execution Hierarchy When you type problem1
1. MATLAB first checks to see if problem1 is a variable and if so, displays its value.
2. If not, MATLAB then checks to see if problem1 is one of its own commands, and executes it if it is.
3. If not, MATLAB then looks in the current directory for a file named problem1.m and executes problem1 if it finds it.
4. If not, MATLAB then searches the directories in its search path, in order, for problem1.m and then executes it if found.
[email protected] • ENGR-25_MATLAB_OverView-1.ppt39
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
System, Directory, File Cmnds Command Description
addpath dirname Adds the directory dirname to the search path.
cd dirname Changes the current directory to dirname
dir Lists all files in the current directory
dir dirname Lists all the files in the directory dirname
path Displays the MATLAB search pathpathtool Starts the Set Path tool
HINT: Consider putting ALL your m-files in ONE Folder/Directory
[email protected] • ENGR-25_MATLAB_OverView-1.ppt40
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Plotting with MATLAB Plot
over 573°
1ln73.1cos
pppq
1ln73.1cos PPPQ
[email protected] • ENGR-25_MATLAB_OverView-1.ppt41
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB Plotting Commands Command Description
plot(x,y) Generates a plot of the array y versus the array x on rectilinear axes
title(’text’) Puts text in a title at the top of the plot
xlabel(’text’) Adds a text label to the horizontal axis (the abscissa).
ylabel(’text’) Adds a text label to the vertical axis (the ordinate).
grid Puts grid lines on the plotgtext(’text’) Enables placement of text with the mouse
[email protected] • ENGR-25_MATLAB_OverView-1.ppt42
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
DeskTop Recoveryto UnScramble the DeskTop
[email protected] • ENGR-25_MATLAB_OverView-1.ppt43
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
DeskTop “Recovery”
[email protected] • ENGR-25_MATLAB_OverView-1.ppt44
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example Problem 1-21 Plot This Function
tetT 2.07ln6 • Where
– T Temperature (°C)– t time (minutes)
• For: 1 t 3
[email protected] • ENGR-25_MATLAB_OverView-1.ppt45
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
All Done for Today
Tutorial onHomeWork
ConstructionNext Time
A VERY IMPORTANT MEETING
[email protected] • ENGR-25_MATLAB_OverView-1.ppt46
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Bruce Mayer, PELicensed Electrical & Mechanical Engineer
Engr/Math/Physics 25
Appendix
[email protected] • ENGR-25_MATLAB_OverView-1.ppt47
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example Demo Session>> %Use MATLAB As Calculator>> 17*19ans = 323
>> 77/19 -4.3ans = -0.2474
>> 64^(1/3) + 32^0.2ans = 6
>> (7+11)*2.5ans = 45
>> L = 14.4L = 14.4000
>> W = 13.3W = 13.3000
>> Area = L*WArea = 191.5200
[email protected] • ENGR-25_MATLAB_OverView-1.ppt48
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 1-21 Command Script From the Command Window
>> t = [1:0.02:3];>> T = 6*log(t) - 7*exp(0.2*t);>> plot(t,T), xlabel('time (min)'),ylabel('Temperature (°C)'), title('Problem 1-21'), grid
[email protected] • ENGR-25_MATLAB_OverView-1.ppt49
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 1-22 Plot
[email protected] • ENGR-25_MATLAB_OverView-1.ppt50
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3-9
-8.5
-8
-7.5
-7
-6.5
-6
time (min)
Tem
pera
ture
(°C
)
Problem 1-22
[email protected] • ENGR-25_MATLAB_OverView-1.ppt51
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
System, Directory, File Cmnds Command Description
pwd Displays the current directory
cd dirname Changes the current directory to dirname
rmpath dirname Removes the directory dirname from the search path.
whatLists the MATLAB-specific files found in the current working directory. Most data files and other non-MATLAB files are not listed. Use dir to get a list of all files
what dirname Lists the MATLAB-specific files in directory dirname
[email protected] • ENGR-25_MATLAB_OverView-1.ppt52
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods