Top Banner
MATLAB orientation course: Organized by FOCUS R&D Fundamentals of MATLAB Delivered by Dr. Suman Chakraborty Assistant Professor Department of Mechanical Engineering IIT Kharagpur
66
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Fundamentals of MATLAB

Delivered by

Dr. Suman ChakrabortyAssistant Professor

Department of Mechanical EngineeringIIT Kharagpur

Page 2: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Outline

• Introduction – Using MATLAB

• Basics of Programming

• Introduction to 2D and 3D plot

• Statistical Analysis

• Numerical Analysis

• Symbolic Mathematics

• Conclusion

Page 3: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

What is MATLAB

• “matrix laboratory”

• Was originally written to provide easy access to matrix software developed by the LINPACK and EISPACK projects that together presented the state-of-the-artsoftware for matrix manipulation

• Standard instructional tool for industrial optimization and advance computations in mathematics, engineering, and science

Page 4: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

More about MATLAB

• High-performance language for technical

computing

• Integrates computation, visualization, and

programming in an easy-to-use user

environment

Page 5: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Uses of MATLAB

• Math and computation

• Algorithm development

• Application development, including

graphical user interface (GUI) building

• Data analysis, exploration, and

visualization

• Modeling, simulation, and prototyping

• Scientific and engineering graphics

Page 6: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Components of MATLAB

• Basic Window

• Extensive Help

• GUI

• Toolboxes

• SIMULINK

Page 7: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Toolboxes

Control System Communications

Financial Fuzzy Logic

Image Processing Neural Network

PDE Signal Processing

Statistics Symbolic Math

And Many More …

Page 8: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Simulink

• Simulink Extensions

– Simulink Accelerator

– Real-Time Workshop

– Stateflow

• Blocksets

– DSP

– Nonlinear Control Design

– Communications

– Fixed-Point

Page 9: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Documentation Set

• MATLAB incorporates an exclusive set of online

help and function references containing

following divisions –

– MATLAB Installation Guide

– Getting Started with MATLAB

– Using MATLAB

– Using MATLAB Graphics

– The MATLAB Application Program Interface

Guide

– New features guide

Page 10: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Basic Window

Command line

Result

Visualization

File

Management

Working

Variables

Command

History

MenuWorking Directory

Page 11: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Help and Demo

Access Matlab Help Menu

Or

Type help in Command Window

Type help subtopic

Access Matlab Demo Menu

Or

Type demo in Command Window

Page 12: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Basics of Programming

Page 13: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

File Types

• .m filesScript (executable program)

Function (user written function)

• .fig files Plot visualization and

manipulation

• .dat or

.mat filesWorking with Formatted

Data

Page 14: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Script and Function FilesScript Files Function Files

Parameter

Assignment

Statement

Evaluation

Function Declaration on top

Syntax: function [output parameters] = function name (input parameters)

Save the file in – function name.m

Page 15: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Variables

MATLAB variables are created when they appear on the left of an equal sign. The

general statement

>> variable = expression

creates the “variable” and assigns to it the value of the expression on the right hand side

||Types of variables||

Scalar Variables

Vector Variables

Matrices

Strings

Page 16: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Creating and Operating with

Variables

Scalar Vector

Strings

# variable with one row

and one column

>> x = 2;

>> y = 3;

>> z = x + y;

>> w = y – x;

>> u = y*x;

# variable with many rows

and columns

>> x = zeros(4,2);

>> y = ones(6,8);

>> x(1,3) = 1729;

>> x(:,1) = [0 0 0 0]

Colon Notation

>> sFirst = ‘Hello’

>> sSecond = ‘All’

>> sTotal = [sFirst, ‘ ’, sSecond]

Page 17: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Handling Matrices

Initialization Transpose

Multiplication

Inverse

Determinant Eigenvalues

Page 18: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Operators

Arithmetic operatorsPlus +

Minus -

Matrix multiply *

Array multiply .*

Matrix power ^

Array power .^

Backslash or left matrix divide \

Slash or right matrix divide /

Left array divide .\

Right array divide ./

Kronecker tensor product kron

Relational operators

Equal ==

Not equal ~=

Less than <

Greater than >

Less than or equal <=

Greater than or equal >=

Logical operators

Short-circuit logical AND &&

Short-circuit logical OR ||

Element-wise logical AND &

Element-wise logical OR |

Logical NOT ~

Logical EXCLUSIVE OR xor

Page 19: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

CONTROL FLOW STATEMENTS

“for” Loop

for n=1:3 % Starting value=1, end=3, increment=1

for m=3:-1:1 % Starting value=3, end=3, increment= -1

a(n,m) = n.^2 + m.^2;

end % End of the “for” loop of “m”

end % End of the “for” loop of “n”

Output

2 5 10

a = 5 8 13

10 13 18

Page 20: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

“while” Loop

n = 0; eps = 1;

while (1+eps) > 1

eps = eps/2;

n = n + 1; % “n” indicates how many times the loop is

executed

end

OUTPUT

n = 53

WHILE STATEMENTS

Page 21: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

“if-else” Statement

rt = 1:4; pp=0; qq=0;

for i=1:4

if (rt(i) < 2)

pp = pp + 1; % Indicates how many times “if” executed

else

qq = qq + 1; % Indicates how many times “else” executed

end % End of “if-else” statement

end % End of “for” Loop

OUTPUT

pp = 1

qq = 3

IF-ELSE STATEMENTS

Page 22: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Debugging MATLAB

• Syntax Error

– e.g. a function has been misspelled or a parenthesis

has been omitted

– Display error message and line number– “??? Error: File: D:\MATLAB6p5\work\DNA melting langevin\HeteroSeq1.m

Line: 17 Column: 16

Assignment statements do not produce results. (Use == to test for

equality.)”

• Run-time Error

– e.g. insertion of a wrong variable or a calculation has

been performed wrongly such as “divided by zero” or

“NaN”

Page 23: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Introduction to 2D and 3D plot

Page 24: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Plots Using MATLAB

• 2-D Graphics

• 3-D Graphics

Page 25: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Example: Plot y = sin x in 0 ≤ x ≤ 2π

2-D Graphics

Page 26: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Command Line Plotting

Page 27: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Editing Figures

Edit Button

Legend

Text

Axis Label

Line or Point Type

Page 28: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Command Line Editing

Page 29: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Plot in Polar Co-ordinate

Page 30: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Fitting Polynomials

Page 31: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Data Statistics

Page 32: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Plotting polynomialsy = x3 + 4x2 - 7x – 10 in 1 ≤ x ≤ 3

Page 33: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Specialized Plots using MATLAB

• Bar and Area Graphs

• Pie Charts

• Histograms

• Discrete Data Graphs

Page 34: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Bar and Area Plots

Page 35: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Pie Charts

Page 36: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Histograms

Page 37: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Discrete Data Graphs

Page 38: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

3-D GraphicsUse “plot3” in place of “plot” : Simple Enough !!!!

Page 39: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Use of “Mesh”, “Surf”, “Contour”

Page 40: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Statistical Analysis

Page 41: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Data Import in MATLAB

• Data as explicit list of elements

– e.g. [1 3 -5 5 7 10 5]

• Create Data in M-file

– Data editor can be utilized, more effective than the first one

• Load data from ASCII file

– e.g. g = load(„mydata.dat‟)

• Read data using fopen, fread and MATLAB file I/O functions

Page 42: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Other methods of Import

• Specialized file reader function– dlmread Read ASCII data file

– imread Read image from graphics file

– wk1read Read spreadsheet (WK1) file

– auread Read Sun (.au) sound file

– wavread Read Microsoft WAVE (.wav) sound file

– readsnd Read SND resources and files (Macintosh)

• MEX-file to read the data

• Develop an associated Fortran or C

program

Page 43: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Exporting Data from MATLAB

• Diary Command

– creates a diary of present MATLAB session in

a disk file (excluding graphics)

– View and edit with any word processor

– e.g. diary mysession.out

diary off

• Save data in ASCII format

• Write data in .mat file

Page 44: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Specialized Write Functions

• dlmwrite Write ASCII data file

• wk1write Write spreadsheet (WK1) file

• imwrite Write image to graphics file

• auwrite Write Sun (.au) sound file

• wavwrite Write Microsoft WAVE (.wav) sound file

• writesnd Write SND resources and files (Macintosh)

Page 45: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Data Statistics

• Basic functions for data statistics:

– max Largest component

– min Smallest component

– mean Average or mean value

– median Median value

– std Standard deviation

– sort Sort in ascending order

– sortrows Sort rows in ascending order

– sum Sum of elements

Page 46: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

More Statistical Functions

– prod Product of elements.

– diff Difference function and

approximate derivative

– trapz Trapezoidal numerical

integration

– cumsum Cumulative sum of elements

– cumprod Cumulative product of elements

– cumtrapz Cumulative trapezoidal numerical

integration

Page 47: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Covariance and Correlation

• Function cov evaluates

– Variance of a vector i.e. measure of spread or dispersion of sample variable

– Covariance of a matrix i.e. measure of strength of linear relationships between variables

• Function corrcoef evaluates

– correlation coefficient i.e. normalized measure of linear relationship strength between variables

Page 48: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Minimizing Functions

• Minimizing Functions with one variable

– fmin (function name, range)

• Minimizing Functions with several

variables

– fmins (function name, starting vector)

Example:

>> a = fmin (‘humps’,0.4,0.9)

>> a = 0.6370

Page 49: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Plotting Mathematical Functions

fplot('humps',[-3,3])

Page 50: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Numerical Analysis

Page 51: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Functions for Finite Differences

• diff Difference between successive elements of a vector

Numerical partial derivatives of a vector

• gradient Numerical partial derivatives a matrix

• del2 Discrete Laplacian of a matrix

Page 52: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Functions for Fourier Analysis

• fft Discrete Fourier transform

• fft2 Two-dimensional discrete Fourier transform

• fftn N-dimensional discrete Fourier transform.

• ifft Inverse discrete Fourier transform

• ifft2 Two-dimensional inverse discrete Fourier transform

• ifftn N-dimensional inverse discrete Fourier transform

• abs Magnitude

• angle Phase angle

Page 53: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Solving Linear Equations

• Solution by Square System

• Overdetermined System

• Undetermined System

General situation involves a square coefficient

matrix A and a single right-hand side column

vector b.

e.g. Ax = b then solution: x = b\A

System is solved by „backslash‟ operator

Page 54: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Overdetermined Equation

With a, b dataset fitting equation is predicted asaeccab 21)(

MATLAB finds C1 = 0.4763 and C2 = 0.3400

Page 55: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Undetermined Equation

• More unknowns than equations

• Solution is not unique

• MATLAB finds a basic solution even it is

not unique

• Associated constraints can not be coupled

to MATLAB

Page 56: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Ordinary Differential Equations

• Nonstiff solvers– ode23: an explicit Runge-Kutta (2,3) formula i.e.

Bogacki-Shampine pair

– ode45: an explicit Runge-Kutta (4,5) formula i.e.

Dormand-Prince pair

– ode113: Adams-Bashforth-Moulton PECE solver

• Stiff solvers

– ode15s, ode23s, ode23t and ode23tb

Page 57: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Generic Syntax for ODE Solver

>> [T,Y] = solver („Func‟, tspan, y0);

'Func' String containing the name of the file that contains the system of ODEs

tspan Vector specifying the interval of integration. For a two-element vector tspan = [t0 tfinal], the solver integrates from t0 to tfinal.

y0 Vector of initial conditions for the problem.

Output:

T Column vector of time points

Y Solution array. Each row in Y corresponds to the solution at a time returned in the corresponding row of T

Page 58: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Numerical Integration

The area under a section of a function F(x)

can be evaluated by numerically

integrating F(x), a process known as

quadrature. The in-built MATLAB functions

for 1D quadrature are:

• quad - Adaptive Simpson‟s Rule

• quad8 - Adaptive Newton Cotes 8

panel rule

Page 59: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Numerical Integration - Example

>> Q = quad („sin‟,0,2*pi)

>> Q = 0

Page 60: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Performing Double Integral

% function declaration

>> function integrnd_out = integrnd (x,y)

>> integrnd_out = x*sin(x) + y*cos(y);

% Double Integral Evaluation

>> x_min = pi;

>> x_max = 2*pi;

>> y_min = 0;

>> y_max = pi;

>>

>> intg_result = dblquad („integrnd‟, x_min, x_max, y_min, y_max)

>> intg_result = -9.8698

Page 61: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Symbolic Mathematics

Page 62: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Symbolic Mathematics

• The Symbolic Math Toolboxes include symbolic computation into MATLAB‟s numeric environment

• Facilities Available with Symbolic Math Toolboxes contain – Calculus, Linear Algebra, Simplification, Solution of Equations, Variable-Precision Arithmetic, Transforms and Special Applied Functions

Page 63: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Demonstrations

Command Line Demonstrations are available

with Symbolic Math Toolboxes

Page 64: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Example: Differentiation

>> syms a x

>> fx = sin (a*x)

>> dfx = diff(fx)

>> dfx = cos (a*x)*a

% with respect to a

>> dfa = diff(fx, a)

>> dfa = cos (a*x)*x

Page 65: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

In Summary - Why MATLAB !

• Interpreted language for numerical computation

• Perform numerical calculations and visualize the

results without complicated and time exhaustive

programming

• Good accuracy in numerical computing

• Specially in-built with commands and

subroutines that are commonly used by

mathematicians

• Toolboxes to make advance scientific

computations easy to implement

Page 66: 95539255 Fundamentals of Matlab Final

MATLAB orientation course: Organized by FOCUS – R&D

Thank You