Numerical Technique Lab Manual (VERSI Ces512)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 35

LIST OF NUMERICAL ANALYSIS MATLAB ACTIVITIES FOR CES 512

NUMERICAL METHOD LABORATORY LIST


1
2
3
4
5
6

Study of Introduction to MATLAB


Study of basic matrix operations
Determination of roots of a polynomial
To solve linear equation
Determination of polynomial using method of Least Square Curve Fitting.
Determination of polynomial fit, analyzing residuals, exponential fit and
error bounds from the given data.

7
8 Solution of Differential Equations.
9 Solution of Difference Equations using Euler Method.
10 Solution of differential equation using 4th order Runge- Kutta method.

LAB 1

OBJECTIVE: INTRODUCTION TO MATLAB


1. INTRODUCTION:
The name MATLAB stands for Matrix Laboratory. The basic building block of
MATLAB is the matrix. It is not confined to the solution of Matrix related
problems. With its inbuilt functions, it is an excellent tool for linear algebraic
computations, data analysis, signal processing, optimization, numerical solutions
of ordinary differential equations (ODE), quadrature, 2D & 3D, graphics and many
other types of scientific computation. Therefore, we can say:
MATLAB is a software package in high performance language for technical
computing. It integrates computation, visualization and programming in an easy to
use environment

where problems and solutions

are expressed in familiar

mathematical notation. Typical uses include:


Math and computation
Algorithm and development
Data acquisition modeling
Simulation and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including graphical user interface building.
2. BASICS:
2.1 MATLAB WINDOWS: There are three basic window which are as
follows:
1. MATLAB DESKTOP: This is the window which appears by
default when MATLAB is launched. It consists of :

COMMAND WINDOW: This is the main window , where


command are written. It is characterized by MATLAB command
prompt (>>). The results also appear on this window(except
figures, which appear on figure window) which command is
written. Commands cannot be edited in this window.
CURRENT DIRECTORY: This appears on the bottom left side
of MATLAB desktop. It is where all files are listed. With a mouse
right click, you can run M-files, rename, delete them etc after
selecting a file from here.
WORKSPACE: This sub-window shows all the variables
generated so far and also shows their type and size.
COMMAND HISTORY: All commands typed on the MATLAB
prompt are recorded here. Also commands can be selected from
here and create as M-file. Thus it remains records of MATLAB
functions run.

2. FIGURE WINDOW:
The output of all the commands written on the command window or
executed by writing in M-file, whose output is a graph , appears on
the window. The user can create as many figure windows as the
system memory allows. A figure window is showing sine curve is
shown in figure.

3. EDITOR WINDOW:
This is where we can write, create, edit and save programs in a file.
The file is known as M-file. To select editor window, go to file and
then select M-file. The programmes written on the file are first
saved and then run to get the results. To save and run the
programme, go to debug and select save and run. The result appear
on the command window. The figure appear on the figure window. A
editor window is shown as in figure:

2.2 LANGUAGES:
MATLAB is a high-level language that includes matrix-based data
structures, its own internal data types, an extensive catalog of functions
and scripts, the ability to import and export to many types of data files,
object-oriented programming capabilities, and interfaces to external
technologies such as COM, Java, program written in C and Fortran, and
serial port devices.
2.3 INPUT-OUTPUT:
MATLAB takes input from the screen and rushes output to the screen
i.e. it supports interactive computation. It can read input files and write
output files.
2.3.1 Data Type: There is no need to declare a data to be real or
complex. When a real number is entered as a variable, MATLAB
automatically sets the variable to be real. Fundamental data type is
the array.
2.3.2 Dimension: Dimension state is not required in the MATLAB. It is
automatic.
2.3.3 Case Sensitivity: It differentiates between lower and upper cases.
It is case sensitive.
2.3.4 Output Display: The output of every command appears on the
screen unless MATLAB is directed otherwise. A semi-colon(;)
suppress the output when used at the end of a command except for
the graphics.
2.4 GETTING STARTED

2.4.1 STARTING MATLAB: On windows platform, start MATLAB


by double clicking the MATLAB shortcut icon on your Windows
desktop.
2.4.2 WRITING COMMAND: When you start MATLAB, the
MATLAB desktop appears containing tools for managing files,
variables, and applications associated with MATLAB. You can start
writing your command at the prompt appears on command Window.
You can also write command in M-file.
2.4.3 PRINTING GRAPHICS: The simplest way to get print out of
the graph is to type print command window after the graph appears in
the figure window. Alternatively activate the figure window and then
select print from the file menu.
2.4.4 QUITTING MATLAB: To end your MATLAB session, select
file >Exit MATLAB in the desktop or type quit in the command
window. You can run a script file named finish.m each time MATLAB
quits that, for example, executes function to save the workplace, or
display a quit confirmation dialog box.

3. ACCESSORIES
3.1 TOOLBOXES: MATLAB features a family of add-on-applicationspecific solutions called toolboxes. Very important to most users of
MATLAB, toolboxes allow you to learn and apply specialized
technology. Toolboxes are comprehensive collections of MATLAB
environment to solve particular classes of problems. Areas in which
toolboxes are available include signal processing, control systems,
neural networks, fuzzy logic, wavelets, simulation, and many others.

There are 78 toolboxes available. Thus we can say MATLAB basically


works as a platform and for solving a particular problem, concerned
toolbox is required. Few of the toolboxes are as follows:
Communication toolbox
Control system toolbox
Curve fitting toolbox
Data acquisition toolbox
Filter design toolbox
Fuzzy logic toolbox
Instrument control toolbox
Optimization toolbox
Statistics toolbox
Symbolic maths toolbox, etc.
3.2 SIMULINK: Simulink is a software package that enables you to
model, simulate, and analyze systems whose outputs change over
time. Such system are often referred to as dynamic systems.
Simulink can be used to explore the behavior of a wide range of
real- world dynamic systems, including electrical circuits, shock
absorbers, braking systems, and many other electrical, mechanical,
and thermodynamic system. This section explains how Simulink
works.
Simulating a dynamic system is a two step process with Simulink.
First, a user creates a block diagram, using a block diagram
Simulink model editor that graphically depicts time dependent
mathematical relationship among the systems inputs, states, and
outputs. The user then commands simulink to simulate the system

represented by the model from a specified start time to a specified


stop time.

LABORATORY NO. 2
OBJECTIVE: STUDY OF BASIC MATRIX OPERATIONS

APPARATUS/ SOFTWARE REQUIRED:


SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

GIVEN NUMERICAL:
A= 3 2 1
0 3 4
-1 1 -1
B= 1 3 0
2 6 4
-1 0 2
Where A and B are two 3 X 3 matrix
COMMANDS:
>> A= [3 2 1; 0 3 4; -1 1 -1]
>> B= [1 3 0; 2 6 4; -1 0 2]
Sum:
Subtraction:
Multiplication:
Division:
Inverse of A:

A+ B
A B
A* B
A/B or A\B
inv(A)

RESULTS:
>> A + B
ans:

% Sum up matrix A and B

>> A B
ans:

% Subtract matrix A and B

>> A * B
ans:

% Multiply matrix A and B

>> A/B

% Divides matrix A and B(take inverse of


B and multiply with A )

ans:

>> A\B

% Divides matrix A and B(take inverse of


A and multiply with B )

ans:

>> inv(A)
ans:

% inverse of A

ADDITIONAL COMMANDS AND RESULTS:


>>a= magic(3)

% gives 3 X 3 matrix whose sum from


any angle is same

ans:

>>a= rand(3)

% gives any 3 X 3 random matrix

ans:

>> a= ones(3)

% gives 3X 3 matrix whose elements are


one

ans:

>> b= 2*ones(3)
ans:

% multiplication of 2 with ones(3)

>> a+2
ans:

% summation of 2 with matrix A

>> a(2,2)

% gives second row and second column


element of matrix A

ans:
>>a(2:3, :)

%gives second and third row of matrix


a

ans:

>> a(:, 2:3)


ans:

% gives second and third column of


matrix a

>> a(2:3,1:2)

%gives second and third row and first


and second column of matrix a

ans:

>>a(:,2)
ans:

% gives second column of matrix a

>>a(:,1:2)=[]

%delete first and second column

ans:

>>eye(3)

%gives 3 X 3 matrix whose diagonal are


one

ans:

>> diag(a)

% gives diagonal element of matrix a

ans:

>> b = a

% gives inverse of matrix a

ans:

CONCLUSION:
We have studied various commands to solve the basic matrix operations.

EXPERIMENT NO. 9
OBJECTIVE:
SOLUTION
BISECTION METHOD

OF

NONLINEAR EQUATION USING

APPARATUS/ SOFTWARE REQUIRED:


SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

Theory

The steps to apply the bisection method to find the root of the equation
1. Choose

and

other words,

xu

f (x)

as two guesses for the root such that


changes sign between

2. Estimate the root,


and

xu

as
xm =

xm

, of the equation

and

f ( x) 0

xu

f ( x) 0

f ( x ) f ( xu ) 0

are

, or in

as the mid-point between

x xu
2

3. Now check the following


a) If

f ( x ) f ( x m ) 0

xu x m

b) If

, then the root lies between

and

xm

; then

f ( x ) f ( xm ) 0

xu xu

, then the root lies between

f ( x ) f ( xm ) 0

c) If
; then the root is
4. Find the new estimate of the root
xm =

xm

and

xu

; then

x x m

. Stop the algorithm if this is true.

x xu
2

Find the absolute relative approximate error as

xmnew - xmold
a =
100
xmnew

xm

x x

and

and

Where
xmnew
xmold

= estimated root from present iteration

= estimated root from previous iteration


a

5. Compare the absolute relative approximate error


s

with the pre-specified

a s

relative error tolerance . If


, then go to Step 3, else stop the
algorithm. Note one should also check whether the number of iterations is
more than the maximum number of iterations allowed. If so, one needs to
terminate the algorithm and notify the user about it.

Code
clc
x0 = -2.0 ;
x1 = -1.0 ;
n = 15
fx0 = x0^5 + x0^3 +4*x0^2 - 3*x0 - 2;
fx1 = x1^5 + x1^3 +4*x1^2 - 3*x1 - 2;
fprintf(' k
x0
xmid
x1 f(xmid)\n');
for k=1:n
xm = x0 + 0.5*(x1-x0);
fm = xm^5 + xm^3 +4*xm^2 - 3*xm - 2;
fprintf('%3d\t %.8f \t %.8f\t %.8f \t %.8e \n',k,x0,xm,x1,fm);
if sign(fm) == sign(fx0)
x0 = xm;
fx0 = fm;
else
x1 = xm;
fx1 = fm;
end
end
Result

BUILT-IN MATLAB COMMAND


Syntax

x = fsolve(fun,x0)

Example of usage

Results

CONCLUSIONS

EXPERIMENT NO. 3
OBJECTIVE: TO SOLVE LINEAR EQUATION
______________________________________________________________________________

APPARATUS/ SOFTWARE REQUIRED:


SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

THEORY:
LINEAR EQUATION:

Solving a linear algebraic equation is easy in MATLAB. It is, perhaps, also the
most used computation in science and engineering. We will solve a set of linear
algebraic equations given below:
5x= 3y-2z+10
8y+4z= 3x+20
2x+4y-9z=9
PROCEDURE:
STEP 1: Rearrange equations: Write each equation with all unknown quantities on
the left hand side and all known quantities on the right hand side. Thus, for the
equations given above, rearrange them such that all terms involving x, y, and z are
on the left hand side of the equal sign:
5x-3y+2z = 10
-3x+8y+4z = 20
2x+4y-9z = 9
STEP 2: Write the equations in matrix form: To write the equation in the matrix
form [A]{x}={b} where {x} is the vector of unknowns, we have to arrange the

unknowns in matrix A and the constants on the right hand side of the equations in
vector b.
In this particular example, the unknown vector is

[]

x
x= y
z

The coefficient matrix is


A=

[ ]
532
3 8 4
2 49

And the known constant vector is

[]

10
b= 20
9

Note that the columns of A are simply the coefficients of each unknown from all
the three equations.
STEP 3: Solve the matrix equation in MATLAB: Enter the matrix A and vector b,
and solve for vector x with x=A\b (note that the \ is different from the division /):
>> A= [5 -3
>> b=

[]
10
20
9

>> x= A\b
x=

.;

2; -3

4; 2

-9];

% enter matrix A
% enter column vector b
% solve for x

the \ is used to solve a linear system


of equations [A]{x}={b}.
>> c= A* x
c=

% check for solution

Program: Write a program to solve linear equation


1 5x= 5y-8z
9y+3z= x+6
10x+4y-z=7

RESULT:

CONCLUSION:

EXPERIMENT NO. 6

OBJECTIVE: TO DETERMINE SOLUTION OF DIFFERENTIAL


EQUATIONS
______________________________________________________________________________

APPARATUS/ SOFTWARE REQUIRED:


SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

THEORY:
DIFFERENTIAL EQUATIONS:
A differential equation is a mathematical equation for an unknown function of
one or several variables that relates the values of the function itself and
its derivatives of various orders. Differential equations play a prominent role
in engineering, physics, economics, and other disciplines.
GIVEN NUMERICAL:
The function dsolve computes symbolic solutions to ordinary differential
equations. The equations are specified by symbolic expressions containing the
letter D to denote differentiation. The symbols D2, D3,.DN, correspond to the
second, third,.,Nth derivative, respectively. Thus, D2y is

d /dt

. The

dependent variables are those preceded by D and the default independent variable
is t. Note that names of symbolic variables should not contain D. The key issues in
this example are the order of the equation and the initial conditions.
To solve the ordinary differential equation, simply type:
y = dsolve(D3y=y, y(0)=1, Dy(0)=-1, D2y(0)=pi, x)
3
3
2
2
where D3y represents d y /dx and D2y(0) represents d y / dx at x = 0.

Examples
(i)
(ii)
(iii)

dy/dt = -ay
dy/dt = -ay and y(0) =1
d 2 y /dt 2 = - a2 y and y(0)= 1, dy/dt(/a)=0

(iv)
(v)

2
2
dy/dx = (xy - y )/ x
dy/dx = tan(y/x) +y/x

COMMANDS:
(i)
>> y=dsolve(Dy=-a*y)

%write ODE in inverted comma

(ii)
>> y=dsolve(Dy=-a*y, y(0)=1) %write ODE in inverted comma
followed by initial condition, separated by comma
(iii)
>> y=dsolve(D2y=-a^2*y, y(0)=1, Dy(pi/a)=0)
%write ODE in inverted comma followed
by initial condition, separated by comma
Note: In all the above cases, the independent variable is t by default.
(iv)
>> y = dsolve (Dy=(x*y y^2)/ x^2, x)
% define independent variable as x
(v)
>> y = dsolve (Dy=tan(y/x) + y/x), x)
RESULTS:

(i)
>> y=dsolve(Dy=-a*y)
y=
C1/exp(a*t)
(ii)
>>y=dsolve(Dy=-a*y, y(0)=1)
y=
exp(-a*t)
(iii)
>>y=dsolve(D2y=-a^2*y, y(0)=1, Dy(pi/a)=0)
y=
cos(a*t)
(iv)
>> y = dsolve (Dy=(x*y y^2)/ x^2, x)
y=
-x/(C12 - log(x))
(v)
>> y = dsolve (Dy=tan(y/x) + (y/x), x)
y=
asin(x*C1)*x
POST-EXPERIMENTAL QUESTIONS
Q3. What command is used to solve differential equations using
MATLAB? Explain with examples.
Q4. Write programs to solve :
2
2
i)
dy/dx = -( y x /2 xy )
ii)
dy/dx = (2y - x)/(2x -y)
2
iii) dy/dx = ytanx - y sec x
iv)

x 3
dy/dx = 3 e y - y

v)

d 2 y 8 dy

+15 y=0
dx
dt 2

EXPERIMENT NO. 7
OBJECTIVE: SOLUTION OF DIFFERENTIAL EQUATION USING
EULER METHOD
__________________________________________________________________
APPARATUS/ SOFTWARE REQUIRED:
SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

THEORY:
Lets consider a first-order differential equation:
y ' ( t ) +ay ( t )=r with y ( 0 )= y 0

It has the following form of analytical solution

(1)

QUANTITY

r
y (t )=( y 0 )eat
a

r
a

(2)

Which can be obtained by using a conventional method or the Laplace transform


technique.
'
First of all, we have to replace the derivative y

(t) =

dy
dt

in the differential

equation by a numerical derivative , where the step size h is determined based on


the accuracy requirements and the computation time constraints. Eulers method
approximates as
y ( t+h ) y ( t)
+ay ( t )=r
h
y (t +h )=( 1ah ) y ( t ) + hr with y (0)

And solve this difference equation step-by-step with increasing t by h each time
from t = 0.
y ( h )=( 1ah ) y ( 0 )+ hr=( 1ah ) y 0 + hr
y (2 h )=( 1ah ) y ( h ) +hr =(1ah)2 y 0 + ( 1ah ) hr+ hr
2

y (3 h )=( 1ah ) y ( 2 h ) +hr=(1ah) y 0 + (1ah) hr


3

m=0

This is a numeric sequence { y (kh) } which we call a numerical solution of Eqn.


(1).

To be specific, let the parameters and the initial value of Eqn.(1) be a = 1, r = 1,


and

y 0=0.

Then the analytical solution of eqn.(2) becomes

y (t )=1eat

PROGRAM:
at
% Euler method to solve a 1st order differential equation of y (t )=1e %

a = 1; r = 1; y 0=0 ; tf = 2;
t = [0:0.01:tf];
yt = 1-exp(-a *t);
plot (t, yt, k), hold on
klasts = [8 4 2]; hs = tf. /klasts;
y(1) = y_0;
for int = 1: 3
klast = klasts (int) ; h = hs(int) ; y(1) = y_0;
for k = 1: klast
y(k+1) = (1-a*h)*y(k) + h* r ;
plot ([k-1 k]*h, [y(k) y(k+1)], b , k* h , y(k+1), r)
if k< 4, pause ; end

end
end

RESULT & OBSERVATIONS:

2.GIVEN NUMERICAL:
dy/dx = (y - x)/(y + x)
COMMANDS:
>> b = 3; a = 0;m = 4; x = 0; y = 1;
>> h = (b-a)/m;
>>x = a:h:b;
>> for j = 1:m;

>> y(j+1)=y(j)+h*((y(j)-x(j))/ (y(j)+x(j)));


end
>>E = [x y]

RESULTS:
E=[x y]
E= 0

1.0000

0.7500

1.7500

1.5000

2.0500

2.2500

2.1662

3.0000

2.1520

CONCLUSION:
EXPERIMENT NO. 8
OBJECTIVE: SOLUTION OF DIFFERENTIAL EQUATIONS USING 4th
ORDER RUNGE-KUTTA METHOD
__________________________________________________________________
APPARATUS/ SOFTWARE REQUIRED:
SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

THEORY:
4
The fourth-order Runge -Kutta (RK4) method having a truncation error of O( h )

is one of the most widely used methods for solving differential equations. Its
algorithm is described below:
h
y k+1 = y k + ( f k 1 +2 f k 2 +2 f k3 + f k 4 )
6

(1)

Where
f k1 =f (t k , y k )

(2)
h
h
t k+ , yk+ f k 1
2
2
f k2 =f

h
h
t k + , y k +f k 2
2
2
f k3 =f

t k +h , y k + f k 3 h
f k 4 =f

(3)

(4)

(5)

PROGRAM:
function [t, y] = ode_RK4(f , tspan , y0, N, varargin)
% Runge- Kutta method to solve vector differential equation

y ' ( t )=f (t , y (t))

% for tspan = [t0, tf] and with the initial value y0 and N time steps
if nargin <

4|

N<= 0, N = 100; end

if nargin < 3, y0 = 0; end


y(1, :) = y0(:) ;
h = (tspan(2) tspan(1)) / N ;

% make it a row vector


t = tspan(1) + [0: N] * h ;

for k = 1: N
f1 = h* feval (f , t(k), y(k, :) , varargin{:}); f1 = f1(:);
f2 = h* feval (f , t(k) + h/2 , y(k, :) + f1/2 , varargin{:}); f2 = f2(:);
f3 = h* feval (f , t(k) + h/2 , y(k, :) + f2/2 , varargin{:}); f3 = f3(:);
f4 = h* feval (f , t(k) + h , y(k, :) + f3 , varargin{:}); f4 = f4(:);
y(k + 1 , :) = y(k, :) + (f1 + 2*(f2 +f3) + f4 )/6 ;
end

RESULT & DISCUSSIONS:

CONCLUSION:

EXPERIMENT NO. 10
OBJECTIVE:

DETERMINATION OF POLYNOMIAL REGRESSION

EQUATION USING METHOD OF LEAST SQUARE


APPARATUS/ SOFTWARE REQUIRED:
SR.NO

APPARATUS/SOFTWARE

SPECIFICATION

QUANTITY

THEORY:
Curve fitting is a technique of finding an algebraic relationship that best (in least
squares sense) fits a given set of data. Unfortunately, there is no magical function
(in MATLAB or otherwise) that can give the relationship if we simply supply the
data. We have to have an idea of what kind of relationship might exist between the
input data and the output data. However, if we do not have the firm idea but have
data that we trust, MATLAB can help us in exploring the best possible fit.

MATLAB includes Basic Fitting in its Figure windows Tools menu that lets us fit
a polynomial curve (upto 10th order) to the data on the fly. It also gives us options
of displaying the residual at the data points and computing the norm of the
residuals. This can help in comparing different fits and then selecting the one that
best fits.
1. GIVEN NUMERICAL:
Fit a straight line y = a+ bx to the following data:
x: 1

y: 14 27

40

55

68

COMMANDS:
i)

>>x = [1 2 3 4 5];
>> y = [14

ii)

27

%write the elements with spacing


40

55

68];

>> polyfit(x,y,1)

%fits the data to linear equation

>> x=[0 1 2 3 4];


>> y=[1 5 10 22 38 ];
>> polyfit(x,y,2)
>>plot(x, y)
>>title (curve fitting)

%fits the data to quadratic equation

RESULTS:
i)

ii)

13.6000 -0.0000
The constants a and b are 0 and 13.6 respectively.
Therefore, equation of the straight line is:
y=13.6x
2.2143 0.2429 1.4286

2
The constants of quadratic equation y = a+bx+c x

are a = 2.2143, b =

0.2429 and c= 1.4286


Hence quadratic equation is:
2
y= 1.4286 x + 0.2429x + 2.2143
The graph of the quadratic equation is shown in figure.below.

2. Using MATLAB curve fitting toolbox:


Proceed as mentioned below:
i)
Write down the given data on command window for two variables.
ii)
Plot the curve for two variables
iii) Go to figure window
iv) Go to tools
v)
Go to basic fitting
vi) Select linear or quadratic function or higher order, to which the given
vii)

data is to be fitted.
You may also select show equation. On selection, the equation
appears on the figure window.

CONCLUSION:

PRE-EXPERIMENTAL QUESTIONS
Q1. What is Curve fitting ?

POST-EXPERIMENTAL QUESTIONS
Q3. By the method of least squares, find the straight line that fits the following
data:
x: 1

y:14 27

40

55

68

2
Q4. Fit a parabola y=a x +bx +c in least square sense to the data

x: 10 12

15

23

20

y:14 17

23

25

21

You might also like