Sie sind auf Seite 1von 66

Fundamentals of MATLAB

Delivered by

Dr. Suman Chakraborty


Assistant Professor Department of Mechanical Engineering IIT Kharagpur

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
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-art software for matrix manipulation Standard instructional tool for industrial optimization and advance computations in mathematics, engineering, and science
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

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
MATLAB orientation course: Organized by FOCUS R&D

Components of MATLAB
Basic Window Extensive Help GUI Toolboxes SIMULINK

MATLAB orientation course: Organized by FOCUS R&D

Toolboxes
Control System Financial Image Processing PDE Statistics Communications Fuzzy Logic Neural Network Signal Processing Symbolic Math

And Many More

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
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
MATLAB orientation course: Organized by FOCUS R&D

Basic Window
Menu
Working Directory Command line

File Management

Result Visualization
Working Variables Command History

MATLAB orientation course: Organized by FOCUS R&D

Help and Demo


Access Matlab Help Menu Or Type help in Command Window
Access Matlab Demo Menu Or Type demo in Command Window

Type help subtopic

MATLAB orientation course: Organized by FOCUS R&D

Basics of Programming

MATLAB orientation course: Organized by FOCUS R&D

File Types
.m files

Script (executable program)


Function (user written function)

.fig files

Plot visualization and manipulation

.dat or .mat files

Working with Formatted Data

MATLAB orientation course: Organized by FOCUS R&D

Script and Function Files


Script Files Function Files

Parameter Assignment

Save the file in function name.m


Statement Evaluation

Function Declaration on top Syntax: function [output parameters] = function name (input parameters)
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


MATLAB orientation course: Organized by FOCUS R&D

Creating and Operating with Variables


Scalar # variable with one row and one column >> x = 2; >> y = 3; >> z = x + y; >> w = y x; >> u = y*x; Strings >> sFirst = Hello >> sSecond = All >> sTotal = [sFirst, , sSecond]

Vector # 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

MATLAB orientation course: Organized by FOCUS R&D

Handling Matrices
Initialization Transpose Inverse

Multiplication

Determinant

Eigenvalues

MATLAB orientation course: Organized by FOCUS R&D

Operators
Relational operators
Equal Not equal Less than Greater than Less than or equal == ~= < > <=

Arithmetic operators
Plus 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

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

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

MATLAB orientation course: Organized by FOCUS R&D

WHILE STATEMENTS
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
MATLAB orientation course: Organized by FOCUS R&D

IF-ELSE STATEMENTS
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
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
MATLAB orientation course: Organized by FOCUS R&D

Introduction to 2D and 3D plot

MATLAB orientation course: Organized by FOCUS R&D

Plots Using MATLAB


2-D Graphics
3-D Graphics

MATLAB orientation course: Organized by FOCUS R&D

2-D Graphics
Example: Plot y = sin x in 0 x 2

MATLAB orientation course: Organized by FOCUS R&D

Command Line Plotting

MATLAB orientation course: Organized by FOCUS R&D

Editing Figures
Edit Button Legend

Text

Line or Point Type

Axis Label

MATLAB orientation course: Organized by FOCUS R&D

Command Line Editing

MATLAB orientation course: Organized by FOCUS R&D

Plot in Polar Co-ordinate

MATLAB orientation course: Organized by FOCUS R&D

Fitting Polynomials

MATLAB orientation course: Organized by FOCUS R&D

Data Statistics

MATLAB orientation course: Organized by FOCUS R&D

Plotting polynomials
y = x3 + 4x2 - 7x 10 in 1 x 3

MATLAB orientation course: Organized by FOCUS R&D

Specialized Plots using MATLAB


Bar and Area Graphs Pie Charts Histograms Discrete Data Graphs

MATLAB orientation course: Organized by FOCUS R&D

Bar and Area Plots

MATLAB orientation course: Organized by FOCUS R&D

Pie Charts

MATLAB orientation course: Organized by FOCUS R&D

Histograms

MATLAB orientation course: Organized by FOCUS R&D

Discrete Data Graphs

MATLAB orientation course: Organized by FOCUS R&D

3-D Graphics
Use plot3 in place of plot : Simple Enough !!!!

MATLAB orientation course: Organized by FOCUS R&D

Use of Mesh, Surf, Contour

MATLAB orientation course: Organized by FOCUS R&D

Statistical Analysis

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
MATLAB orientation course: Organized by FOCUS R&D

Other methods of Import


Specialized file reader function
dlmread imread wk1read auread wavread readsnd Read ASCII data file Read image from graphics file Read spreadsheet (WK1) file Read Sun (.au) sound file Read Microsoft WAVE (.wav) sound file Read SND resources and files (Macintosh)

MEX-file to read the data Develop an associated Fortran or C program


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


MATLAB orientation course: Organized by FOCUS R&D

Specialized Write Functions


dlmwrite wk1write imwrite auwrite wavwrite writesnd Write ASCII data file Write spreadsheet (WK1) file Write image to graphics file Write Sun (.au) sound file Write Microsoft WAVE (.wav) sound file Write SND resources and files (Macintosh)

MATLAB orientation course: Organized by FOCUS R&D

Data Statistics
Basic functions for data statistics:
max min mean median std sort sortrows sum Largest component Smallest component Average or mean value Median value Standard deviation Sort in ascending order Sort rows in ascending order Sum of elements

MATLAB orientation course: Organized by FOCUS R&D

More Statistical Functions


prod diff trapz cumsum cumprod cumtrapz Product of elements. Difference function and approximate derivative Trapezoidal numerical integration Cumulative sum of elements Cumulative product of elements Cumulative trapezoidal numerical integration

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
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
MATLAB orientation course: Organized by FOCUS R&D

Plotting Mathematical Functions


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

MATLAB orientation course: Organized by FOCUS R&D

Numerical Analysis

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 Numerical partial derivatives a matrix Discrete Laplacian of a matrix

gradient del2

MATLAB orientation course: Organized by FOCUS R&D

Functions for Fourier Analysis


fft fft2 Discrete Fourier transform Two-dimensional discrete Fourier transform N-dimensional discrete Fourier transform. Inverse discrete Fourier transform Two-dimensional inverse discrete Fourier transform N-dimensional inverse discrete Fourier transform Magnitude Phase angle
MATLAB orientation course: Organized by FOCUS R&D

fftn ifft ifft2 ifftn


abs angle

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
MATLAB orientation course: Organized by FOCUS R&D

Overdetermined Equation

With a, b dataset fitting equation is predicted as

b(a) c1 c2e a

MATLAB finds C1 = 0.4763 and C2 = 0.3400 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

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

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 Vector specifying the interval of integration. For a two-element vector tspan = [t0 tfinal], the solver integrates from t0 to tfinal. Vector of initial conditions for the problem.

tspan
y0 Output: T Y

Column vector of time points Solution array. Each row in Y corresponds to the solution at a time returned in the corresponding row of T
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 Simpsons Rule quad8 Adaptive Newton Cotes 8 panel rule
MATLAB orientation course: Organized by FOCUS R&D

Numerical Integration - Example

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


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

MATLAB orientation course: Organized by FOCUS R&D

Symbolic Mathematics

MATLAB orientation course: Organized by FOCUS R&D

Symbolic Mathematics
The Symbolic Math Toolboxes include symbolic computation into MATLABs numeric environment

Facilities Available with Symbolic Math Toolboxes contain Calculus, Linear Algebra, Simplification, Solution of Equations, Variable-Precision Arithmetic, Transforms and Special Applied Functions
MATLAB orientation course: Organized by FOCUS R&D

Demonstrations
Command Line Demonstrations are available with Symbolic Math Toolboxes

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


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
MATLAB orientation course: Organized by FOCUS R&D

Thank You

MATLAB orientation course: Organized by FOCUS R&D

Das könnte Ihnen auch gefallen