390 likes | 578 Views
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
E N D
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
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
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= pr2h. 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 Results v = [20:10:70]; d = [46, 75, 128, 201, 292, 385]; plot(v, d); • Mathematical Formulas x=[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 vector 16 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) = *
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 = *