Loading in 5 sec....

Computer Simulation LabPowerPoint Presentation

Computer Simulation Lab

- By
**sanne** - Follow User

- 61 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Computer Simulation Lab' - sanne

**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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Computer Simulation Lab

“Lecture 2”

Electrical and Computer Engineering Department

SUNY – New Paltz

SUNY-New Paltz

MATLAB fundamentals

· Desktop, Editing

· Variables, Operators, Expressions

· Vectors

· Input / Output

· Repetition

· Decision

SUNY-New Paltz

The MATLAB Desktop

SUNY-New Paltz

Integrated Development Environment (IDE)

qCommand Window

qCurrent Directory

qCommand History

qLaunch Pad

qWorkspace

SUNY-New Paltz

Programs

A collection of statements to solve a problem is called a program.

Different Types of Languages:

- Machine Language (Executable File)
- Low-Level Languages (Assembly)
- High-Level Languages (C, C++, Java, Basic, Fortran, etc.)
- Script Languages ( PERL, MATLAB, PHP, etc.)

SUNY-New Paltz

A Simple Program:

Suppose you have $1000 saved in the bank. Interest is compounded at the rate of 9% per year. What will your bank balance be after one year?

- 1. Get the data (initial balance and interest rate) into the program.
- 2. Calculate the interest (9 per cent of $1000, i.e. $90).
- Add the interest to the balance ($90 + $1000, i.e. $1090)
- 4. Display the new balance

SUNY-New Paltz

C Language

include <stdio.h>

include <interest.h>

define int interest, balance

main{

balance = 1000;

rate = 0.09;

interest = rate * balance;

balance = balance + interest;

printf(“balance=%d”, balance);

}

SUNY-New Paltz

MATLAB Program

balance = 1000;

rate = 0.09;

interest = rate * balance;

balance = balance + interest;

disp( ’New balance:’ );

disp( balance );

SUNY-New Paltz

Variables and the workspace

A variable name (like balance) must comply with the following two rules:

1. It may consist only of the letters a–z, the digits 0–9 and the underscore ( _ ).

2. It must start with a letter.

Valid: r2d2, pay_day

Invalid:pay-day, 2a name$, _2a

SUNY-New Paltz

Case sensitivity

- Different variables:
- balance, BALANCE and BaLance

- Camel Caps:
- camelCaps
- milleniumBug
- dayOfTheWeek

- Commands are all in lower case

SUNY-New Paltz

Examples of variables

- interest=.09;
- years=10;
- delta=1.e-3;
- email=‘[email protected]’;
- vect=[1 2 3 4 5];
- matx=[1 2 3; 4 5 6];

SUNY-New Paltz

workspace

- who: lists the names of all the variables in your workspace
- whos: lists the size of each variable as well
- ans: returns the value of the last expression evaluated but
not assigned to a variable

- Workspace
- Name Size Bytes Class
- balance 1x1 8 double array
- interest 1x1 8 double array
- rate 1x1 8 double array

SUNY-New Paltz

Arrays: vectors and matrices

- Initializing vectors: explicit lists
x = [1 3 0 -1 5] use spaces

a = [5,6,7] use commas

a = [1 2 3], b = [4 5], c = [a -b]

x = [ ]

- Initializing vectors: the colon operator
x = 1:10

x = 1:0.5:4

x = 10:-1:1

x = 0:-2:-5

- linspace
- linspace(0, pi/2, 10)

SUNY-New Paltz

ArraySubscripts

- r = rand(1,7)
This gives you a row vector of seven random numbers.

- r(3)
This will display the third element of r. The number 3 is the subscript.

- r(2:4)
This should give you the second, third and fourth elements.

- r(1:2:7)
- r([1 7 2 6])
- r([1 7 2]) = [ ]
will remove elements 1, 7 and 2.

SUNY-New Paltz

Matrices

- a = [1 2 3; 4 5 6] = 1 2 3
4 5 6

- a’ = 1 4
2 5

3 6

- A matrix can be constructed from column vectors of the same lengths:
x = 0:30:180;

table = [x’ sin(x*pi/180)’] = 0.0000 0.0000

30.0000 0.5000

60.0000 0.8660

90.0000 1.0000

120.0000 0.8660

150.0000 0.5000

180.0000 0.0000

SUNY-New Paltz

Exercise

Construct the following vectors and matrices:

- A row vector of all odd numbers between –101 and 101
- A column vector of all numbers between –101 and 101 that are divisible by 3
- A matrix of 16 equally spaced angles between 0 and 2*pi along with sin(x) and cos(x) and tan(x).
- A matrix of size 5x5 having random numbers between 0 and 1 for each element.

SUNY-New Paltz

Operators, Expressions, Statements

- Arithmetic operations between two scalars
- OperationAlgebraic formMATLAB
- Addition a + b a + b
- Subtraction a -b a - b
- Multiplication a × b a * b
- Right division a/b a / b
- Left division b/a a \ b
- Power aba ^ b

SUNY-New Paltz

Precedence of arithmetic operations

PrecedenceOperator

1 Parentheses

2 Power, left to right

3 Multiplication and division, left to right

4 Addition and subtraction, left

to right

SUNY-New Paltz

Arithmetic operations on arrays

Arithmetic operators that operate element-by-element on arrays

Operator Description

.* Multiplication

./ Right division

.\ Left division

.^ Power

Examples:

a = [2 4 8]; 3 .* a = ?

b = [3 2 2]; a .^ 2 = ?

a .* b = ?

a ./ b = ?

SUNY-New Paltz

Statements, Commands and Functions

- Statements: s = u * t - g / 2 * t .^ 2;
- Functions: sin(x), plot(x)
- Commands: load, save, clear

SUNY-New Paltz

Vectorization of Formulae1- Case of Scalar

A = 750;

r = 0.09;

n = 10;

B = A * (1 + r) ^ n;

disp( [A B] )

- 750.00 1775.52

SUNY-New Paltz

Vectorization of Formulae2- Case of Mutiple Investment

- A = [750 1000 3000 5000 11999];
- r = 0.09;
- n = 10;
- B = A * (1 + r) ^ n;
- disp( [A’ B’] )

- 750.00 1775.52
- 1000.00 2367.36
- 3000.00 7102.09
- 5000.00 11836.82
- 11999.00 28406.00

SUNY-New Paltz

SUNY-New Paltz

Output

- disp( variable ) {variable could be numerical or textual}
- disp( ’Pilate said, ’’What is truth?’’’ );
- disp( [x y z] )
- disp( [’The answer is ’, num2str(x)] );

SUNY-New Paltz

format

- 1234567890 is displayed as 1.2346e+009
- mantissa is between 1 and 9.9999
- format short , format short e
- format long , format long e
- format long g, format short g
- format compact
- format hex
- format rat
- format bank

SUNY-New Paltz

Repeating with for

for i = 1:5

disp(i)

end

- for index = j:m:k
- for index = v (where v is any vector such as [2 3 8])
- Show the squares of all even numbers between 0 and 1000

for i=0:2:1000

disp([i i*i])

end

SUNY-New Paltz

Avoid Loops!

s = 0;

for n = 1:100000

s = s + n;

end;

n = 1:100000;

s = sum( n );

Find x=1+1/2+1/3+1/4…. + 1/1000

SUNY-New Paltz

Decisions

if r > 0.5

disp( ’greater indeed’ )

end

Relational operators

Relational OperatorMeaning

< less than

<= less than or equal

== equal

~= not equal

> greater than

>= greater than or equal

SUNY-New Paltz

Decisions

if condition1

statementsA

elseif condition2

statementsB

elseif condition3

statementsC

...

else

statementsE

end

if condition

statementsA

else

statementsB

end

SUNY-New Paltz

Nested if’s

d = b^2 - 4*a*c;

if a ~= 0

if d < 0

disp( ’Complex roots’ )

else

x1 = (-b + sqrt( d )) / (2*a);

x2 = (-b - sqrt( d )) / (2*a);

end

end

SUNY-New Paltz

Switch/Case

d = floor(3*rand) + 1

switch d

case 1

disp( ’That’’s a 1!’ );

case 2

disp( ’That’’s a 2!’ );

otherwise

disp( ’Must be 3!’ );

end

SUNY-New Paltz

Switch/Case

d = floor(10*rand);

switch d

case {2, 4, 6, 8}

disp( ’Even’ );

case {1, 3, 5, 7, 9}

disp( ’Odd’ );

otherwise

disp( ’Zero’ );

end

SUNY-New Paltz

Complex numbers

- z = 2 + 3*i
- sqrt(2 + 3*i)
- exp(i*pi)
circle = exp( 2*i*[1:360]*pi/360 ); % select all points around a circle

plot(circle) % is equivalent to: plot(real(y), imag(y))

axis equal

a = [1+i, 2+2i; 3+3i, 4+4i]

1.0000 + 1.0000i 2.0000 + 2.0000i

3.0000 + 3.0000i 4.0000 + 4.0000i

SUNY-New Paltz

Download Presentation

Connecting to Server..