Download presentation
Presentation is loading. Please wait.
Published byGinger Roberts Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.