Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
11 views

Lecture 1 - Introduction

Uploaded by

kwame10
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Lecture 1 - Introduction

Uploaded by

kwame10
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 51

ITEC 2600 – Lecture 1:

Introduction to Analytical Programming

Prof. Arik Senderovich

The slides are based on lecture notes by Greg Reese, Stormy Attaway
Outline
 Course logistics & syllabus

 Introduction to Analytical Programming (AP)


o What is AP?
o Intro to MATLAB

 First attempt at AP

2
Basic Logistics
 Course Instructor: Prof. Arik Senderovich
o Email: sariks@yorku.ca
o Office hours: virtual in Zoom, upon demand
 Course website: eClass

3
Course Outline
 The course presents an extension of previous programming courses
 The emphasis is not only on coding, but also on problem-solving (AP)
 You will be introduced to a new programming environment (MATLAB),
and you will be exposed to various applications in MATLAB
 We will have weekly lectures, in-class exercises, and hands-on labs

4
Main Topics
 This course is about:
o Programming (be prepared to code!)
o Concepts in math, system analysis, and statistics
o Implementing these concepts in MATLAB
• Part 1: basic vectors, matrices
• Part 2: programming principles in MATLAB
• Part 3: advanced topics and applications

5
Let’s go over the Syllabus
(available in eClass)

6
Questions?

7
Lecture 1: Outline
 Course logistics & syllabus

 Introduction to Analytical Programming (AP)


o What is AP?
o Intro to MATLAB

 First attempt at AP

8
Introduction to Analytical Programming
 What is Analytical Programming?
o Analytical = Conceptual / Mathematical
o Programming = Coding (in this course, MATLAB)
 Why do you need to learn it? (or why should you care?)
o Helps developing analytical thinking & problem-solving skills:
• Formulate the problem, think of a solution, implement it
• Critical ability in modern IS/IT environments, e.g., data analytics
• MATLAB is heavily used by certain industries
o We will consider pairs of problem + programming solutions
o Math concepts will be introduced as we progress with MATLAB

9
Analytical Thinking

10
Examples of Famous Problems and Solutions
 Supervised machine learning
o Fitting linear regression
o Training neural networks
 Optimization
o Traveling salesman
o Wind farm layout
 Image processing
o Picture compression
o Face recognition
All require a mathematical formulation, a solution, and an implementation

11
Analytical Programming

 The ability to implement an analytical solution using code


 In principle, any programming language can be used
 MATLAB is very suitable to solve mathematical problems:
o Linear algebra
o Machine learning/AI/Stats
o Simulation
o Optimization

12
Lecture 1: Outline
 Course logistics & syllabus

 Introduction to Analytical Programming (AP)


o What is AP?
o Intro to MATLAB

 First attempt at AP

13
Introduction to MATLAB (Matrix Laboratory)
• Very powerful software package
• Many mathematical and graphical applications
• Has programming constructs
• Also has many built-in functions
• Can use interactively in the Command Window, or write your own
programs
• In the Command Window the >> is the prompt
– At the prompt, enter a command or expression
– MATLAB will respond with a result
MATLAB Environment
 Command Window is large window in middle; Current Folder Window to
left, Workspace and Command History to right
 Make sure you have access
 We will explore this later today
Expressions
• Expressions can contain values, variables that have already
been created, operators, built-in functions, and parentheses
• This of a simple calculator - operators include:
+ addition
- negation, subtraction
* multiplication
/ division (divided by e.g. 10/5 is 2)
\ division (divided into e.g. 5\10 is 2)
^ exponentiation (e.g. 5^2 is 25)

• Scientific or exponential notation: use e for exponent of 10


raised to a power
– e.g. 3e5 means 3 * 10^5
Operator Precedence
 Some operators have precedence over others
 Precedence list (highest to lowest) so far:
( ) parentheses
^ exponentiation
*, /, \ all multiplication and division
+, - addition and subtraction
 Nested parentheses: expressions in inner parentheses are
evaluated first
Variables and Assignments
• To store a value, use a variable
• One way to put a value in a variable is with an assignment
statement
• general form:
variable = expression
• The order is important
– variable name on the left
– the assignment operator “=” (Note: this does NOT mean equality)
– expression on the right
Variables and Assignments
• For example, in the Command Window at the prompt:
>> mynum = 6
mynum =
6
>>
• This assigns the result of the expression, 6, to a variable called mynum
• A semicolon suppresses the output but still makes the assignment
>> mynum = 6;
>>
• If just an expression is entered at the prompt, the result will be stored in a default variable called ans which is re-
used every time just an expression is entered
>> 7 + 4
ans =
11
>>
Modifying Variables
• Initialize a variable (put its first value in it)
mynum = 5;
• Change a variable (e.g. by adding 3 to it)
mynum = mynum + 3;
• Increment by one
mynum = mynum + 1;
• Decrement by two
mynum = mynum – 2;
NOTE: after this sequence, mynum would have the value 7 (5+3+1-2)
Variable Names
 Names must begin with a letter of the alphabet
 After that names can contain letters, digits, and the
underscore character _
 MATLAB is case-sensitive
 the built-in function namelengthmax tells what the
limit is for the length of a variable name
 Names should be mnemonic (they should make
sense!)
 The commands who and whos will show variables
 To delete variables: clearvars

Types
• Every expression and variable has an associated
type, or class
– Real numbers: single, double
– Integer types: numbers in the names are the number of
bits used to store a value of that type
• Signed integers: int8, int16, int32, int64
• Unsigned integers: uint8, uint16, uint32, uint64
– Single characters and character vectors: char
– Strings of characters: string
– True/false: logical
• The default type for numbers is double
Practice
Formatting
 format command has many options, e.g.:
o long, short
• control number of decimal places
o loose, compact
• control spacing between lines
 Continue long expressions on next line using
ellipsis:
>> 3 + 55 - 62 + 4 - 5 ...
+ 22 - 1
ans =
16
Built-in functions and help
• There are many, MANY built-in functions in MATLAB
• Related functions are grouped into help topics
• To see a list of help topics, type “help” at the prompt:
>> help
• To find the functions in a help topic, e.g., elfun:
>> help elfun
• To find out about a particular function, e.g., sin:
>> help sin
• Can also choose the Help button under Resources to bring up the
Documentation page
Using Functions: Terminology
• To use a function, you call it
• To call a function, give its name followed by the argument(s) that are passed to it in
parentheses
• Many functions calculate values and return the results
• For example, to find the absolute value of -4
>> abs(-4)
ans =
4
• The name of the function is “abs”
• One argument, -4, is passed to the abs function
• The abs function finds the absolute value of -4 and returns the result, 4
Functional form of operators
All operators have a functional form
For example, an expression using the addition operator such as
2 + 5 can be written instead using the function plus, and
passing 2 and 5 as the arguments:
>> plus(2,5)
ans =
7
Constants
• In programming, variables are used for values that could
change, or are not known in advance
• Constants are used when the value is known and cannot
change
• Examples in MATLAB (these are actually functions that return
constant values)
pi 3.14159….
1

i, j
inf infinity
NaN stands for “not a number”; e.g. the result of 0/0
Random Numbers
• Several built-in functions generate random (actually, pseudo-
random) numbers
• Random number functions, or random number generators, start
with a number called the seed; this is either a predetermined
value or from the clock
• By default, MATLAB uses a predetermined value so it will always
be the same
• To set the seed using the built-in clock:
rng(‘shuffle’)
Random Real Numbers
 The function rand generates uniformly distributed random real
numbers in the open interval (0,1)
 Calling it with no arguments returns one random real number
 To generate a random real number in the open interval
(0,N):
rand * N
 randn is used to generate normally distributed random real
numbers
Random Integers
Rounding a random real number could be used to produce a
random integer, but these integers would not be evenly
distributed in the range

The function randi(imax) generates a random integer in the


range from 1 to imax, inclusive
A range can also be passed:
randi([m,n],1) generates one integer in the range from
m to n
Practice
Characters and Strings
• A character is a single character in single quotes
• All characters in the computer’s character set are put in an order using a
character encoding
– In the character encoding sequence, the letters of the alphabet are in order, e.g.
‘a’ comes before ‘b’
– Common encoding ASCII has 128 characters, but MATLAB can use a much larger
encoding sequence
• The character set includes all letters of the alphabet, digits, punctuation
marks, space, return, etc.
• Character vectors are sequences of characters in single quotes, e.g. ‘hello and
how are you?’
• Strings are sequences of characters in double quotes, e.g. “ciao bella”
Relational Expressions
• The relational operators in MATLAB are:
> greater than
< less than
>= greater than or equals
<= less than or equals
== equality
~= inequality
• The resulting type is logical 1 for true or 0 for false
• The logical operators are:
|| or for scalars
&& and for scalars
~ not
• Also, xor function which returns logical true if only one of the arguments is true
Truth Table
 A truth table shows how the results from the logical operators
for all combinations

 Note that the logical operators are commutative (.e.g., x|| y is


equivalent to y || x)
Expanded Precedence Table
 The precedence table is expanded to include
the relational and logical operators:
Range and Type Casting
 Range of integer types found with intmin/intmax
o e.g. intmin(‘int8’) is -128, intmax(‘int8’) is 127
 Converting from one type to another, using any of the type
names as a function, is called casting or type casting, e.g:
>> num = 6 + 3;
>> numi = int32(num);
>> whos
Name Size Bytes Class Attributes

num 1x1 8 double


numi 1x1 4 int32

 The class function returns the type of a variable


Characters and Encoding
• standard ASCII has 128 characters; integer equivalents are 0-127
• any number function can convert a character to its integer equivalent
>> numequiv = double('a')
numequiv =
97
• the function char converts an integer to the character equivalent (e.g. char(97))
• MATLAB uses an encoding that has 65535 characters; the first 128 are equivalent to ASCII
Practice
Some Functions in MATLAB

 Trig functions, e.g. sin, cos, tan (in radians)


o Also arcsine asin, hyperbolic sine sinh, etc.
o Functions that use degrees: sind, cosd, asind, etc.
 Rounding and remainder functions:
o fix, floor, ceil, round
o rem, mod: return remainder
o sign returns sign as -1, 0, or 1
 sqrt and nthroot functions
 deg2rad and rad2deg convert between degrees and
radians
Practice
Log Functions
MATLAB has built-in functions to return logarithms:
log(x) returns the natural logarithm (base e)
log2(x) returns the base 2 logarithm
log10(x) returns the base 10 (common) logarithm

MATLAB also has a built-in function exp(n) which returns the


constant en
Note: there is no built-in constant for e; use exp instead
Also, do not confuse with exponential notation e
Alternate Platforms
MATLAB products can be found on the website
https://www.mathworks.com
Services include:
MATLAB Mobile free app that has a Command Window and also
gives access to sensor data on phone
MATLAB Online (access through most licenses)
MATLAB Drive provides cloud storage
Beware of Common Pitfalls
 Confusing the format of an assignment statement (make sure that the variable
name is always on the left)
 Forgetting to use parentheses to pass an argument to a function (e.g., typing “fix
2.3” instead of “fix(2.3)”)
 Confusing || and xor
 Using = instead of == for equality
 Using an expression such as “5 < x < 10” – which will always be true, regardless of
the value of the variable x (because the expression is evaluated from left to right;
5 < x is either true (1) or false (0); both 1 and 0 are less than 10)
Programming Style Guidelines
 Use mnemonic variable names (names that make sense; for
example, radius instead of xyz)
 Although variables named result and RESULT are different,
avoid this as it would be confusing
 Do not use names of built-in functions as variable names
 Store results in named variables (rather than using ans) if they
are to be used later
 Make sure variable names have fewer characters than
namelengthmax
 If different sets of random numbers are desired, set the seed
for the random functions using rng
Scripts
• Scripts are files in MATLAB that contain a sequence of
MATLAB instructions, implementing an algorithm
• Scripts are interpreted and are stored in code files (files
with the extension .m)
• To create a script, click on “New Script” under the HOME
tab; this opens the Editor
• Once a script has been created and saved, it is executed by
entering its name at the prompt
• the type command can be used to display a script in the
Command Window
Documentation
 Scripts should always be documented using comments
 Comments are used to describe what the script does,
and how it accomplishes its task
 Comments are ignored by MATLAB
 Comments are anything from a % to the end of that
line; longer comment blocks are contained in between
%{ and %}
 In particular, the first comment line in a script is called
the “H1 line”; it is what is displayed with help
Lecture 1: Outline
 Course logistics & syllabus

 Introduction to Analytical Programming (AP)


o What is AP?
o Intro to MATLAB

 First attempt at AP (via classwork)

49
Problem 1:
Problem 2:

You might also like