Demo on Matlab
-
Upload
loganathan -
Category
Documents
-
view
227 -
download
5
Transcript of Demo on Matlab
INTRODUCTIONTO
MATLABBy
K.Kiran Kumar
Assistant professor
Mechanical engineering department
B.S.Abdur Rahman University
Email:- [email protected]
Ph.no:- 9047475841
WHAT IS MATLAB?
MATLAB (MATrix LABoratory) is basically a high level language
which has many specialized toolboxes for making things easier for us.
MATLAB is a program for doing numerical computation. It wasoriginally designed for solving linear algebra type problems usingmatrices. It‟s name is derived from MATrix LABoratory.
MATLAB has since been expanded and now has built-in functions forsolving problems requiring data analysis, signal processing, optimization,and several other types of scientific computations. It also containsfunctions for 2-D and 3-D graphics and animation.
Powerful, extensible, highly integrated computation, programming,visualization, and simulation package.
Widely used in engineering, mathematics, and science.
Why?
FEATURES
o MATLAB is an interactive system for doing
numerical computations. MATLAB makes use of
highly respected algorithms and hence you can be
confident about your results.
Powerful operations can be performed using just
one or two commands. You can also build your
own set of functions. Excellent graphics facilities
are included.
Intro MATLAB
MATLAB TOOLBOXES
Signal & Image Processing
Signal Processing
Image Processing
Communications
Frequency Domain Identification
Higher-Order Spectral Analysis
System Identification
Wavelet
Filter Design
Control Design
Control System
Fuzzy Logic
Robust Control
μ-Analysis and Synthesis
Model Predictive Control
Math and Analysis
Optimization
Requirements Management Interface
Statistics
Neural Network
Symbolic/Extended Math
Partial Differential Equations
PLS Toolbox
Mapping
Spline
Data Acquisition and Import
Data Acquisition
Instrument Control
Excel Link
Portable Graph Object
A simulation tool for dynamic systems
Simulink library Browser:
Collection of sources, system modules, sinks
SIMULINK
System
Input Output
Steps in creating a model Open the library of blocks (Library Browser)
► Icon on Matlab toolbar
► Matlab start button > Simulink > Library Browser
>> simulink % from Command Window
Open a new model (Icon on Library toolbar)
Drag blocks from Library to model window
Connect blocks with arrows
Edit parameters for blocks (double click on block)
Annotate with text as desired (double click at spot)
Run simulation by clicking on toolbar Run icon (►)
CONTD…..
WHAT ARE WE INTERESTED IN?
Matlab is too broad tool used in industry and Research
purposes also.
For our course purpose in this part of lab course we
will have brief review of basics and learn what can be
done with Matlab.
MATLAB SCREEN
VARIABLES
No need for types. i.e.,
int a;
double b;
float c;
Accuracy and comfort is very high with matlab codes.
>>x=5;
>>x1=2;
ARRAY, MATRIX
LONG ARRAY, MATRIX
GENERATING VECTORS FROM FUNCTIONS
MATRIX INDEX
OPERATORS (ARITHMETIC)
MATRICES OPERATIONS
THE “DOT OPERATOR”
By default and whenever possible MATLAB will perform true matrix operations (+ - *). The operands in every arithmetic expression are considered to be matrices.
If, on the other hand, the user wants the scalar version of an operation a “dot” must be put in front of the operator, e.g., .*. Matrices can still be the operands but the mathematical calculations will be performed element-by-element.
A comparison of matrix multiplication and scalar multiplication is shown on the next slide.
OPERATORS (ELEMENT BY ELEMENT)
Intro MATLAB
DOT OPERATOR EXAMPLE
>> A = [1 5 6; 11 9 8; 2 34 78]
A =
1 5 6
11 9 8
2 34 78
>> B = [16 4 23; 8 123 86; 67 259 5]
B =
16 4 23
8 123 86
67 259 5
Intro MATLAB
DOT OPERATOR EXAMPLE (CONT.)
>> C = A * B % “normal” matrix multiply
C =
458 2173 483
784 3223 1067
5530 24392 3360
>> CDOT = A .* B % element-by-element
CDOT =
16 20 138
88 1107 688
134 8806 390
THE USE OF “.” -OPERATION
MATLAB FUNCTIONS
COMMON MATH FUNCTIONS
BUILT-IN FUNCTIONS FOR HANDLING ARRAYS
MATLAB BUILT-IN ARRAY FUNCTIONS
Standard Arrays» eye(2)
ans =
1 0
0 1
» eye(2,3)
ans =
1 0 0
0 1 0
»
Other such arrays:
ones(n), ones(r, c)
zeros(n), zeros(r, c)
rand(n), rand(r,c)
RANDOM NUMBERS GENERATION
COMPLEX NUMBERS HANDLING
FUNCTIONS
2-D plotting functions
>> plot(x,y) % linear Cartesian
>> semilogx(x,y) % logarithmic abscissa
• uses base 10 (10n for axis units)
>> semilogy(x,y) % logarithmic ordinate
• uses base 10 (10n for axis units)
>> loglog(x, y) % log scale both dimensions
• uses base 10 (10n for axis units)
>> polar(theta,rho) % angular and radial
GRAPHICS AND DATA DISPLAY
2-D display variants
Cartesian coordinates>> bar(x,y) % vertical bar graph
>> barh(x,y) % horizontal bar graph
>> stem(x,y) % stem plot
>> area(x,y) % color fill from horizontal axis to line
>> hist(y,N) % histogram with N bins (default N = 10)
Polar coordinates>> pie(y)
>> rose(theta,N) % angle histogram, N bins (default 10)
CONTINUED..
3-D Plotting syntax
Line
>> plotfunction(vector1, vector2, vector3)
Vector lengths must be the same
► Example
>> a = 1:0.1:30;
>> plot3( sin(a), cos(a), log(a) )
Pie>> pie3(vector)
One dimensional data, but 3-D pie perspective
GRAPHICS AND DATA DISPLAY
3-D surface plotting functions
>> contour(x,y,Z) % projection into X-Y plane
>> surf(x,y,Z) % polygon surface rendering
>> mesh(x,y,Z) % wire mesh connecting vertices
>> waterfall(x,y,Z)
• like mesh but without column connection lines
• used for column-oriented data
GRAPHICS AND DATA DISPLAY
BASIC TASK: PLOT THE FUNCTION
SIN(X) BETWEEN 0≤X≤4Π
PLOT THE FUNCTION E-X/3SIN(X)
BETWEEN 0≤X≤4Π
PLOT THE FUNCTION e-X/3SIN(X)
BETWEEN 0≤X≤4Π
DISPLAY FACILITIES
CONTD..
LINE SPECIFIERS IN THE plot() COMMAND
Line Specifier Line Specifier Marker Specifier
Style Color Type
Solid - red r plus sign +
dotted : green g circle o
dashed -- blue b asterisk *
dash-dot -. Cyan c point .
magenta m square s
yellow y diamond d
black k
plot(x,y,‘line specifiers’)
MULTIPLE GRAPHS
t=0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
plot(t,y1,t,y2);
grid on
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
MULTIPLE PLOTS
subplot(i,j,k)
• i is the number of rows of subplots in the plot• j is the number of columns of subplots in the plot• k is the position of the plot
t=0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
subplot(2,2,1)
plot(t,y1)
grid on
subplot(2,2,2)
plot(t,y2);
grid on
0 2 4 6 8-1
-0.5
0
0.5
1
0 2 4 6 8-1
-0.5
0
0.5
1
Plots
» x = 1:2:50;
» y = x.^2;
» plot(x,y)
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
2000
2500
Plots
» plot(x,y,'*-')
» xlabel('Values of x')
» ylabel('y')
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
2000
2500
Values of x
y
Plots
» P = logspace(3,7);
» Q = 0.079*P.^(-0.25);
» loglog(P,Q, '.-')
» grid
103
104
105
106
107
10-3
10-2
10-1
INTERESTING FEATURE OF GENERATING
SINE CURVE
x = 0:0.05:6;
y = sin(pi*x);
Y = (y >= 0).*y;
plot(x,y,':',x,Y,'-')
0 1 2 3 4 5 6-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
OPERATORS (RELATIONAL, LOGICAL)
POLYNOMIALS
MATLAB FUNCTIONS FOR POLYNOMIALS
Contd..
Representing Polynomials:x4 - 12x3 + 25x + 116» P = [1 -12 0 25 116];
» roots(P)
ans =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
» r = ans;
» PP = poly(r)
PP =
1.0000 -12.0000 -0.0000 25.0000 116.0000
Polynomial Multiplication
a = x3 + 2x2 + 3x + 4b = 4x2 + 9x + 16
» a = [1 2 3 4];
» b = [4 9 16];
» c = conv(a,b)
c =
4 17 46 75 84 64
»
Evaluation of a
Polynomial
a = x3 + 2x2 + 3x + 4
» polyval(a, 2)
ans =
26
»
Polynomial Curve Fitting
» x = [1 3 7 21];
» y = [2 9 20 55];
» polyfit(x,y,2)
ans =
-0.0251 3.1860 -0.8502
Symbolic Math
» syms x
» int('x^3')
ans =
1/4*x^4
» eval(int('x^3',0,2))
ans =
4
»
Solving Nonlinear
Equationsnle.m
function f = nle(x)
% To solve
% f1(x1,x2) = x1^2 - 4x1^2 - x1x2 = 0
% f2(x1,x2) = 2x^2 - x2^2 + 3x1x2 = 0
f(1) = x(1) - 4*x(1)*x(1) - x(1)*x(2);
f(2) = 2*x(2) - x(2)*x(2) + 3*x(1)*x(2);
Program:-
» x0 = [1 1]';
» x = fsolve('nle', x0)
Solution:-
x =
0.2500
0.0000
TO FIND EIGEN VALUES AND EIGEN
VECTORS OF MATRICES
CONTINUED…
WHAT IS THE TIME YOU TAKE TO SOLVE
LINEAR EQUATIONS
Solve manually and tell me what is the answer..?
That is find out x=
y=
z=
SOLVING SET OF SIMULTANEOUS
EQUATIONS
DIFFERENTATION
SOLVING DIFFERENTIAL EQUATIONS
PERFORMING INTEGRATION
FLOW CONTROL
CONTROL STRUCTURES
CONTROL STRUCTURES
CONTROL STRUCTURES
IF STATEMENT
n = input(„Enter the upper limit: „);
if n < 1
disp („Your answer is meaningless!‟)
end
x = 1:n;
term = sqrt(x);
y = sum(term)
Jump to here if TRUE
Jump to here if FALSE
EXAMPLE PROGRAM TO EXPLAIN IF LOOP
% Program to find whether roots are imaginary or not%
clc;
clear all;
a=input('enter value of a:');
b=input('enter value of b:');
c=input('enter value of c:');
discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
end
Solution:-
Input:
enter value of a:1
enter value of b:2
enter value of c:3
Output:
Warning: discriminant is negative, roots are imaginary
EXAMPLE OF IF ELSE STATEMENT
>> A = 2; B = 3;
>> if A > B
'A is bigger'
elseif A < B
'B is bigger'
elseif A == B
'A equals B'
else
error('Something odd is happening')
end
ans =
B is bigger
IF STATEMENT EXAMPLE
Here are some examples based on the familiar quadratic formula.
1. discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
end
2. discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
else
disp('Roots are real, but may be repeated')
end
3. discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
elseif discr == 0
disp('Discriminant is zero, roots are repeated')
else
disp('Roots are real')
end
EXAMPLE OF FOR LOOP
a.)
for ii=1:5
x=ii*ii
end
Solution:-
X= 1 4 9 16 25
b.)
Problem: Draw graphs of sin(nπ x) on the interval −1 ≤ x ≤ 1 for
n = 1,2,....,8.We could do this by giving 8 separate plot
commands but it is much easier to use a loop.
Program:-
x=-1:0.05:1;
for n=1:8
subplot(4,2,n);
plot(x, sin(n*pi*x));
end
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
-1 -0.5 0 0.5 1-1
0
1
EXAMPLE OF FOR & WHILE LOOP
% example of for loop%
Program:-
for ii=1:5
x=ii*ii
End
Solution:
1 4 9 16 25
%example of while loop%
Program:-
x = 1
while x <= 10
x = 3*x
End
Solution:
x=1 x=3 x= 9 x=27
Code:-
x = 1
while x <= 100
x = 3*x
end
Solution:-
X= 1 3 9 27
GENERATION OF FIBONACCI SERIES AND PLOT
clc;
clear all
hold off;
F(1) = 0;
F(2) = 1;
for i = 3:20
F(i) = F(i-1) + F(i-2);
end
plot(1:19, F(1:19)./F(2:20),'o' )
xlabel('n')
hold on
plot(1:19, F(1:19)./F(2:20),'-' )
legend('Ratio of terms f_{n-1}/f_n')
plot([0 20], (sqrt(5)-1)/2*[1,1],'--')
hold off
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
n
Ratio of terms fn-1
/fn
The Fibonnaci sequence starts off with the numbers
0 and 1, then succeeding terms are the sum of its
two immediate predecessors.
Mathematically, f1 = 0, f2 = 1 and
fn = fn−1 + fn−2 , n = 3, 4,5,......
WHILE LOOP EXAMPLES
Problem 1.
Program:-
S = 1;
n = 1;
while S+(n+1)^2 < 100
n = n+1;
S = S + n^2;
end
[n,S]
Solution:-
ans = 6 91
CONTINUED…
Find the approximate root of the equation x = cos x .We can do this by making a guess x1 = π / 4 ,say,
then computing the sequence of values
xn = cos xn−1 , n = 2, 3, 4,....... and continuing until the difference between two successive
values xn − xn−1 is small enough.
Program:-
x = zeros(1,20); x(1) = pi/4;
n = 1; d = 1;
while d > 0.001
n = n+1; x(n) = cos(x(n-1));
d = abs(x(n)-x(n-1));
End
Solution:-
n = 14
x =
Columns 1 through 9
0.7854 0.7071 0.7602 0.7247 0.7487 0.7326 0.7435 0.7361 0.7411
Columns 10 through 18
0.7377 0.7400 0.7385 0.7395 0.7388 0 0 0 0
Columns 19 through 20
0 0
SWITCH STATEMENT EXAMPLE
Program:-n=input(„enter the value of n: ‟);
switch(rem(n,3))
case 0
m = 'no remainder'
case 1
m = „the remainder is one'
case 2
m = „the remainder is two'
otherwise
error('not possible')
end
Solution:-enter the value of n: 8
m =the remainder is two
Last but not least…!
Excellent topic on Plotting userdefined
observations of the theoritical and
Experimental observations
FORMATTING PLOTS
A plot can be formatted to have a required appearance.
With formatting you can:
Add title to the plot.
Add labels to axes.
Change range of the axes.
Add legend.
Add text blocks.
Add grid.
FORMATTING PLOTS
There are two methods to format a plot:
1. Formatting commands.
In this method commands, that make changes or additions to the
plot, are entered after the plot() command. This can be done in
the Command Window, or as part of a program in a script file.
2. Formatting the plot interactively in the Figure Window.
In this method the plot is formatted by clicking on the plot and
using the menu to make changes or add details.
FORMATTING COMMANDS
title(‘string’)
Adds the string as a title at the top of the plot.
xlabel(‘string’)
Adds the string as a label to the x-axis.
ylabel(‘string’)
Adds the string as a label to the y-axis.
axis([xmin xmax ymin ymax])
Sets the minimum and maximum limits of the x- and y-axes.
FORMATTING COMMANDS
legend(‘string1’,’string2’,’string3’)
Creates a legend using the strings to label various curves (when
several curves are in one plot). The location of the legend is
specified by the mouse.
text(x,y,’string’)
Places the string (text) on the plot at coordinate x,y relative to the
plot axes.
gtext(‘string’)
Places the string (text) on the plot. When the command executes
the figure window pops and the text location is clicked with the
mouse.
EXAMPLE PROGRAM
clc;
clear all;
x=[10:0.1:22];
y=95000./x.^2;
xd=[10:2:22];
yd=[950 640 460 340 250 180 140];
plot(x,y,'-','LineWidth',1.0)
hold on
plot(xd,yd,'ro--','linewidth',1.0,'markersize',10)
hold off
xlabel('DISTANCE (cm)')
ylabel('INTENSITY (lux)')
title('\fontname{Arial}Light Intensity as a Function of Distance','FontSize',14)
axis([8 24 0 1200])
text(14,700,'Comparison between theory and
experiment.','EdgeColor','r','LineWidth',2)
legend('Theory','Experiment',0)
8 10 12 14 16 18 20 22 240
200
400
600
800
1000
1200
DISTANCE (cm)
INT
EN
SIT
Y (
lux)
Light Intensity as a Function of Distance
Comparison between theory and experiment.
Theory
Experiment
MATLAB OPEN RESOURCES
www.mathworks.com/
www.mathtools.net/MATLAB
www.math.utah.edu/lab/ms/matlab/matlab.html
web.mit.edu/afs/athena.mit.edu/software/matlab/
www.utexas.edu/its/rc/tutorials/matlab/
www.math.ufl.edu/help/matlab-tutorial/
www.indiana.edu/~statmath/math/matlab/links.html
www.eng.cam.ac.uk/help/tpl/programs/matlab.html
THANK YOU…
Any Questions ?