Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

39
Lecture 1: Matlab Universe Tom Rebold ENGR 196.3

Transcript of Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Page 1: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Lecture 1: Matlab Universe

Tom Rebold

ENGR 196.3

Page 2: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Course Overview

Page 3: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

The Way the Class Works

I lecture for 15 – 20 minutes You do lab for 30 – 40 minutes Labs link to extra Problems online for fast

students Everyone turn in a solution to the last

problem they solve today HOMEWORK: Bring in 3 Math problems to

solve…medium, hard, impossible We’ll have independent study time

Page 4: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

To Buy Matlab

Student Version, $100 Can purchase, download online

Link from ENGR196.3 class webpage Bookstore does not stock MATLAB retails for $1600, so it’s a pretty

good deal

Page 5: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Why MATLAB Compared to other choices:

C++, Fortran, Java Excel, MathCad, Mathematica, Labview

Matlab is a Very High Level Language Designed for complex numerical calculations Vast array of Toolboxes for different specialties Excellent visualization tools Symbolic math somewhat awkward Simulink for modelling dynamic systems

Page 6: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Today’s Agenda

MATLAB Overview Working in MATLAB’s Environment Simple calculations, variables Vectors, Matrices, Plotting Applications—Problem Solving

Systems of equations Analyzing a data file

3D Plotting

Page 7: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

MA

TL

AB

’s EN

VIR

ON

ME

NT

Page 8: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Download week1.zip

Follow instructions in Lab1 View toolbox demos Experiment with workspace configuration

Page 9: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Numeric Data

At it’s most basic level, Matlab can be used as a simple calculator, by typing in an arithmetic expression and hitting enter. For example, at the command prompt, type:

>> 8/10

>>4 * 3

>>8/10 + 4*3

>>9^2 (what does the ^ operator do? )

Page 10: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Arithmetic rules of precedence

>> 8 + 3*5

>> 8 + (3*5)

>> (8 + 3) * 5

>> 4^2 – 12

>> 8/4*2

>> 8/(4*2)

>> 3*4^2

>> (3*4)^2

>> 27^(1/3)

>> 27^1/3

Page 11: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

built in functions

Matlab has hundreds of built in functions to do more complicated math

sqrt(9) log10(1000) log(10) pi cos(pi) i exp(i*pi)

Page 12: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Variables

Usually we need to hang on to the result of a calculation

We need a way to name memory for storage Variable--name of a place in memory where

information is stored r = 8/10 r s=20*r score = 4 * r + s z = sqrt(1000) z = sqrt(s)

Page 13: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Assignment Operator

= means “gets” Translation:

MATLAB: r = 8/10

ENGLISH: r “gets” the value 8/10 OK in Math

x + 2 = 20 NOT OK IN MATLAB !!

(only variable on Left Side)

Page 14: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Expressing Math in MATLAB

2 yx _______________

x-y

3x _______________2y

Page 15: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Saving Work in Matlab Script (.m) files You’ll want to build up complex calculations

slowly Try, correct, try again, improve, etc .m Files store your calculations Can be edited in Matlab Can be re-executed by typing the file name

Page 16: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Example .m file Volume of a Cylinder. The volume of a cylinder

is V= r2h. A particular cylinder is 15 meters high with a radius of 8 meters. We want to construct another cylinder tank with a volume 20% greater, but with the same height. How large must its radius be?

The session follows: r = 8; h = 15; V = pi*r^2*h V = V + 0.2*V adds 20% to V r = sqrt(V/ (pi * h))

Put this in a file calledcyl_volume.m to save retyping

Page 17: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Finish Section IV

If you finish early, please follow the link to practice problems online

Page 18: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Vectors

Matlab has a very concise language for dealing with vectors (arrays of data) scalar: x = 3 vector: x = [1 0 0]

A vector is a series of data grouped together Row Vectors and Column Vectors Transpose operator Functions and Arithmetic with vectors Colon operator Multiplication—cell by cell vs ‘dot product’

Page 19: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Finish Section V

If you finish early, please follow the link to practice problems online

Page 20: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Basic Plotting

Experimental Resultsv = [20:10:70];

d = [46, 75, 128, 201, 292, 385];

plot(v, d);

Mathematical Formulasx=[0:0.01:2];

y=exp(-3*x).*sin(8*pi*x); .* is needed here

plot(x,y);

Both involve using plot( ) on vectors

Page 21: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Finish Section VI

Play with multiple plots, linetypes, etc

If you finish early, please follow the link to practice problems online

Page 22: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

VII Application: Polynomial Math We can represent polynomials by vectors of

coefficients, for example: x3 – 9x2 + 2x + 48 represented by [1 -9 2 48]

Matlab provides commands to calculate Roots Multiplication and division of polynomials

Example on structural resonance online More problems online

Page 23: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

VIII Matrices

A matrix is a 2 dimensional vector16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Useful tools: Transpose Cell address Merging and extracting vectors multiplication

Page 24: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

IX Application: Systems of Equations

A common occurrence, need to solve a system of simultaneous equations:

3x + 4y + 5z = 32

21x + 5y + 2z = 20

x – 2y + 10z = 120 A solution is a value of x, y, and z that satisfies all

3 equations In general, these 3 equations could have

1 solution, many solutions, or NO solutions

Page 25: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Using Matlab to Solve Simultaneous Equations Set up the equation in matrix/vector form:

A = [3 4 5; 21 5 2; 1 -2 10] u = [ x y z]’ b = [ 32 20 120]’In other words, A u = b (this is linear algebra)

3 4 5

21 5 2

1 -2 10

x

y

z*

32

20

120=

Page 26: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

The solution uses matrix inverse

If you multiply both sides by 1/A you get

u = 1/A * b

In the case of matrices, order of operation is critical (WRONG: u = b/A )

SO we have “Left division” u = A \ b

(recommended approach) OR use inv( ) function: u = inv(A) * b

Page 27: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

The solution

>> u = A\b

u =

1.4497 ( value of x)

-6.3249 ( value of y)

10.5901 ( value of z)

You can plug these values in the original equation test = A * u and see if you get b

Page 28: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Caution with Systems of Eqs

Sometimes, Matrix A does not have an inverse:

This means the 3 equations are not really independent and there is no single solution (there may be an infinite # of solns)

Take determinant det(A) if 0, it’s singular

1 -1 0

1 0 -1

0 1 -1

x

y

z*

32

10

22=

Page 29: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Application:Analyze DatafromA RealScienceProject

Page 30: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

http://geodynamics.jpl.nasa.gov/antarctica/mbl.html

Page 31: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 32: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 33: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 34: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 35: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 36: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.

Data Files

Page 37: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 38: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Page 39: Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.