Matlab solved problems

18,908 views 137 slides Jul 20, 2017
Slide 1
Slide 1 of 137
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137

About This Presentation

Matlab solved problems


Slide Content

MotivationHow it is useful for:Summary
A Layman Approach

[email protected]
Command Window
Command History
Workspace
MATLAB GUI

[email protected]
Desktop Tools
Command Window
type commands
Workspace
view program variables clearto clear double click on a variable to see it in the Array E ditor
Command History
view past commands save a whole session using diary

[email protected]
Matrices
• A vector
x = [1 2 5 1]
x =
1 2 5 1
• A matrix
x = [1 2 3; 5 1 4; 3 2 -1]
x =
1 2 3
5 1 4
3 2 -1
• Transpose
y = x.’ y =
1
2
5
1

[email protected]
Matrices (Contd…)
• x(i,j) subscription
• whole row
• whole column
y = x(2,3)
y =
4
y = x(3,:)
y =
3 2 -1
y = x(:,2)
y = 2
1
2
Let, x = [ 1 2 3
5 1 4
3 2 -1]

[email protected]
Operators (Arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
‘ complex conjugate
transpose
.* element-by-element mult
./ element-by-element div
.^ element-by-element power
.‘ transpose

[email protected]
Operators (Relational, Logical)
== equal
~= not equal
< less than
<= less than or equal
> greater than
>= greater than or equal
& AND
| OR
~ NOT
1

pi 3.14159265…
j imaginary unit,
i same as j

[email protected]
Generating Vectors from functions
• zeros(M,N) MxN matrix of zeros
• ones(M,N) MxN matrix of ones
• rand(M,N) MxN matrix of uniformly
distributed random numbers
on (0,1)
x = zeros(1,3)
x =
0 0 0
x = ones(1,3)
x =
1 1 1
x = rand(1,3)
x =
0.9501 0.2311 0.6068

[email protected]
Operators (in general)
[ ]concatenation
( )subscription
x = [ zeros(1,3) ones(1,2) ]
x =
0 0 0 1 1
x = [ 1 3 5 7 9]
x =
1 3 5 7 9
y = x(2)
y =
3
y = x(2:4)
y =
3 5 7

[email protected]
MATRIX OPERATIONS
Let, A = eye(3)
>> A = [ 1 0 0
0 1 0
0 0 1 ]
>>
eig(A)
ans =
1
1
1
>>
inv(A)
ans =
1 0 0
0 1 0
0 0 1
>>
A'
ans =
1 0 0
0 1 0
0 0 1
>>
A*A
ans=
1 0 0
0 1 0
0 0 1

[email protected]
MATRIX OPERATIONS (Contd…)
Let, >> A = [1 2 3;4 5 6;7 8 9]
A = [ 1 2 3
4 5 6
7 8 9 ]
>>
eig(A)
ans =
16.1168
-1.1168
-0.0000
>>
B=A'
B =
1 4 7
2 5 8
3 6 9
>>
C=A*B
C =
14 32 50
32 77 122
50 122 194
>>
D=A.*B
D =
1 8 21
8 25 48
21 48 81

[email protected]
QUESTIONS ?

[email protected]
Applications of MATLAB
(Lecture 3)
P Bharani Chandra Kumar

[email protected]
Overview
Linear algebra
Solving a linear equation Finding eigenvalues and eigenvectors
Curve fitting and interpolation Data analysis and statistics Nonlinear algebraic equations

[email protected]
Linear Algebra
Solving a linear system
Find the values of x, y and z for the following equations:
5x = 3y – 2z +10
8y +4z = 3x + 20
2x + 4y - 9z = 9
Step 1: Rearrange equations:
5x - 3y + 2z     =   10
- 3x + 8y +4z   =   20
2x + 4y - 9z     =    9
Step 2: Write the equations in matrix form:
[A] x = b













=
9 4 2
4 8 3
2 3 5
A










=
9
20
10
b

[email protected]
Linear Algebra (Contd…)
Step 3: Solve the matrix equation in MATLAB: >> A = [ 5 -3 2; -3 8 4; 2 4 -9];
>> b = [10; 20; 9]
>> x = A\ b
x =
3.442
3.1982
1.1868
% Veification >> c = A*x
>> c =
10.0000
20.0000
9.0000

[email protected]
Finding eigenvaluesand eigenvectors
Eigenvalue problem in scientific computations shows up as:
A v = λv
The problem is to find ‘λ’ and ‘v’ for a given ‘A’ so that above eq. 
is satisfied:
Method 1
: Classical method by using pencil and paper:
a) Finding eigenvalues from the determinant eqn. 
b) Sole for ‘n’
eigenvectors by substituting the corresponding                 
eigenvalues in above eqn.
0= −I A
λ
Linear Algebra (Contd…)

[email protected]
Method 2: 
By using MATLAB:
Step 1: Enter matrix A and type [V, D] = eig(A)
>> A = [ 5 -3 2; -3 8 4; 2 4 -9];
>> [V, D] = eig(A)
V =
-0.1709 0.8729 0.4570
-0.2365 0.4139 -0.8791
0.9565 0.2583 -0.1357
D =
-10.3463 0 0
0 4.1693 0
0 0 10.1770
Linear Algebra (Contd…)

[email protected]
Step 2: Extract what you need:
‘V’ is an ‘n x n’ matrix whose columns are eigenvectors 
D is an ‘n x n’ diagonal matrix that has the eigenvalues of 
‘A’ on its diagonal.
Linear Algebra (Contd…)

[email protected]
Cross check: Let us check 2nd eigenvalue and second eigenvector  will
satisfy A v = λv or not:
v2=V(:,2) % 2nd column of V
v2 =
0.8729
0.4139
0.2583
>> lam2=D(2,2) % 2nd eigevalue
lam2 =
4.1693
>> A*v2-lam2*v2
ans = 1.0e-014 *
0.0444
-0.1554
0.0888
Linear Algebra (Contd…)

[email protected]
Curve Fitting
What is curve fitting ? It is a technique of finding an algebraic relationship that “best”
fits a given set of data.
There is no magical function that can give you this relationship. You have to have an idea of what kind of relationship might exist 
between the input data (x) and output data (y).
If you 
do not
have a firm idea but you have data that you trust, 
MATLAB can help you to explore the best possible fit.

[email protected]
Curve Fitting (Contd…)
Example 1 : straight line (linear) fit: Step 1: Plot raw data:
Enter the data in MATLAB and plot it:
>> x = [ 5 10 20 50 100];
>> y = [15 33 53 140 301];
>> plot (x,y,’o’)
>> grid
301 140 53 33 15 Y
100 50 20 10 5 x

[email protected]
Curve Fitting (Contd…)
Example 2 : Comparing different fits:
x = 0: pi/30 : pi/3
y = sin(x) + rand (size(x))/100
Step 1: Plot raw data:
>> plot (x,y,’o’)
>> grid
Step 2: Use basic fitting to do a quadratic and cubic fit
Step 3 : Choose the best fit based on the residuals

[email protected]
Interpolation
What is interpolation ? It  is  a  technique  of  finding  a  functional  relations hip  between 
variables such that a given set of discrete values of the variables 
satisfy that relationship.
Usually, we get a finite set of data points from experiments. When we want to pass a smooth curve through these points or 
find  some  intermediate  points,  we  use  the  technique  of 
interpolation.
Interpolation  is  NOT  curve  fitting,  in  that  it  requires  the 
interpolated curve to pass through all the data points.
Data can be interpolated using 
Splines or Hermite interpolants
.

[email protected]
Interpolation (Contd…)
MATLAB  provides  the  following  functions  to  facilitate 
interpolation:
interp1 :
One data interpolation i.e. given y
i
and x
i, finds y
j
at 
desired x
j
from y
j
= f(x
j).
ynew = interp1(x,y,xnew, method)
interp2
:  Two  dimensional  data  interpolation  i.e.  given  z
i
at 
(x
i,y
i) from z = f(x,y). 
znew = interp2(x,y,z,xnew,ynew, method)
interp3
: Three dimensional data interpolation i.e. given v
i
at 
(xi,yi,z
i) from v = f(x,y,z). 
vnew = interp2(x,y,z,v,xnew,ynew,znew,
method)
spline : ynew = spline(x,y,xnew, method)

[email protected]
Interpolation (Contd…)
Example: 
x = [1 2 3 4 5 6 7 8
9]
y = [1
4 9 16 25 36 49
64 81]
Find the value of 5.5?
Method 1: Linear Interpolation
MATLAB Command
:
>> yi=interp1(x,y,5.5,'linear')
yi = 30.5000

[email protected]
Interpolation (Contd…)
Method 2: Cubic Interpolation
MATLAB Command
:
>> yi = interp1(x,y,5.5,’cubic')
yi =
30.2479
Method 3: Spline Interpolation
MATLAB Command
:
>> yi = interp1(x,y,5.5,’spline')
yi =
30.2500
Note: 5.5*5.5
=

[email protected]
Data Analysis and statistics
It  includes  various  tasks,  such  as  finding  mean,  median, 
standard deviation, etc.
MATLAB provides an easy graphical interface to do such type of
tasks.
As a first step, you should plot your data in the form you wish.
Then go to the figure window and select 
data statistics
from the 
tools menu. 
Any  of  the  statistical  measures  can  be  seen  by  chec king  the 
appropriate box.

[email protected]
Data Analysis and statistics (Contd…)
Example: 
x = [1 2 3 4 5 6 7 8
9]
y = [1
4 9 16 25 36 49
64 81]
Find the minimum value, maximum value, mean, median?

[email protected]
Data Analysis and statistics (Contd…)

[email protected]
Data Analysis and statistics (Contd…)

[email protected]
Data Analysis and statistics (Contd…)

[email protected]
Data Analysis and statistics (Contd…)
It can be performed directly by using MATLAB commands also:
Consider:
x = [1 2 3 4 5]
mean (x) :
Gives arithmetic mean of ‘x’ or the avg. data.
MATLAB usage: mean (x) gives 3. 
median (x) :
gives the middle value or arithmetic mean of two middle 
Numbers.
MATLAB usage: median (x) gives 3.
Std(x):
gives the standard deviation 
Max(x)/min(x):
gives the largest/smallest value

[email protected]
Solving nonlinear algebraic equations
Step 1: Write the equation in the standard form:
f(x) = 0
Step 2: Write a function that computes f(x).
Step 3: Use the built-in function 
fzero
to find the solution
.
Example 1: Solve
Solution:
x= fzero('sin(x)-exp(x)+5',1)
x =
1.7878
5 sin− =
x
ex

[email protected]
Solving nonlinear algebraic equations
(contd…)
5 sin− =
x
ex
• Example 2: Solve
Solution:
x= fzero(‘x*x-2*x+4',1)
x =
1.7878
04 2
2
=+ −x x

[email protected]
QUESTIONS ?

[email protected]
Optimization Techniques
through MATLAB
(Lecture 4)
P Bharani Chandra Kumar

[email protected]
Overview
Unconstrained Optimization Constrained Optimization Constrained Optimization through gradients

[email protected]
Why Optimize!
Engineers are always interested in finding the 
‘best’ solution to the problem at hand
Fastest Fuel Efficient
Optimization theory allows engineers to 
accomplish this
Often the solution may not be easily obtained In the past, it has been surrounded by certain 
mistakes

[email protected]
The Greeks started it!
Queen Dido of Carthage (7 century 
BC)
– Daughter of the king of Tyre
– Agreed to buy as much land as 
she  could  “enclose  with  one 
bull’s hide”
– Set  out  to  choose  the  largest 
amount  of  land possible,  with 
one border along the sea
• A  semi-circle  with  side 
touching the ocean
• Founded Carthage
– Fell  in  love  with  Aeneas  but 
committed suicide when he left.

[email protected]
The Italians Countered
Joseph Louis Lagrange (1736-1813)
His work Mécanique Analytique (Analytical 
Mechanics)(1788)  was  a  mathematical 
masterpiece 
Invented the method of ‘variations’ which 
impressed Euler and became ‘calculus of 
variations’
Invented  the  method  of  multipliers 
(Lagrange multipliers)
Sensitivities of the performance index to 
changes in states/constraints Became  the  ‘father’ of  ‘Lagrangian’
Dynamics
Euler-Lagrange Equations

[email protected]
The Multi-Talented Mr. Euler
Euler (1707-1783)
Friend of Lagrange Published a treatise which became 
the  de  facto  standard  of  the 
‘calculus of variations’
The  Method  of  Finding  Curves 
that  Show  Some  Property  of 
Maximum or Minimum
He  solved  the  brachistachrone
(brachistos=  shortest, chronos= 
time) problem very easily
Minimum  time  path  for  a  bead 
on a string, Cycloid

[email protected]
Hamilton and Jacobi
William Hamilton (1805-1865)
Inventor of the quaternion
Karl Gustav Jacob Jacobi (1804-
1851)
Discovered ‘conjugate points’ in 
the fields of extremals
Gave an insightful treatment to 
the second variation
Jacobi criticized Hamilton’s work
Hamilton-Jacobi equation Became the basis of Bellman’s 
work 100 years later

[email protected] to Optimize?
Engineers  intuitively  know  what  they  are 
interested in optimizing
Straightforward problems
Fuel Time Power Effort
More complex
Maximum margin Minimum risk
The mathematical quantity we optimize is called 
a cost function
or performance index

[email protected]
Optimization through MATLAB
Consider initially the problem of finding a minimum 
to the function:
MATLAB function FMINCON solves problems of the form:
min F(X)
subject to:
A*X  <= B,  Aeq*X  = Beq
(linear constraints)
C(X) <= 0,  Ceq(X)  = 0
(nonlinear constraints)
LB  <= X  <= UB 

[email protected]
X = FMINCON(FUN,X0,A,B)
starts at X0 and finds a minimum 
X to the function FUN, subject to the linear inequalities 
A*X <= B

X=FMINCON(FUN,X0,A,B,Aeq,Beq)
minimizes FUN subject to 
the linear equalities:
Aeq*X = Beq as well as A*X <= B.
(Set A=[ ] and B=[ ] if no inequalities exist.)
Optimization through MATLAB
(Contd…)

[email protected]
X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB
)  defines  a  set  of 
lower and upper  bounds on the design variables, X, so that the 
solution is in   the range 
LB <= X <= UB

Use empty matrices for LB and UB  if no bounds exist.
Set LB(i) = -Inf if X(i) is unbounded below; and set UB(i) = Inf if X(i) 
is unbounded above.
X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)
subjects 
the minimization to the  constraints defined in NONLCON. 
The function NONLCON accepts X and returns    the vectors C and 
Ceq,  representing  the  nonlinear  inequalities  and  equalities 
respectively. 
Optimization through MATLAB
(Contd…)

[email protected]
UnonstrainedOptimization : Example Consider the above problem with no constraints: Solution by MATLAB:
Step 1: 
Create an inline object of the function to be minim ized
fun = inline('exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 +
4*x(1)*x(2) + 2*x(2) + 1)');
Step 2: Take a guess at the solution:
x0 = [-1 1];
Step 3: Solve using 
fminunc
function:
[x, fval] = fminunc(fun, x0);
)1 2 4 2 4( )(
2 2
+ + + + =y xy y x e xf
x

[email protected]
Unconstrained Optimization : Example
(Contd…)
>> 
x =
0.5000 -1.0000
>> fval =
1.3028e-010

[email protected]
Constrained Optimization : Example
Consider initially the problem of finding a minimum 
to the function:
Subjected to:
1.5 + x(1).x(2) - x(1) - x(2) < = 0
- x(1).x(2)               < = 10
)1 2 4 2 4( )(
2 2
+ + + + =y xy y x e xf
x

[email protected]
Constrained Optimization : Example
(contd…) Solution using MATLAB:
Step 1: Write the m-file for objective function:
function f = objfun(x)
% objective function
f=exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) +
2*x(2) + 1);
Step 2: Write the m-file for constraints: function [c, ceq] = confun(x)
% Nonlinear inequality constraints:
c = [1.5 + x(1)*x(2) - x(1) - x(2);
-x(1)*x(2) - 10];
% no nonlinear equality constraints:
ceq = [];

[email protected]
Constrained Optimization : Example
(contd…)
Step 3:
Take a guess at the solution
x0 = [-1 1];
options =
optimset('LargeScale','off','Display','iter');
% We have no linear equalities or inequalities or
bounds,
% so pass [] for those arguments
[x,fval,exitflag,output] =
fmincon('objfun',x0,[],[],[],[],[],[],'confun',options)
;

[email protected]
max Directional
Iter F-count f(x) constraint Step-size derivative
Procedure
1 3 1.8394 0.5 1 0.0486
2 7 1.85127 -0.09197 1 -0.556 Hessian
modified twice
3 11 0.300167 9.33 1 0.17
4 15 0.529834 0.9209 1 -0.965
5 20 0.186965 -1.517 0.5 -0.168
6 24 0.0729085 0.3313 1 -0.0518
7 28 0.0353322 -0.03303 1 -0.0142
8 32 0.0235566 0.003184 1 -6.22e-006
9 36 0.0235504 9.032e-008 1 1.76e-010 Hessian
modified
Optimization terminated successfully:
% A solution to this problem has been found at:
x
x =
-9.5474 1.0474

[email protected]
% The function value at the solution is:
fval
fval =
0.0236
% Both the constraints are active at the solution:
[c, ceq] = confun(x)
c =
1.0e-014 *
0.1110
-0.1776
ceq =
[]

[email protected]
QUESTIONS ?

[email protected]
System Identification
(Lecture 5)
P Bharani Chandra Kumar

[email protected]
Overview
Introduction Basic questions about system identification Common terms used in system identification Basic information about dynamical systems Basic steps for system identification An exciting example

[email protected]
Introduction
What is system identification?
Can you Say
What is this!
Cold WaterHot Water
Water
Heater

[email protected]
What is system identification?
Determining  system  dynamics  from  input-output 
data
Generate  enough  data  for  estimation  and 
validation
Select range for estimation and validation Select order of the system Check  for  best  fit  and  determine  the  system 
dynamics

[email protected]
Basic questions about system 
identification What is system identification?
IIt enables you to build mathematical models of a 
dynamic system based on measured data. 
IYou adjust the parameters of a given model until its 
output  coincides  as  well  as  possible  with  the 
measured output.
How do you know if the model is any good?
IA good test is to compare the output of the model to 
measured data that was not used for the fit.

[email protected]
Basic questions about system 
identification (contd…) What models are most common?
IThe most common models are difference-equation 
descriptions, such as ARX and ARMAX models, as 
well as all types of linear state-space models.
• Do you have to assume a model of a particular 
type?
IFor  parametric  models,  you  specify  the  model 
structure. This can be as easy as selecting a single 
integer -- the model order -- or it can involve several 
choices. 

[email protected]
Basic questions about system 
identification (contd…) What  does  the  System  Identification  Toolbox 
contain? IIt  contains  all  the  common  techniques  used  to 
adjust parameters in all kinds of linear models.
• How do I get started? IIf  you  are  a  beginner,  browse  through  The 
Graphical  User  Interface.  Use  the  graphical  user 
interface  (GUI)  and  check  out  the  built-in  help 
functions.

[email protected]
Basic questions about system 
identification (contd…) Is this really all there is to system identificatio n?
IThere  is  a  great  deal  written  on  the  subject  of 
system identification. 
IHowever,  the  best  way  to  explore  system 
identification is by working with real data.
IIt  is  important  to  remember  that  any  estimated 
model, no matter how good it looks on your screen, 
is only a simplified reflection of reality. 

[email protected]
Common terms used in system 
identification  Estimation data:  The data set that is used to create 
a model of the data. 
Validation  data:  The  data  set  (different  from 
estimation data) that is used to validate the model. 
Model  views: The  various ways of inspecting the 
properties of a model, such as zeros and poles, as 
well as transient and frequency responses.

[email protected]
Common terms used in system 
identification (contd…) Model  sets  or  model  structures  are  families  of 
models with adjustable parameters. 
Parameter estimation is the process of finding the 
"best" values of these adjustable parameters. 
The system identification problem is to find both 
the model structure and good numerical values of 
the model parameters.

[email protected]
Common terms used in system 
identification (contd…)
• This is a matter of using numerical search to find 
those numerical values of the parameters that give 
the best agreement between the model's (simulated 
or predicted) output and the measured output.
• Nonparametric identification methods: Techniques 
to  estimate  model  behavior  without  necessarily 
using a given parameterized model set.
• Model  validation  is  the  process  of  gaining 
confidence in a model. 

[email protected]
Basic information about dynamical 
systems

[email protected]
Basic Steps for System 
Identification
Import data from the MATLAB workspace. Plot the data using Data Views. Preprocess  the  data  using  commands  in  the 
Preprocess menu. 
For  example,  you  can  remove  constant  offsets  or 
linear trends (for linear models only), filter data, or 
select regions of interest.

[email protected]
Basic Steps for System 
Identification (contd…)
Select estimation and validation data. Estimate models using commands in the Estimate 
menu.
Validate models using Models Views. Export  models  to  the  MATLAB  workspace  for 
further processing .

[email protected]
QUESTIONS ?

[email protected]
Solution of Ordinary Differential
Equationsand
Engineering Computing (Lecture 6)
P Bharani Chandra Kumar

[email protected]
Solution of Ordinary Differential
Equaions

[email protected]
Overview
Introduction Examples

[email protected]
Introduction
DSOLVE Symbolic solution of ordinary differential 
equations.
DSOLVE('eqn1','eqn2',  ...)  accepts  symbolic   
equations  representing  ordinary  differential 
equations and initial conditions. 
Several  equations  or  initial  conditions  may  be 
grouped together, separated by commas, in a single 
input argument.
By default, the independent variable is 't'. 
The independent variable may be changed from 't'  to  some  other  symbolic  variable  by  including      that variable as the last input argument.

[email protected]
Introduction (contd…)
The letter 'D' denotes differentiation with respect 
to the independent variable, i.e. usually d/dt.  
A  "D"  followed  by  a  digit  denotes  repeated 
differentiation; e.g., D2 is d^2/dt^2.  
Any  characters  immediately  following  these 
differentiation  operators  are  taken  to  be  the 
dependent variables; e.g., D3y denotes the third 
derivative  of y(t). 
Note that the names of symbolic variables should 
not contain the letter "D".

[email protected]
Introduction (contd…)
Initial conditions are specified by equations like 
'y(a)=b'  or  'Dy(a)  =  b'  where  y  is  one  of  the 
dependent  variables  and  a  and  b  are     
constants.  
If the number of initial conditions given is less 
than  the  number  of  dependent  variables,  the 
resulting  solutions  will  obtain  arbitrary 
constants, C1, C2, etc.
Three different types of output are possible.  For 
one  equation  and  one  output,  the  resulting 
solution is returned, with multiple solutions to     
a nonlinear equation in a symbolic vector.  

[email protected]
Introduction (contd…)
If no closed-form (explicit) solution is found, an 
implicit solution is attempted.  When an implicit 
solution is returned, a warning is given.
If neither an explicit nor implicit solution can be 
computed,  then  a    warning  is  given  and  the 
empty sym is returned.  
In some cases concerning  nonlinear equations, 
the  output  will  be  an  equivalent  lower  order 
differential equation or an integral.

[email protected]
Examples
1) dsolve('Dx = -a*x') returns
ans:  exp(-a*t)*C1
2) x = dsolve('Dx = -a*x','x(0) = 1','s') returns
ans: x = exp(-a*s)
3) y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') return s
ans:     y =
[  sin(t)]
[ -sin(t)]

[email protected]
Examples (contd…)
4)  S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1', 'g(0) = 2')
Ans: S.f = exp(t)*cos(t)+2*exp(t)*sin(t)
S.g = -exp(t)*sin(t)+2*exp(t)*cos(t)
5) dsolve('Df = f + sin(t)', 'f(pi/2) = 0') 
Ans:  -1/2*cos(t)- 1/2*sin(t)+1/2*exp(t)/(cosh(1/2*pi)+
sinh(1/2*pi))

[email protected]
Engineering Computing

[email protected] of lecture
MATLAB as a calculator revisited Concept of M-files Decision making in MATLAB Use of IF and ELSEIF commands Example
: Real roots of a quadratic

[email protected]
MATLAB as a calculator
MATLAB can be used as a ‘clever’ calculator
This has very limited  value in engineering
Real value of MATLAB is in programming
Want to store a set of instructions Want to run these instructions sequentially Want the ability to input data and output 
results
Want to be able to plot results Want to be able to ‘make decisions’

[email protected]
Example
Can do using MATLAB as a calculator
>> x = 1:10;
>> term = 1./sqrt(x);
>> y = sum(term);
Far easier to write as an M-file 

=
+ + + = =
n
i
i
y
1
...
3
1
2
1
1
1 1

[email protected]
How to write an M-file
File →New →M-file Takes you into the file editor Enter lines of code (nothing happens) Save file (we will call ours bharani.m) Run file Edit (iemodify) file if necessary

[email protected]
Bharani.mVersion 1
n = input(‘Enter the upper limit: ‘);
x = 1:n; % Matlab is case sensitive
term = sqrt(x);
y = sum(term)
What happens if n < 1 ?

[email protected]
Bharani.mVersion 2
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

[email protected]
Decision making in MATLAB
For ‘simple’ decisions?
IF … END (as in last example)
More complex decisions?
IF … ELSEIF … ELSE ... END
Example
: Real roots of a quadratic equation

[email protected]
Roots of ax
2
+bx+c=0
Roots set by discriminant
∆< 0 (no real roots)
∆= 0 (one real root)
∆> 0 (two real roots)
MATLAB needs to make 
decisions (based on ∆)
a
ac b b
x
2
4
2
− ±−
=
ac b4
2
− =∆

[email protected]
One possible M-file
Read in values of a, b, c Calculate ∆ IF ∆< 0 Print message ‘ No real roots’→Go END ELSEIF ∆= 0 Print message ‘One real root’→Go END ELSE Print message ‘Two real roots’ END

[email protected] (bharani.m)
%================================================
%   Demonstration of an m-file
%   Calculate the real roots of a quadratic equation
%================================================
clear all;      % clear all variables
clc;            % clear screen
coeffts = input('Enter values for a,b,c (as a vector):   ');   
% Read in equation coefficients
a = coeffts(1);
b = coeffts(2);
c = coeffts(3);
delta = b^2 - 4*a*c;    % Calculate discriminant

[email protected]
M-file (bharani.m) (contd…)
% Calculate number (and value) of real roots
if delta < 0
fprintf('\nEquation has no real roots:\n\n')
disp(['discriminant = ', num2str(delta)])
elseif delta == 0
fprintf('\nEquation has one real root:\n')
xone = -b/(2*a)
else
fprintf('\nEquation has two real roots:\n')
x(1) = (-b + sqrt(delta))/(2*a);
x(2) = (-b – sqrt(delta))/(2*a);
fprintf('\n First root = %10.2e\n\t Second root = %10.2f', 
x(1),x(2))
end

[email protected]
Conclusions
MATLAB is more than a calculator
its a powerful programming environment

Have reviewed:
– Concept of an M-file
– Decision making in MATLAB
– IF … END and IF … ELSEIF … ELSE … END
– Example of real roots for quadratic equation

[email protected]
QUESTIONS ?

Graphics
By
G Satish

Outline
2-D plots

3-D plots

Handle objects

2-D plots

Simple plot >> a=[1 2 3 4]
>> plot(a)

Overlay plots
using plot command
>> t=0:pi/10:2*pi;
>> y=sin(t); z=cos(t);
>> plot(t,y,t,z)

Overlay plots(contd…)
using hold command
>> plot(t,sin(t));
>> grid
>> hold
>> plot(t,sin(t))

Overlay plots(contd..)
using line command
>> t=linspace(0,2*pi,10)
>> y=sin(t); y2=t; y3=(t.^3)/6+(t.^5)/120;
>> plot(t,y1)
>> line(t,y2,’linestyle’,’--’)
>> line(t,y3,’marker’,’o’)

Overlay plots

Style options >> t=0:pi/10:2*pi;
>> y=sin(t); z=cos(t);
>>plot(t,y,’go-’,t,z,’b*--’)

Style options
b blue . point - sol id
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- das hed
m magenta * star
y yellow s square
k black d diamond
v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram

Labels, title, legend and other text
objects
>>
a=[1 2 3 4]; b=[ 1 2 3 4]; c=[4 5 6 7]
>> plot(a,b,a,c)
>> grid
>> xlabel(‘xaxis’)
>> ylabel(‘yaxis’)
>> title(‘example’)
>> legend(‘first’,’second’)
>> text(2,6,’plot’)

Modifying plots with the plot editor
To activate this tool go to
figure window and click on the
left-leaning arrow

Now you can select and
double click on any object in
the current plot to edit it.

Double clicking on the selected
object brings up a property
editor window where you can
select and modify the current
properties of the object

Subplots >> t=linspace(0,2*pi,10); y=sin(t); z=cos(t);
>> figure
>> subplot(2,1,1)
>> subplot(2,1,2)
>> subplot(2,1,1); plot(t,y)
>> subplot(2,1,2); plot(t,z)

Logarthmicplots >> x=0:0.1:2*pi;
>>subplot(2,2,1)
>> semilogx(x,exp(-x));
>> grid
>> subplot(2,2,2)
>> semilogy(a,b);
>> grid
>> subplot(2,2,3)
>> loglog(x,exp(-x));
>> grid

Zoom in and zoom out >> figure
>> plot(t,sin(t))
>> axis([0 2 -2 2])

Specialisedplotting routines >> stem(t,sin(t));
>> bar(t,sin(t))
>> a=[1 2 3 4]; stairs(a);

3-D plots

Simple 3-D plot
Plot of a parametric space curve
>> t=linspace(0,1,100);
>> x=t; y=t; z=t.^3;
>> plot3(x,y,z); grid

View >> t=linspace(0,6*pi,100);
>> x=cos(t); y=sin(t); z=t;
>> subplot(2,2,1); plot3(x,y,z);
>> subplot(2,2,2); plot3(x,y,z); view(0,90);
>> subplot(2,2,3); plot3(x,y,z); view(0,0);
>> subplot(2,2,4); plot3(x,y,z); view(90,0);

View (contd…)

Mesh plots >> x=linspace(-3,3,50);
>> [X,Y]= meshgrid(x,y);
>> Z=X.*Y.*(X.^2-Y.^2)./(X.^2+Y.^2);
>> mesh(X,Y,Z);
>> figure(2)

Mesh plots(cont…)

Surface plots >> u = -5 : 0.2 : 5;
>> [X,Y] = meshgrid(u,u);
>> Z=cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/4);
>> surf(X,Y,Z)

Surface plots (contd…)

Handle Graphics

Handle Graphics Objects
Handle Graphics is an object-oriented
structure for creating, manipulating and
displaying graphics

Graphics in Matlabconsist of objects

Every graphics objects has:
–a unique identifier, called handle
–a set of characteristics, called properties

Getting object handles
There are two ways for getting object handles •
By creating handles explicitly at the object-
creation level commands •
By using explicit handle return functions

Getting object handles
By creating handles explicitly at the object-
creation level commands
>> hfig=figure
>> haxes=axes(‘position’,[0.1 0.1 0.4 0.4])
>> t=linspace(0,pi,10);
>> hL= line(t,sin(t))
>> hx1 = xlabel(‘Angle’)


By using explicit handle return functions
>> gcf gets the handle of the current
figure
>> gca gets handle of current axes
>> gco returns the current object in the
current figure
Getting object handles


Example
>> figure
>> axes
>> line([1 2 3 4],[1 2 3 4])
>> hfig= gcf
>> haxes= gca
Click on the line in figure
>>hL=gco
Getting object handles

Getting properties of objects
The function ‘get’is used to get a property
value of an object specified by its handle

get(handle,’PropertyName’)

The following command will get a list of all
property names and their current values of an
object with handle h

get(h)

Getting properties of objects
Example
>> h1=plot([ 1 2 3 4]);returns a line
object
>> get(h1)
>> get(h1,’type’)
>> get(h1,’linestyle’)

Setting properties of objects
The properties of the objects can be set by
using ‘set’command which has the following
command form

Set(handle, ‘PropertyName’,Propertyvalue’)

By using following command you can see the
thelist of properties and their values

Set(handle)

Setting properties of objects
example
>> t=linspace(0,pi,50);
>> x=t.*sin(t);
>> hL=line(t,x);

Setting properties of objects >> set(hL,’linestyle’,’--’);

Setting properties of objects >> set(hL,’linewidth’,3,’marker’,’o’)

Setting properties of objects >> yvec= get(hL,’ydata’);
>> yvec(15:20) = 0;
>> yvec(40:45) = 0;
>> set(hL, ’ydata’, yvec)

Creating subplots using axes
command
>> hfig=figure
>> ha1=axes(‘position’,[0.1 0.5 0.3 0.3])
>> line([1 2 3 4],[1 2 3 4])
>> ha2=axes(‘position’[0.5 0.5 0.3 0.3])
>> line([1 2 3 4],[ 1 10 100 1000])
>> ha3=axes(‘position’,[0.1 0.1 0.3 0.3])
>> line([1 2 3 4],[0.1 0.2 0.3 0.4])
>> ha4=axes(‘position’,[0.5 0.1 0.3 0.3])
>> line([1 2 3 4],[10 10 10 10])