Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 12: M/O/F/ for Engineering Applications B Burlingame 27 April 2016.

Similar presentations


Presentation on theme: "Lecture 12: M/O/F/ for Engineering Applications B Burlingame 27 April 2016."— Presentation transcript:

1 Lecture 12: M/O/F/ for Engineering Applications B Burlingame 27 April 2016

2 Announcements Rest of semester  Homework Remaining homework can be done in pairs, turn in one paper with both names Homework 6 posted – due 5/4 Homework 7 posted next week – due 5/11 Homework 8, final review – due with final Midterm grades in process  System failure, having to regrade No office hours, tonight

3 3 What and Why? Data  Pieces of information we deal with in the problem solving process Computers & Software  Tools we use to help automate finding these solutions Matlab Excel C

4 Matlab and Octave M/O/F are ‘high-level’ languages  They abstract away the nitty-gritty details Numerical calculation  Oriented toward engineering, mathematical, and scientific computing Matlab (Matrix Laboratory)  Particularly good at handling lists of numbers (called arrays) Powerful graphics and analysis tools  Controls, signal processing, data analysis, and other specialized ‘toolboxes’ are available Widely used in industry Matlab is commercial software (a student version is available) http://www.mathworks.com/ http://www.mathworks.com/ Octave and FreeMat are open source and free: http://www.gnu.org/software/octave/ (main page) http://freemat.sourceforge.net/index.html (main page) http://www.gnu.org/software/octave/ http://freemat.sourceforge.net/index.html

5 MatLab - Current Layout Command Window Interactive ‘scratch pad’ Workspace Workspace: lists variables Directory: files in current dir Workspace/ Current Directory Window Command History Window

6 M/O/F Basics - 1 Fundamental element: the array  even integers are stored as 1x1 array of double floating point value by default How many bytes?  See Workspace Window Useful commands (see documentation for more details!)  who (information about what is in memory)  whos (more detailed information about what is in memory)  clc (clears the command window. In QtOctave, View  Clear Terminal)  clear (clears all user defined variables)  help name (provides information on command name)

7 Octave Command Line Enter commands at the prompt

8 QtOctave GUI Enter commands at the prompt

9 Octave as a ‘scratch pad’ dynamically typed

10 M/O/F Basics - 2 Script files (.m files)  Text files containing M/O/F statements Type in a text editor (M/O/F) or use M-file editor in Matlab (File/New/M-File or Ctrl-n)  Comments Matlab: % Octave: % or # FreeMat: %  Example: look at cool_plot.m Verify directory containing cool_plot.m is in the file path  MATLAB: File | Set Path… | select folder  Octave: addpath(‘dir_path’) find from Windows Explorer

11 Script File Example: cool_plot.m

12 Octave Script File Example cool_plot.m needs to be in the ‘load path’ Octave: addpath(dir-path) Example (yours may be different): addpath('C:\Octave\Octave_code') Matlab: File | Set Path…

13 Matlab Script File Example

14 MatLab Numeric Data Types NameBitsRange double64-1.797e308 – 1.798e308 -2.23e-308 - 2.23e-308 single32-3.4e38 – 3.4 e38 int[8,16,32,64]8, 16, 32, 64(-2 (n-1) + 1) – (2 (n-1) -1) uint[8,16,32,64]8, 16, 32, 640 – (2 n – 1)

15 MatLab Variable Names Begins with a letter Followed by letters, numbers, and an underscore _ Case sensitive Cannot be a MatLab reserved word Note: similar to C ValidInvalid area123x area_of_a_circlearea of a circle NumberOfCountriesIf (if is a reserved word) x123xHowMany!

16 M/O/F Basics - 3 Array creation  A = [1 2 3; 4,5,6; 7 8 9] size(A) Indexing elements  A(1,2) Adding elements  A(4,2) = 13  A(4,2) = 13; Separate elements by spaces or commas, and rows by semicolon or carriage return Index by enclosing indices in ( ) What does this do?

17 M/O/F Basics - 4 Vectors ( just 1xn or nx1 arrays)  B=[sin(pi/4), -2^3, size(A,1)] Vectors using the colon operator  C = 1 : 0.25 : 2  D = 0 : 5 Linspace  E = linspace(0,5,3 ) Logspace  F = logspace(1,3,5) base : increment : limit start : end : n For n elements linearly spaced between start and end start : end : n For n elements logarithmically spaced between start and end 1 0.25 2 For an increment of 1: base : limit Format: Note: limit is reached only if (limit-base)/increment is an integer

18 M/O/F Basics - 5 Manipulating arrays  Add a row A = [ A ; [ 10 11 12 ] ]  Extract a sub-array G = A(1:3, 1:2) Colon operator by itself means, “all the elements”  Can apply to the dimensions of the arrays to access all the elements of a row or column  Can apply to the entire array to get all the elements as a column vector  What order will they come out?  Examples H = [1:4; linspace(10,40,4); 400:-100:100] I = H( [1 2], : ) J = H( : ) What will this produce? Assuming A = [ 1 2 3; 4,5,6 ; 7 8 9 ] What does this do? Matlab stores array elements in column- major order.

19 M/O/F Basics - 6 Special matrices  zeros, ones, eye K=zeros(3) L=ones(4) M=eye(3)

20 M/O/F Basics - 7 Matrix operations  Arithmetic just like with scalars! (But need to take care that dimensions agree) N=L*7 O=N+eye(4) P=B*E P=B*E’ Q=A+B Q=B+E [1 2]*[3 ; 4] What does the ‘ do? A=[1 2 3; 4,5,6; 7 8 9] B=[sin(pi/4), -2^3, size(A,1)] E=linspace(0,5,3) L=ones(4)

21 M/O/F Basics - 8 Matrix operations, cont.  Matrix division R1=10k R2=R3=5k V=10V Matrix solution If we had iR = V instead, we’d use ‘right’ division: ( i = R / V ) roughly the same as: i = VR -1 R2 R1 R3 +V i1 i2 i3 R = [1 -1 -1; 0 0 10e3; 0 10e3 0]; V = [0 10 10]’; I = R \ V i 1 - i 2 - i 3 = 0 R 1 i 3 = V (R 2 +R 3 ) i 2 = V

22 M/O/F Basics - 9 Matrix operations, cont.  Element-by-element operations use. (dot) and the operator (other than addition/subtraction) dot product of two vectors Note!! period-asterisk means element-by-element multiplication

23 M/O/F Basics - 10 Functions  Like script M-files, but several differences: first line must be of the form: function [output args] = function_name(input args) variables generated in the function are local to the function, whereas for script files (.m files), variables are global the file must be named, ‘function_name.m’  Make sure you add comments at the start that describe what the function does  Example: root-mean-square function, rms1.m keyword Name that you assign

24 M/O/F Basics - 10.1 Functions, cont.  Example: root-mean-square function, cont. Pseudocode:  square each element of x  sum the squares  divide by N  take the square root Expression to square each element in vector x  xs = x.^2 Sum the squares  sums = sum(xs) Divide by N  N = length(x)  ms = sums/N Take the square root  rms = sqrt(ms) Before you write the function, make sure the name you propose is not already used! help fn_name

25 M/O/F Basics - 10.2 Functions, cont.  Example: root-mean-square function, cont. function [y] = rms(v) % rms(v) root mean square of the elements of the column vector v % Function rms(v) returns the root mean square of the elements % of the column vector, v. If v is a matrix, then rms(v) returns % a row vector such that each element is the root mean square %of the elements in the corresponding column of v. vs = v.^2; % what does this line do? Also note semicolon. s = size(v); % what does this line do? y = sqrt(sum(vs,1)/s(1)); % what is s(1)? Let v=sin([0: 0.0001*pi: 2*pi]’), one period of a sine wave. The RMS value of a sine wave is its amplitude*1/sqrt(2) Does rms() work with a row vector? How about a matrix? H1 comment line (used in lookfor) Comments that will be displayed by help command

26 M/O/F Basics - 10.3 Functions, cont.  Make rms function more robust to work with row or column vector or matrix with column vectors of data  Pseudocode: Test for size of v  if > 2, print error message  else  if row vector  transpose  calculate rms  See rms3.m

27 Vector Dot Product Example X Y Find the X and Y components of the vector, V ivv x ˆ   Back

28 References Matlab. (2009, November 6). In Wikipedia, the free encyclopedia. Retrieved November 6, 2009, from http://en.wikipedia.org/wiki/Matlab http://en.wikipedia.org/wiki/Matlab  Matlab tutorials: http://www.mathworks.com/academia/student_center/tutorials/launchpad.html http://www.mathworks.com/academia/student_center/tutorials/launchpad.html GNU Octave. (2009, October 31). In Wikipedia, the free encyclopedia. Retrieved November 6, 2009, from http://en.wikipedia.org/wiki/GNU_Octave http://en.wikipedia.org/wiki/GNU_Octave  Octave main page: http://www.gnu.org/software/octave/ (http://octave.sourceforge.net/ access to pre-built installers)http://www.gnu.org/software/octave/http://octave.sourceforge.net/  Octave tutorials: http://homepages.nyu.edu/~kpl2/dsts6/octaveTutorial.html, http://smilodon.berkeley.edu/octavetut.pdf http://homepages.nyu.edu/~kpl2/dsts6/octaveTutorial.html http://smilodon.berkeley.edu/octavetut.pdf FreeMat. http://freemat.sourceforge.net/index.htmlhttp://freemat.sourceforge.net/index.html ftp://www.chabotcollege.edu/faculty/bmayer/ChabotEngineeringCour ses/ENGR-25.htm ftp://www.chabotcollege.edu/faculty/bmayer/ChabotEngineeringCour ses/ENGR-25.htm


Download ppt "Lecture 12: M/O/F/ for Engineering Applications B Burlingame 27 April 2016."

Similar presentations


Ads by Google