1 / 30

M/O/F for Engineering Applications

Learn how to use Matlab/Octave/FreeMat for engineering applications, including basic operations, script files, and resources for more information.

ocarlson
Download Presentation

M/O/F for Engineering Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 13: M/O/F/ for Engineering Applications - Part 1 BJ Furman 26NOV2012

  2. The Plan for Today • Matlab/Octave/FreeMat (M/O/F) for engineering applications • Overview of M/O/F • Matlab/FreeMat environment • Octave command line • Basic operations • Script files • Resources for more information

  3. Learning Objectives • Explain what M/O/F are • Navigate the Matlab user interface and Octave command line • Use M/O/F as a scratch pad • Create script files to execute a sequence of commands

  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 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/ • Octave and FreeMat are open source and free: http://www.gnu.org/software/octave/ (main page)http://freemat.sourceforge.net/index.html (main page) Key point!

  5. Matlab (ver. 6.5) Environment (GUI)Default Window Layout Workspace/Current Directory Window Workspace: lists variables Directory: files in current dir Command Window Interactive ‘scratch pad’ Command History Window

  6. Octave Command Line Enter commands at the prompt

  7. QtOctave GUI Enter commands at the prompt

  8. Matlab as a ‘scratch pad’ Info on variables in the workspace Variables are dynamically typed

  9. Octave as a ‘scratch pad’ dynamically typed

  10. M/O/F Basics - 1 • Fundamental element: the array • even scalars are stored as 1x1 array of double floating point value • 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)

  11. 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 useM-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

  12. Script File Example: cool_plot.m

  13. 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…

  14. Matlab Script File Example

  15. Ch Example See: chap. 23 of The Ch Language User's Guide and chap. 2 of The Ch Language Environment Reference

  16. Excel Example • Data needs to be equally spaced • Select z-data values • Insert | Other Charts | Surface • Use Chart Tools | Layout tab tocontrol display

  17. 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 What does this do? Index by enclosing indices in ( ) Which element does this choose? Contrast with C. What does this do? Contrast with C. The semicolon at the end suppresses the output

  18. 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) Note: limit is reached only if (limit-base)/increment is an integer 1 0.25 2 Format: base : increment : limit For an increment of 1: base : limit start : end : n For n elements linearly spaced between start and end Format: Format: start : end : n For n elements logarithmically spaced between start and end

  19. 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( : ) Assuming A = [ 1 2 3; 4,5,6 ; 7 8 9 ] What does this do? Matlab stores array elements in column-major order. What will this produce?

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

  21. 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] 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) What does the ‘ do?

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

  23. 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

  24. 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 Name that you assign keyword

  25. 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

  26. 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)? H1 comment line (used in lookfor) Comments that will be displayed by help command Let v=sin([0: 0.0001*pi: 2*pi]’), one period of a sine wave. The RMS valueof a sine wave is its amplitude*1/sqrt(2) Does rms() work with a row vector? How about a matrix?

  27. 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

  28. Y X r r ˆ = · v v i x Vector Dot Product Example Find the X and Y components of the vector, V Back

  29. Review

  30. References Matlab. (2009, November 6). In Wikipedia, the free encyclopedia. Retrieved November 6, 2009, from http://en.wikipedia.org/wiki/Matlab Matlab tutorials: 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 Octave main page:http://www.gnu.org/software/octave/ (http://octave.sourceforge.net/ access to pre-built installers) Octave tutorials: http://homepages.nyu.edu/~kpl2/dsts6/octaveTutorial.html, http://smilodon.berkeley.edu/octavetut.pdf FreeMat. http://freemat.sourceforge.net/index.html ftp://www.chabotcollege.edu/faculty/bmayer/ChabotEngineeringCourses/ENGR-25.htm

More Related