40
ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

ES 314Advanced programming, simulation and modeling

lecture:M W 9 to 10 : 50 AM2008, Salazar Hall

Page 2: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Catalog Description of the course:

Lecture: 4 hours; laboratory: 0 hours. Pointers and dynamic allocation of storage; linked lists; an introduction to the object oriented programming (OOP) paradigm; classes and objects; encapsulation; member variables and member functions. Static arrays, dynamic arrays, stacks and queues, linked lists, hashing. System modeling techniques and applications such as generation of noise (random numbers) and correlated signal with different pdfs, measurement of statistical parameters like moments, queuing systems and system simulation.

Prerequisite: CS 115: Programming I. Co-requisites: MATH 345: Probability Theory and ES 220: Electric Circuits, or consent of instructor.

Page 3: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Goals of the course: To introduce software design for engineering applications through MATLAB programming, computational modeling of physical systems and software simulation of simple physical systems. Specifically, the following topics will be covered:•MATLAB programming – iteration, library and user-defined functions, scripts, structured data and objects, image and audio files, plotting and visualization, recursion, project design and development.•performing statistical analyses of data (e.g. parameter estimation)•fundamental algorithms for sorting, searching, solving system of equations etc.•computational modeling•simulation of physical systems and models: network and queuing models

Page 4: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Text book

Kaplan, Daniel T. Introduction to Scientific Computation and Programming, Brooks/Cole-

Thomson Learning, 2004.

http://www.macalester.edu/~kaplan/ScientificProgramming/index.html

We will cover most of Chapters 1 to 12.

For simulation and modeling, we will use other sources.

Page 5: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Course History

• current offering is the second.

• previous offering – Fall 2008

• co-taught by Dr. Jagan Agrawal, Dr. Ali kujoory and myself

• used c++ for programming, no specific language was required by Dr. Agrawal, Dr. Kujoory used MATLAB.

Page 6: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Grading

short quizzes: ~10 points The quizzes will be in-class for a duration to 10 to 15 minutes, one for each class.

programming assignments and projects: ~40 points Most of the assignments will involve problem solving and implementing the solution using MATLAB. There may be a final project chosen by each student individually.

mid-semester tests (2): ~25 points, in-class. final examination: ~25 points This exam will be in-class and comprehensive. It will take place at the time scheduled by registrar’s office. You can find out from the web page: http://www.sonoma.edu/ university/classsched/finals_sched.pdf

Page 7: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

course overview

•Matlab programming

• simulation and modeling

• case studies• database, graphics and plotting, audio, image processing, modeling of bio-signals etc.

• probabilistic models of network traffic, queuing models etc.

Page 8: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab programming language

• most widely used by engineers• other similar ones: mathematica, maple, mathcad, macsyma

• vector and matrix centered. (Name comes from MATrix LABoratory).

• extensive support for mathematical operations, plotting, visual presentation of results

• toolboxes for areas such as signal processing, image processing, wavelets, bioinformatics

Page 9: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab programming language

Why it is useful engineering applications:

• large toolbox of numeric/image library

functions

• very useful for displaying, visualizing data

• high-level: focus on algorithm structure,

not on low level details

• allows quick prototype development of

algorithms

Page 10: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

User interface

• interactive mode

• result appears immediately after the command is entered

• interpreted language

• scripts for sequence of operations, programs

• save scripts as files with .m extension

Page 11: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Main features of Matlab

•simple data types:• numbers, string, boolean

•structured types:• vector, matrix, indexing, mixed data types (structures and objects)

• files and scripts

Page 12: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Main features of Matlab

• functions:• user defined functions• more advanced features: recursion, function as parameter, function as return value etc.

• conditionals:• if statement, if … then .. else, switch statement

• loops:• for loop, nested loops, loop termination, conditional loop

Page 13: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Main features of Matlab

• scope:• environment and scope• resolving name conflicts

• events:• reactive program• user interface design

Page 14: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

tutorials

• http://www.mathworks.com/ has links to tutorials, video clips on various topics http://www.youtube.com/user/MATLAB

• other tutorials• http://www.math.utah.edu/lab/ms/matlab/matlab.html • http://amath.colorado.edu/computing/Matlab/Tutorial/ • http://www.math.utah.edu/lab/ms/matlab/matlab.html

and many others.

Page 15: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Stochastic models – example

What is the probability that a web page is visited?

Model: each web page is represented by a node and each link from page A to page B is an edge in the graph. Assume a visitor to a page will randomly click on one of the links on the page.

Also assume that one starts with probability 1/n at any page (where n = total number of pages).

This model is called a Markov chain.

Page 16: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Markov chain – simulation

Shown below is a simple Markov chain. What is the average number of steps it takes to move from state 1 to state 3?

1 32

Assume all outgoing arcs have the same probability

Application: assuming that the server has probability = 0.55 of winning a game, what is the average length of a game in tennis?

Page 17: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

signal generation and display – simple example

Page 18: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

signal generation and display – simple example

Page 19: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Image models

2-d image of a photograph:

Digital image is represented by a collection of pixels. Each pixel has a color value represented by 32 bits. (R, G, B, A) values.

Digital images can be processed in various ways:

• compression

• restoration, de-blurring

• enhancement, noise reduction

Page 20: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Image processing

original image restored image

Page 21: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Image merging

input

output

Page 22: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Image merging – a more complex example

Input images

output

Example taken from http://www.graficaobscura.com/merge/index.html

Page 23: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Volume Data Representation and Visualization

Typical scalar volume data is composed of a 3-D array of data and three coordinate arrays of the same dimensions. The

coordinate arrays specify the x-, y-, and z-coordinates for each data point.

For example, flow data might have coordinate units of inches and data units of psi.

A number of MATLAB functions are useful for visualizing scalar data:• Slice planes provide a way to explore the distribution of data values within the volume by mapping values to colors. • You can orient slice planes at arbitrary angles, as well as use nonplanar slices. You can specify the data used to color isosurfaces, enabling you to display different information in color and surface shape• Contour slices are contour plots drawn at specific coordinates within the volume. Contour plots enable you to see where in a given plane the data values are equal.

Page 24: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

MRI Data Visualization

• MRI data typically contains a number of slice planes taken through a volume, such as the human body.

• MRI data formats that can be accessed directly through Matlab:

•A series of 2-D images representing slices through the head•2-D and 3-D contour slices taken at arbitrary locations within the data•An isosurface with isocaps showing a cross section of the interior.

Page 25: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

contour slices

Example taken from: http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab.html&http://www.cs.dartmouth.edu/farid/

teaching/cs136/summer.08/

Page 26: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall
Page 27: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab – working windows

Page 28: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab – Introduction (Ch 2)•Variables:

Page 29: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Variable definition

• need not be declared

• Variable names can contain up to 63

characters

• Variable names must start with a letter

followed by letters, digits, and underscores.

• Variable names are case sensitive.

• Key words can’t be used as variable names.

(Key words list is in the next slide.)

Page 30: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab Special Variables

• ans Default variable name for results• pi: Value of π >> pi

ans =

3.14159265358979

• eps: smallest incremental number• inf: Infinity• NaN: Not a number e.g. 0/0• realmin: The smallest usable positive real number• realmax: The largest usable positive real number

Page 31: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab – Introduction (Ch 2)

• key words:• if, else, end, for, while, break, switch, case, try, catch, return, global, function, persistent etc.

• arithmetic operations: + – * (or .*) latter used for component-wise * in vector / (or ./) \ (or .\) ^ (or .^) a^b stands for ab

Page 32: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Other MATLAB symbols

>> prompt. . . continue statement on next line, separate statements and data% start comment which ends at end of line; (1) suppress output

(2) used as a row separator in a matrix

: specify range

Page 33: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Matlab – Introduction (Ch 2)

• Exercise 2.1: Evaluate the expression

3 – 5 + 4/6 – 8 *4^2

• Exercise 2.2: Write (3 – (5 + 2* 8))/4 in functional style using plus, minus, times and rdivide.

a + b is written as plus (a, b) in functional style.

Page 34: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

some helpful commands

>> whos Lists all the variables currently active in

environment >> lookfor <word> gives all sentences

containing <word> in the manual.

Use up arrow to repeat the previous command.

>> help

Page 35: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Chapter 3 – numbers, string, booleans

integer:

MATLAB stores numeric data as double-precision floating point (double) by default. To store data as an integer, you need to convert from double to the desired integer type.

Example: To store  325 as a 16-bit signed integer assigned to variable x:

>> x = int16(325);

If the number being converted to an integer has a fractional part, MATLAB rounds to the nearest integer.

Page 36: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

• If the fractional part is exactly 0.5, then from the two equally nearby integers, MATLAB chooses the one for which the absolute value is larger in magnitude:

>> x = 325.499; >> int16(x) ans = 325>> x = x + .001; >> int16(x) ans = 326

Built-in functions that convert to int

• Other related functions: floor, ceil

Page 37: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

long floating-point format

>> format long>> x = 1.5^2.3;>> x

x =

2.54103060477792

>> format short>> x

x =

2.5410

>> x = 2.564593653;>> x

x =

2.5646

>>

Page 38: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Complex numbers

Page 39: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

Strings

Character: alphabetical – upper/lower (‘a’ .. ‘z’, ‘A’ .. ‘Z’) digits – 0, 1, …, 9 special characters - $, % etc. control characters - \n (end of line) etc.

Each character is encoded by 8 bits (ASCII) or 16 bits (unicode)

Unicode allows encoding of alphabets from many languages such as Hungarian, Chinese, Swahili etc.

String - sequence of characters.

>> greeting = ‘hello’

Page 40: ES 314 Advanced programming, simulation and modeling lecture: M W 9 to 10 : 50 AM 2008, Salazar Hall

String operations

>> length(word)

ans = 5

>> strcmp(word, ‘hello!’)

ans = 1 if the Boolean expression is true, 0 else.

Strcmp compares two strings.