chapter 2 matlab fundamentals. matlab matrix laboratory

48
Chapter 2 Chapter 2 MATLAB MATLAB Fundamentals Fundamentals

Post on 21-Dec-2015

299 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Chapter 2Chapter 2

MATLAB MATLAB FundamentalsFundamentals

Page 2: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLABMATLAB

MatMatrix rix LabLaboratoryoratory

Page 3: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Problem-Solving MethodologyProblem-Solving Methodology

State the problem clearly Describe the Input/Output (I/O) Work the problem by hand Algorithm - Numerical Method Develop a MATLAB Solution Debugging and Testing Documentation

Page 4: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Why MATLAB?Why MATLAB? Industry standard software application Wealth of built-in functions and libraries Toolboxes (add-on software modules) – image and

signal processing, control systems design, fuzzy logic, etc.

Has own structured programming language Ease of application and testing (pre- and post-

processing without lots of programming and formatting)

Platform independent

Page 5: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLABMATLAB MATLAB is a numerical analysis system

Can write “programs”, but they are not formally compiled

Should still use structured programming

Should still use comments

Comments are indicated by “%” at the beginning of the line

Page 6: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Comments!!!Comments!!!

Program DocumentationProgram Documentation

You must include comments in the computer programs you turn in -- otherwise we will have great difficulty knowing what you are doing

Page 7: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

For example, here is some cryptic code without comment

for j=0:2

k=(2-j)*(1+3*j)/2

end

What does it do?What does it do?

Put a comment inPut a comment in

% turns (0,1,2) into (1,2,0)

Page 8: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLAB WindowsMATLAB Windows Command Window

-- enter commands and data

-- print results Graphics Window

-- display plots and graphs Edit Window

-- create and modify m-files

Page 9: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Managing MATLAB EnvironmentManaging MATLAB Environment who or whos -- See the current runtime environment clear -- remove all variables from memory clc -- clear the command window clf -- clear the graphics window save -- save the workspace environment load -- restore workspace from a disk file abort -- CTRL-C help -- help “command”

Really good “help” command

Page 10: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLAB SyntaxMATLAB Syntax No complicated rules

Perhaps the most important thing to remember is semicolons (;) at the end of a line to suppress output

Type “more on” to keep text from leaving screen too fast

diary “filename” saves a text record of session

diary off turns it off

Page 11: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLABMATLAB MATLAB’s basic component is a Vector or Matrix

Even single value variables (Scalars)

All operations are optimized for vector use

Loops run slower in MATLAB than in Fortran (not a vector operation)

“size” command gives size of the matrix

Page 12: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Scalars, Vectors, MatricesScalars, Vectors, Matrices MATLAB treat variables as “matrices” Matrix (m n) - a set of numbers arranged in rows (m) and columns

(n) Scalar: 1 1 matrix Row Vector: 1 n matrix Column Vector: m 1 matrix

227150

592342

5231

217

32

025

21732025 275

..

..D

.

.

.

'BC

...B.A

Page 13: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

>> pians = 3.1416

>> size(pi)ans = 1 1

>> a=[1 2 3; 4 5 6]a = 1 2 3 4 5 6

>> size(a)ans = 2 3

a=14163.pi

654

321a

Page 14: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Complex variablesComplex variables MATLAB handles complex arithmetic automatically No need to compute real and imaginary parts

separately The unit imaginary number i = is preassigned1

» x=5+2*ix = 5.0000 + 2.0000i» y=5*x+3y = 28.0000 +10.0000i

Page 15: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

» x=3+5-0.2x = 7.8000» y=3*x^2+5y = 187.5200» z=x*sqrt(y)z = 106.8116» A=[1 2 3; 4 5 6]A = 1 2 3 4 5 6» b=[3;2;5]b = 3 2 5» C=A*bC = 22 52

» who

Your variables are:

A b y C x z

» whos Name Size Bytes Class

A 2x3 48 double array C 2x1 16 double array b 3x1 24 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array

» save

Saving to: matlab.mat

» save matrix1

MATLAB ExampleMATLAB Example

default filename

filename “matrix1”

Page 16: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Data typesData types

All numbers are double precision

Text is stored as arrays of characters

You don’t have to declare the type of data (defined when running)

MATLAB is case-sensitive!!!MATLAB is case-sensitive!!!

Page 17: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Variable NamesVariable Names Usually, the name is identified with the problem Variable names may consist of up to 31 characters Variable names may be alphabetic, digits, and the

underscore character ( _ ) Variable names must start with a letter

ABC, A1, C56, CVEN_302

day, year, iteration, max

time, velocity, distance, area, density, pressure

Time, TIME, time (case sensitive!!)(case sensitive!!)

Page 18: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Initializing VariablesInitializing Variables Explicitly list the values reads from a data file uses the colon (:) operator reads from the keyboard

A = [1; 3; 5; 10]; B = [1 3 5; -6 4 -1]

C = [2 3 5 1; 0 1 … (continuation)

1 -2; 3 5 1 -3]

E = [A; 1; A]; F = [C(2,3); A]

Page 19: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Matrix ConcatenationMatrix Concatenation 497y ; 321x

497321yxz

321497

497321 xy ;y xv

497

321y ;x u

Page 20: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

41

12

10

52

F

410

123

101

521

C

Colon OperatorColon Operator Creating new matrices from an existing matrix

C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]

F = C(:, 2:3) = [2,5; 0,1; 2,-1; 1,4]

Page 21: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

123

101E

410

123

101

521

C

Colon OperatorColon Operator Creating new matrices from an existing matrix

C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]

E = C(2:3,:) = [-1 0 1; 3 2 -1]

Page 22: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Colon OperatorColon Operator Creating new matrices from an existing matrix

C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]

G = C(3:4,1:2) = [3,2; 0,1]

10

23G

410

123

101

521

C

Page 23: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Colon OperatorColon Operator Variable_name = a:step:b

time = 0.0:0.5:2.5

time = [0.0, 0.5, 1.0, 1.5, 2.0, 2.5]

Negative increment

values = 10:-1:2

values = [10, 9, 8, 7, 6, 5, 4, 3, 2]

Page 24: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

linspace Function linspace Function linspace(x1, x2) gives 100 evenly spaced values

between x1 and x2

x = linspace(x1,x2) linspace(a,b,n) generate n equally spaced points

between a and b

x = linspace(a,b,n)

» linspace(0,2,11)

ans =

Columns 1 through 7

0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000

Columns 8 through 11

1.4000 1.6000 1.8000 2.0000

Page 25: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

logspace Functionlogspace Function logspace(a,b,n) generates a logarithmically

equally spaced row vector

x = logspace(a,b,n) logspace(a,b) generates 50 logarithmically

equally spaced points

x = logspace(a,b)

» logspace(-4,2,7)

ans =

0.0001 0.0010 0.0100 0.1000 1.0000 10.0000 100.0000

Page 26: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Special MatricesSpecial Matrices

1111

1111ones(2,4)

111

111

111

)3(ones

00

00

00

zeros(3,2)

100

010

001

)3(eye

Page 27: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

bababa

baa

bba

bababaab

aa

baab

; nsubtractio and Addition

\ \ division Left\

/ ;* ; division and tionMultiplica/ *

Negation

^ tionExponentia^

Form MATLABOperation Symbol

Scalar Arithmetic OperationsScalar Arithmetic Operations

Example: x = (a + b*c)/d^2

count = count + 1

(Matrix inverse)

In order of priority

Page 28: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Order of Precedence of Order of Precedence of Arithmetic OperationsArithmetic Operations

1. Parentheses, starting with the innermost pair

2. Exponentiation, from left to right

3. Multiplication and division with equal precedence, from left to right

4. Addition and subtraction with equal precedence, from left to right

Examples: factor = 1 + b/v + c/v^2

slope = (y2 - y1)/(x2 - x1)

loss = f * length/dia * (1/2 * rho * v^2)

func = 1 + 0.5*(3*x^4 + (x + 2/x)^2)

Page 29: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Order of Precedence of Order of Precedence of Arithmetic OperationsArithmetic Operations

The priority order can be overridden with parentheses

» y = -7.3^2

y =

-53.2900

» y=(-7.3)^2

y =

53.2900

» a=3; b=5; c=2;

» s1 = a-b*c

s1 =

-7

» s2=(a-b)*c

s2 =

-4

Exponentiation has higher priority than negation

Multiplication has higher priority than subtraction

Page 30: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Array OperationsArray Operations An array operation is performed

element-by-element

B(5);* A(5) C(5)B(4);* A(4) C(4)B(3);* A(3) C(3)B(2);* A(2) C(2)B(1);* A(1) C(1)

MATLAB: C = A.*B;

Page 31: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

] ,[]^ ,^[] ,[].^ ,[

] ,[]^ ,^[] ,[.^

] ,[]^ ,^[].^ ,[.^tionexponentia Array.^

].,.[]\ ,\[] ,[\]. ,[division left Array\.

].,.[]/ ,/[] ,/[]. ,[division right Array./

] ,[] ,[*]. ,[tionmultiplica Array*.

] ,[] ,[] ,[nsubtractio Array-

] ,[] ,[] ,[addition Array

] ,[] ,[nsubtractio array-Scalar-

] ,[] ,[addition array-Scalar

ExampleFormOperationSymbol

812543254235

24395323523

8643234324BA

71430667257835873A.\B

4001375057835873A./B

1863263A.*B

343864BA

9123864BA

32638bA

97364bA

Element-by-Element OperationsElement-by-Element Operations

Page 32: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

But a*b gives an error (undefined) because dimensions are incorrect. Need to use .*

Vector and Matrix operationsVector and Matrix operations

11

7

3

ba

6

4

2

b

5

3

1

a

30

12

2

6*5

4*3

2*1

b.*a

Page 33: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Vectorized Matrix OperationsVectorized Matrix Operations

9243813B).^3(F

15122783.^AE

5.06.175.02B/.AD

240122B.*AC

2541B

1832A

Page 34: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Array Operations for Array Operations for m m n Matrices n Matrices

510515

2015105

2015105

5.*AB

1213

4321

4321

1 - 21 3-4;:-1:1 -4;:1A

18127

642781

642781

3.^AC

Page 35: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Matrix TransposeMatrix Transpose

4)2(3)1)(2()3)(4(

2-

1

3

324'y*x

639

426

8412

213

3

2

4

y'*x

2-

1

3

y' ;

3

2

4

'x

213y ; 324x

Page 36: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Built-in FunctionsBuilt-in Functions All the standard operators +, , *, /, ^

Sqrt( ), abs( ), sin( ), cos( ), exp( ), tanh( ), acos( ), log( ), log10( ), etc.

These operators are vectorized

exp(4)

exp(5)

exp(3)

exp(a) ;

sin(4)

sin(5)

sin(3)

)asin( ;

4

5

3

a

Page 37: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Built-in FunctionsBuilt-in Functions Certain functions, such as exponential and square

root, have matrix definition also Use “help expm” and “help sqrtm” for details

>> A = [1 3 5; 2 4 6; -3 2 -1]A = 1 3 5 2 4 6 -3 2 -1>> B = sqrt(A)B = 1.0000 1.7321 2.2361 1.4142 2.0000 2.4495 0 + 1.7321i 1.4142 0 + 1.0000i>> C = sqrtm(A)C = 2.1045 + 0.0000i 0.1536 - 0.0000i 1.8023 + 0.0000i 1.7141 - 0.0000i 1.1473 + 0.0000i 1.7446 + 0.0000i -2.0484 + 0.0000i 1.3874 + 0.0000i 0.5210 - 0.0000i

(element by element)

(C*C = A)

Page 38: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

MATLAB GraphicsMATLAB Graphics One of the best things about MATLAB is

interactive graphics “plot” is the one you will be using most often Many other 3D plotting functions -- plot3,

mesh, surfc, etc. Use “help plot” for plotting options To get a new figure, use “figure” logarithmic plots available using semilogx,

semilogy and loglog

Page 39: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

plot(x,y) defaults to a blue line

plot(x,y,’ro’) uses red circles

plot(x,y,’m*’) uses magenta asterisks

If you want to put two plots on the same graph, use “hold on”

plot(a,b,’r:’) (red dotted line)hold onplot(a,c,’ko’) (black circles)

Plotting CommandsPlotting Commands

Page 40: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Free-Falling Bungee JumperFree-Falling Bungee Jumper Use built-in functions sqrt & tanh

>> g = 9.81; m = 75.2; cd = 0.24;

>> t = 0:1:20t =

Columns 1 through 15

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Columns 16 through 21

15 16 17 18 19 20

>> v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t)v =

Columns 1 through 9

0 9.7089 18.8400 26.9454 33.7794 39.2956 43.5937 46.8514 49.2692

Columns 10 through 18

51.0358 52.3119 53.2262 53.8772 54.3389 54.6653 54.8956 55.0579 55.1720

Columns 19 through 21

55.2523 55.3087 55.3484

Page 41: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Plot the velocity versus time curve>> plot(t,v); grid on

>> title('Free Falling Bungee Jumper')

>> xlabel('time t (second)'); ylabel('velocity v (m/s)')

>> print –djpeg bungee.jpg

How to change line thickness, line color, font size, symbols,

marker size, etc.?

Page 42: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

Color, Symbols, and Line TypesColor, Symbols, and Line Types Use “help plot” to find available Specifiers

b blue . point - solid

g green o circle : dotted

r red x x-mark -. dashdot

c cyan + plus -- dashed

m magenta * star

y yellow s square

k black d diamond

v triangle (down)

^ triangle (up)

< triangle (left)

> triangle (right)

p pentagram

h hexagram

Colors Symbols Line Types

Page 43: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

» x=0:0.1:5;» y=2*x.^3-12*x.^2+8*x-6;» H=plot(x,y,'b',x,y,'r*');» set(H,'LineWidth',3,'MarkerSize',12)» xlabel('x'); ylabel('y');» title('f(x)=2x^3-12x^2+8x-6');» print -djpeg075 poly.jpg

element-by-element operations x.^n

Adjust line thickness, font size, marker size, etc.

Page 44: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

» x=0:0.1:10;» y=sin(2.*pi*x)+cos(pi*x);» H1=plot(x,y,'m'); set(H1,'LineWidth',3); hold on;» H2=plot(x,y,'bO'); set(H2,'LineWidth',3,'MarkerSize',10); hold off;» xlabel('x'); ylabel('y');» title('y = sin(2\pix)+cos(\pix)');» print -djpeg075 function.jpg

Page 45: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

» x=0:0.1:3; y1=exp(-x); y2=sqrt(x);» H=plot(x,y1,'b-',x,y2,'r--');» set(H,'LineWidth',3)» xlabel('x'); ylabel('y'); title('MATLAB Plots');» H1=text(1.8,0.2,'exp(-x)'); set(H1,'FontSize',18);» H2=text(1.8,1.3,'sqrt(x)'); set(H2,'FontSize',18);

Page 46: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

plot (x, y) plot(x1, y1, x2, y2)

plot (x, y, ‘color symbol line style’)

» x = linspace(0, 2*pi);» y = sin (2.*x);» z = cos (0.5*x);» plot (x, y)» plot (x, y, x, z)» figure (2)» plot (x, y, 'r o -'); grid on» hold on» plot (x, z, 'b * :')

(red, circle, solid line)

(blue, star, dotted line)

figure or figure (#) : open a figure

Plotting CommandsPlotting Commands

Page 47: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

» xlabel (Time)» ylabel (Temperature)» title (Temperature Record : 1900 - 2000)» text (17, 120, Record High )» text (85, -40, Record Low )» axis ([0 100 -50 140])» hold off

xlabel ( label ) ylabel ( label )title ( title of the plot )text ( x_location, y_location, text )axis ( [ x_min x_max y_min y_max ] )

- text string

Graphics CommandsGraphics Commands Axis, Labels, and Title

Page 48: Chapter 2 MATLAB Fundamentals. MATLAB Matrix Laboratory

CVEN 302-501CVEN 302-501

Homework No. 1Homework No. 1

Chapter 2 Problems 2.2 (15), 2.4 (15), 2.7 (20),

2.10 (20), 2.11 (20).

Due Friday. 09/05/2008 at the Due Friday. 09/05/2008 at the beginning of the periodbeginning of the period