Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
-
Upload
theodore-daniels -
Category
Documents
-
view
227 -
download
1
Transcript of Lecture 1: Matlab Universe Tom Rebold ENGR 196.3.
Lecture 1: Matlab Universe
Tom Rebold
ENGR 196.3
Course Overview
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
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
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
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
MA
TL
AB
’s EN
VIR
ON
ME
NT
Download week1.zip
Follow instructions in Lab1 View toolbox demos Experiment with workspace configuration
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? )
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
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)
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)
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)
Expressing Math in MATLAB
2 yx _______________
x-y
3x _______________2y
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
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
Finish Section IV
If you finish early, please follow the link to practice problems online
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’
Finish Section V
If you finish early, please follow the link to practice problems online
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
Finish Section VI
Play with multiple plots, linetypes, etc
If you finish early, please follow the link to practice problems online
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
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
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
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=
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
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
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=
Application:Analyze DatafromA RealScienceProject
http://geodynamics.jpl.nasa.gov/antarctica/mbl.html
Data Files