Matlab Lab Manual
Matlab Lab Manual
Matlab Lab Manual
Numerical Analysis
Date:
List of Experiments
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
Experiment # 01
Title
Introduction to MATLAB basic concepts, and functions
Wah Engineering College
Page 1
Lab manuals
Numerical Analysis
Date:
Software
MATLAB
Learning objectives
Introduction
The most important elements of the MATLAB screen are the following:
The Command History: This presents a history of the functions introduced in the Command
The Launch Pad: This runs tools and gives you access to documentation for all MathWorks
The Current Directory: This shows MATLAB files and execute files (such as opening and search
Help (support): This allows you to search and read the documentation for the complete family
of MATLAB products.
The Workspace: This shows the present contents of the workspace and allows you to make
changes to it.
The Array Editor: This displays the contents of arrays in a tabular format and allows you to edit their
values.
The Editor/Debugger: This allows you to create, edit, and check M-files (files that contain
MATLAB functions).
List of commands
Page 2
Lab manuals
Numerical Analysis
Experiment # 02
Title
Implementation of matrices, and polynomials
Software
MATLAB
Learning Objectives
Introduction
List of commands
Page 3
Date:
Lab manuals
Numerical Analysis
Date:
Experiment # 03
Title
Implementation of Graphs in MATLAB
Software
MATLAB
Learning Objectives
Introduction
MATLAB provides a very good tools for two dimensional, three dimensional plots, 3-D volume visualization
functions, tools for interactively creating plots and the ability to export results to many popular graphics formats. It is
possible to customize plot by adding multiple axes, changing line colures and markers, adding annotations and
legends.
Vector data can be visualized with 3-D plotting functions such as line, area, bar and pie charts, direction and velocity
plots, histograms polygons and surfaces, scatter/bubble plots, and animations. MATLAB provides functions for 2-D
Wah Engineering College
Page 4
Lab manuals
Numerical Analysis
Date:
matrices, 3-D scaler and vector data. In MATLAB one can characterize plots, such as viewing angle, perspective,
lighting effect, light source location and transparency. 3-D plotting functions include surface, contour, mesh, image
plots etc., the graphics commands in MATLAB are very simple and easy to understand.
List of Commands
Command
plot
xlabel
ylabel
semilogx
title
semilogy
grid on
loglog
text
polar
gtext
area
axis
bar
subplot
barh
legend
hist
rose
pie
stairs
stem
compass
Description
To draw a 2-D plot
To label the x-axis
To label the y-axis
Plot
with
linear
scale
y-axis and logarithmic scale x-axis
To
give
a title
to the
figure
Plot
withthe
linear
logarithmic scale y-axis
To
show
grid scale
lines x-axis
on the and
graph
Plot
with
logarithmic
scale
x-axis
and y-axis
To write illustrative text on the graph
Toplace
drawtext
a plot
To
onon
thepolar
graphcoordinates
using the mouse
Same
as
plot
except
area
under
plot is filled with colour
To control the axis of plot
Tosub
draw
vertical
barwindow
graph into sub-graphs
To
divide
graph
Toproduce
draw horizontal
bar graph
To
a boxed legend
on the plot
To draw a histogram
To draw an angle histogram
To draw pie plot
To give staircase plot
To give stem plot
To plot the complex data
Tasks
Task 1
Page 5
Lab manuals
Numerical Analysis
Date:
Experiment # 04
Title
Implementation of Solution of Transcendental Equations by Bisection Method
Software
MATLAB
Theory
f ( x) 0
The steps to apply the bisection method to find the root of the equation
1. Choose
are
f ( x ) f ( xu ) 0
xu
and
as two guesses for the root such that
, or in other words,
xu
x
sign between
and .
xm
xu
x
f ( x) 0
2. Estimate the root,
, of the equation
as the mid-point between
and
as
x xu
xm =
2
3. Now check the following
f ( x ) f ( xm ) 0
xm
xu x m
x
x x
a) If
, then the root lies between
and ; then
and
.
Wah Engineering College
Page 6
f (x)
changes
Lab manuals
Numerical Analysis
f ( x ) f ( xm ) 0
b) If
xm
Date:
xu
x x m
xu xu
f ( x ) f ( x m ) 0
xmnew - xmold
a =
100
xmnew
Where
xmnew
Page 7
Lab manuals
Numerical Analysis
else
x1 = xm;
fx1 = fm;
end
end
Result
n=
15
k
x0
xmid
1
-2.00000000 -1.50000000
2
-2.00000000 -1.75000000
3
-1.75000000 -1.62500000
4
-1.62500000 -1.56250000
5
-1.56250000 -1.53125000
6
-1.53125000 -1.51562500
7
-1.53125000 -1.52343750
8
-1.53125000 -1.52734375
9
-1.53125000 -1.52929688
10
-1.53125000 -1.53027344
11
-1.53027344 -1.52978516
12
-1.52978516 -1.52954102
13
-1.52954102 -1.52941895
14
-1.52941895 -1.52935791
15
-1.52941895 -1.52938843
Conclusions
From this we conclude that
x1
-1.00000000
-1.50000000
-1.50000000
-1.50000000
-1.50000000
-1.50000000
-1.51562500
-1.52343750
-1.52734375
-1.52929688
-1.52929688
-1.52929688
-1.52929688
-1.52929688
-1.52935791
f(xmid)
5.31250000e-001
-6.27246094e+000
-2.18447876e+000
-6.74798012e-001
-3.61247361e-002
2.56196528e-001
1.12228746e-001
3.86045517e-002
1.37858857e-003
-1.73383354e-002
-7.97119735e-003
-3.29413644e-003
-9.57232078e-004
2.10813694e-004
-3.73175328e-004
The Bisection Method will always work, once you have found starting points.
It is always possible to find the number of steps required for a given accuracy.
Page 8
Date:
Lab manuals
Numerical Analysis
Date:
Experiment # 05
Title
Implementation of Regula-Falsi Method
Software
MATLAB
Theory
The steps to apply the false-position method to find the root of the equation
1. Choose
between
xL
xL
xU
and
are as follows.
f x L f xU 0
xU
and
f x 0
Page 9
, or in other words,
f x
changes sign
Lab manuals
2. Estimate the root,
xr
Numerical Analysis
xr
of the equation
f x 0
Date:
as
xU f x L x L f xU
f x L f xU
If
If
If
f x L f xr 0
f x L f xr 0
f x L f xr 0
xr
xL
xr
and
xr
; then
xU
and
; then
xL xL
x L xr
xU x r
and
xU xU
and
xr
xU f x L x L f xU
f x L f xU
x rnew x rold
100
x rnew
Where
xrnew
x rold
a s
xr
Lab manuals
Numerical Analysis
Code
clc
clear all
N=15;
a=0;
b=2;
f=@(x)x^2-1;
fprintf('n
a
b
for n=1:N;
c=b-(b-a)/(f(b)-f(a))*f(b);
fprintf('%3d %8.15f %8.15f
if f(a)*f(b)<0
a=a;
b=c;
else
a=c;
b=b;
end
end
Result
n
c
%8.15f
Date:
f(c)\n' )
%8.15f\n',n,a,b,c,f(c))
f(c)
0.000000000000000
2.000000000000000
0.500000000000000
-0.750000000000000
0.000000000000000
0.500000000000000
2.000000000000000
3.000000000000000
2.000000000000000
0.500000000000000
0.800000000000000
-0.360000000000000
2.000000000000000
0.800000000000000
0.928571428571429
-0.137755102040816
2.000000000000000
0.928571428571429
0.975609756097561
-0.048185603807258
2.000000000000000
0.975609756097561
0.991803278688525
-0.016326256382693
2.000000000000000
0.991803278688525
0.997260273972603
-0.005471945956089
2.000000000000000
0.997260273972603
0.999085923217550
-0.001827318028535
2.000000000000000
0.999085923217550
0.999695214873514
-0.000609477358998
10
2.000000000000000
0.999695214873514
0.999898394635237
-0.000203200405876
11 2.000000000000000
0.999898394635237
0.999966130397968
-0.000067738056915
12
2.000000000000000
0.999966130397968
0.999988710005193
-0.000022579862149
13
2.000000000000000
0.999988710005193
0.999996236654235
-0.000007526677367
14
2.000000000000000
0.999996236654235
0.999998745549838
-0.000002508898750
Page 11
Lab manuals
15
2.000000000000000
Numerical Analysis
0.999998745549838
0.999999581849771
Date:
-0.000000836300283
Conclusions
From this we conclude that
It is faster than bisection method.
Experiment # 06
Title
Implementation of Newton Raphson Method
Software
MATLAB
Theory
The steps of the Newton-Raphson method to find the root of an equation
Wah Engineering College
Page 12
f x 0
are
Lab manuals
1. Evaluate
Numerical Analysis
f x
Date:
symbolically
xi
2. Use an initial guess of the root,
f xi
xi 1 = xi
f xi
xi 1
, to estimate the new value of the root,
, as
a
3. Find the absolute relative approximate error
x xi
a = i 1
100
xi 1
as
4. Compare the absolute relative approximate error with the pre-specified relative error tolerance, . If
s
> , then go to Step 2, else stop the algorithm. Also, check if the number of iterations has exceeded the
maximum number of iterations allowed. If so, one needs to terminate the algorithm and notify the user.
Code
clc
clear all
N=10;
fprintf('initial guess=')
x0=1
f=@(x)1+x*tan(x);
fd=@(x)tan(x)+x*sec(x)*sec(x);
fprintf('n
c
f(c)\n')
for n=0:N
c=x0-f(x0)/fd(x0);
fprintf('%3d
%8.15f
%8.15f\n',n,c,f(c))
x0=c;
end
Result
initial guess=
x0 =
Page 13
Lab manuals
n
Numerical Analysis
c
Date:
f(c)
0.486765919321041
1.257616530515499
-0.604585157132899
1.417701383255673
0.290394556555804
1.086782243712915
-1.476238939808956
16.565537805943002
-1.382193568080384
8.241494831553638
-1.197242781124118
4.054526184000185
-0.845944777816717
1.955127027360944
-0.205635654936590
1.042892315640791
2.258861634199093
-1.747710286541552
2.657445406325536
-0.397533477242050
10
2.796127661832952
-0.006319842260502
Conclusions
From this we conclude that
Experiment # 07
Title
Implementation of Secant method
Software
MATLAB
Page 14
Lab manuals
Numerical Analysis
Date:
Theory
f ( x) 0
xi 1 = xi
f ( xi )
f ( xi )
.. (1)
One of the drawbacks of the Newton-Raphson method is that you have to evaluate the derivative of the function.
With availability of symbolic manipulators such as Maple, MathCAD, MATHEMATICA and MATLAB, this process
has become more convenient. However, it still can be a laborious process, and even intractable if the function is
f (x)
derived as part of a numerical scheme. To overcome these drawbacks, the derivative of the function,
is
approximated as
f ( xi )
f ( xi ) f ( xi 1 )
xi xi 1
. (2)
xi 1 xi
f ( xi )( xi xi 1 )
f ( xi ) f ( xi 1 )
. (3)
The above equation is called the secant method. This method now requires two initial guesses, but unlike the
bisection method, the two initial guesses do not need to bracket the root of the equation. The secant method is an
open method and may or may not converge. However, when secant method converges, it will typically converge
faster than the bisection method. However, since the derivative is approximated as given by Equation (2), it typically
converges slower than the Newton-Raphson method.
Code
clc
clear all
N=15;
x0=0.5;
x1=1.5;
fx0=cos(x0)-2*x0+3;
fx1=cos(x1)-2*x1+3;
format short
fprintf('n
x0
x1
x2
f(x2\n')
for n=1:N
x2=x0-(x1-x0)/(fx1-fx0)*fx0;
fx2=cos(x2)-2*x2+3;
fprintf('%3d %8.15f %8.15f %8.15f %8.15f\n',n,x0,x1,x2,fx2)
Wah Engineering College
Page 15
Lab manuals
Numerical Analysis
Date:
x0=x1;
x1=x2;
end
Result
n
x0
x1
x2
f(x2)
Page 16
Lab manuals
Numerical Analysis
Experiment # 08
Title
Implementation of Fixed Point Iteration Method
Software
MATLAB
Page 17
Date:
Lab manuals
Numerical Analysis
Date:
Theory
In numerical analysis, fixed-point iteration is a method of computing fixed points of iterated functions. More
specifically, given a function defined on the real numbers with real values and given a point
in the domain of ,
the fixed point iteration is
Which gives rise to the sequence
Which is hoped to converge to a point . If
of , i.e.,
More generally, the function
.
can be defined on any metric space with values in that same space.
Code
clc
clear all
N=15;
x=1;
f=@(x)sin(x)-5*x+2;
fprintf('n
x
c
f(c)\n')
for n=1:N;
c=(sin(x)+2)/5;
fc=sin(c)-5*c+2;
fprintf('%3d %8.15f %8.15f %8.15f\n', n,x,c,f(c))
x=c;
end
Result
n
f(c)
Page 18
is a fixed point
Lab manuals
Numerical Analysis
Date:
Experiment # 09
Title
Implementation of Gauss-Jacobi Method for Solution of System of Linear Equations
Software
MATLAB
Theory
Given a general set of
equations and
unknowns, we have
Page 19
Lab manuals
Numerical Analysis
Date:
a 21 x1 a 22 x 2 a 23 x3 ... a 2 n xn c 2
.
a n1 x1 a n 2 x 2 a n 3 x3 ... a nn x n c n
If the diagonal elements are non-zero, each equation is rewritten for the corresponding unknown, that is, the first
equation is rewritten with
so on as follows
x1
x1
x2
c 2 a 21 x1 a 23 x3 a 2 n x n
a 22
x n 1
xn
c n a n1 x1 a n 2 x 2 a n ,n 1 x n 1
a nn
c1 a1 j x j
x1
j 1
j 1
a11
n
c2 a2 j x j
x2
j 1
j2
a 22
.
.
Wah Engineering College
Page 20
x2
Lab manuals
Numerical Analysis
Date:
.
c n 1
x n 1
j 1
j n 1
n 1, j
xj
a n 1,n 1
n
c n a nj x j
j 1
jn
xn
a nn
i
Hence for any row ,
n
ci aij x j
j 1
j i
xi
aii
, i 1,2, , n.
xi
xi
Now to find s, one assumes an initial guess for the s and then uses the rewritten equations to calculate the new
estimates simultaneously. At the end of each iteration, one calculates the absolute relative approximate error for
xi
each
as
x inew x iold
x inew
100
xi
xinew
where
xi
xiold
, and
When the absolute relative approximate error for each xi is less than the pre-specified tolerance, the iterations are
stopped.
Code
clc
clear all
N=10;
x0=0;
y0=0;
z0=0;
Wah Engineering College
Page 21
Lab manuals
Numerical Analysis
fprintf(' n
x
y
z\n');
for i=1:N
x=95/83-11/83*y0+4/83*z0;
y=104/52-7/52*x0-13/52*z0;
z=71/29-3/29*x0-8/29*y0;
x0=x;
y0=y;
z0=z;
fprintf('%3d
end
%8.15f
%8.15f
Result
n
x
1
1.144578313253012
2
0.997507270461155
3
1.066749436787128
4
1.052841339383336
5
1.058747659004925
6
1.057496281055922
7
1.058002319367357
8
1.057890257136219
9
1.057933711091246
10
1.057923713271082
%8.5e \n',i,x,y,z)
y
2.000000000000000
1.233853184621776
1.421183407369531
1.355221073661050
1.371803388929915
1.366099488805504
1.367564301124371
1.367070444937255
1.367199638974542
1.367156832195136
z
2.44828e+000
1.77815e+000
2.00471e+000
1.94587e+000
1.96551e+000
1.96032e+000
1.96202e+000
1.96157e+000
1.96172e+000
1.96168e+000
Conclusions
From this we conclude that
It convergence rate is slower than Gauss Seidal method.
It is easy to implement.
Experiment # 10
Title
Implementation of Gauss- Seidel Method for Solution of System of linear Equations
Wah Engineering College
Page 22
Date:
Lab manuals
Numerical Analysis
Date:
Software
MATLAB
Theory
Given a general set of
equations and
unknowns, we have
a n1 x1 a n 2 x 2 a n 3 x3 ... a nn xn c n
If the diagonal elements are non-zero, each equation is rewritten for the corresponding unknown, that is, the first
equation is rewritten with
so on as follows
x1
x1
x2
c 2 a 21 x1 a 23 x3 a 2 n x n
a 22
x n 1
xn
c n a n1 x1 a n 2 x 2 a n ,n 1 x n 1
a nn
Page 23
x2
Lab manuals
Numerical Analysis
Date:
c1 a1 j x j
j 1
j 1
x1
a11
n
c2 a2 j x j
j 1
j2
x2
a 22
.
.
.
c n 1
x n 1
j 1
j n 1
n 1, j
xj
a n 1,n 1
n
c n a nj x j
j 1
jn
xn
a nn
i
Hence for any row ,
n
ci aij x j
j 1
j i
xi
aii
, i 1,2, , n.
xi
Now to find
xi
s, one assumes an initial guess for the
xi
estimates. Remember, one always uses the most recent estimates to calculate the next estimates,
xi
each iteration, one calculates the absolute relative approximate error for each
Page 24
as
. At the end of
Lab manuals
a
Numerical Analysis
x inew x iold
x inew
100
xi
xinew
where
Date:
xi
xiold
, and
When the absolute relative approximate error for each xi is less than the pre-specified tolerance, the iterations are
stopped.
Code
83x+11y-4z=95
7x+52y+13z=104
3x+8y+29z=71
clc
clear all
N=15;
x0=0;
y0=0;
z0=0;
fprintf('apprpxi.
x
y
z\n')
for i=1:N
x(i)=1/83*(95-11*y0-4*z0);
y(i)=1/52*(104-7*x(i)-13*z0);
z(i)=1/29*(71-3*x(i)-8*y(i));
fprintf('%3d %8.15f %8.15f %8.15f\n',i,x(i),y(i),z(i))
x0=x(i);
y0=y(i);
z0=z(i);
end
Result
apprpxi.
1.144578313253012
1.845922150139018
1.820651305487201
0.812195796705084
1.435503124071746
1.968254745424510
0.859475260885696
1.392237720832336
1.975299050023594
0.864869745430722
1.389750464070735
1.975427139694550
0.865193208872816
1.389674898497330
1.975414523634584
0.865203831590253
1.389676622531128
1.975412949137249
Page 25
Lab manuals
Numerical Analysis
0.865203678983236
1.389677036698714
1.975412850671054
0.865203628838915
1.389677068065460
1.975412847205503
0.865203624848891
1.389677069468966
1.975412847231089
10
0.865203624661651
1.389677069487775
1.975412847245271
11 0.865203624658475
1.389677069484657
1.975412847246459
12
0.865203624658830
1.389677069484312
1.975412847246517
13
0.865203624658874
1.389677069484292
1.975412847246519
14
0.865203624658876
1.389677069484291
1.975412847246519
15
0.865203624658876
1.389677069484291
1.975412847246519
Date:
Conclusions
From this we conclude that
It is easy to implement compare to Gauss Jacobi method.
It is much closer to the solution after one iteration compared to Gauss Jacobi method.
It will require less iteration to reach to the convergence.
Page 26
Lab manuals
Numerical Analysis
Date:
Experiment # 11
Title
Implementation of Interpolation by Newton Forward Difference Formula
Software
MATLAB
Theory
Newton's forward difference formula is a finite difference identity giving an interpolated value between tabulated
points
xi
fi
x0
f0
x1
f1
fi
2fi
3f0 = 2f
2
1- f0
2f1 =
f2 - f1
f2
2f2 =
f3 - f2
f3
f5
Page 27
5f0 = 4
f1- 4f0
4f1 = 3f
3
2 - f1
3f2 = 2f
2
3 - f2
2f3 =
f4 - f3
f4
f4 = f5
- f4
x5
4f0 = 3f
3
1- f0
3f1 = 2f
2
2 - f1
f3 = f4
- f3
x4
5fi
2f0 =
f1- f0
f2 = f3
- f2
x3
4fi
f0 = f1
- f0
f1 = f2
- f1
x2
3fi
Lab manuals
Numerical Analysis
Code
clc
tic
n = 4;
x = [8, 10, 12, 14, 16];
fx = [1000, 1900, 3250, 5400, 8950];
x0=8;
xp=9;
h=2;
p=(xp-x0)/h
F = zeros(n+1, n+1);
F(:, 1) = fx;
for i=1:n
for j=1:i
F(i+1,j+1) = (F(i+1,j)-F(i,j)) ;
end
if i==j
gx=F(i,j)+p*F(i,j)+0.5*p*(p-1)*F(i,j)
break;
end
end
disp('Matrix diagonal entries represents the FORWARD Difference table')
a = diag(F)
b=F
Y=gx
Result
p=
0.5000
gx =
1375
Matrix diagonal entries represents the FORWARD Difference table
a=
1000
900
Wah Engineering College
Page 28
Date:
Lab manuals
Numerical Analysis
0
0
0
b=
1000
1900
3250
5400
8950
0
900
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Y=
1375
Conclusions
Page 29
Date:
Lab manuals
Numerical Analysis
Date:
Experiment # 12
Title
Implementation of Lagrange Interpolation Formula
Software
MATLAB
Theory
n
Polynomial interpolation involves finding a polynomial of order
that
n 1
passes through the
data points. One of the methods used to find this
polynomial is called the Lagrangian method of interpolation. Other
methods include Newtons divided difference polynomial method and the
direct method. We discuss the Lagrangian method in this chapter.
f n ( x) Li ( x ) f ( xi )
i 0
Where
f n (x )
in
n th
y f (x)
given at
x0 , y 0 , x1 , y1 ,......, xn1 , y n1 , xn , y n
points as
, and
n
Li ( x)
j 0
j i
x xj
xi x j
Li (x )
is a weighting function that includes a product of
Code
clc
clear all
X=[0 1 2 4];
Y = [1 1 2 5];
Wah Engineering College
Page 30
n 1
ji
terms with terms of
omitted?
n 1
data
Lab manuals
Numerical Analysis
x=3;
n = length(X);
if n ~= length(Y)
error('X and Y must be the same length.');
end
y=0;
% initialise sum
for i = 1:n
for j = 1:i-1
L = (x-X(j))/(X(i)-X(j)) % multiply next factor
end
for k=1+i:n
L =(x-X(k))/(X(i)-X(k)) % multiply next factor
end
y =y+L*Y(i)
% add next term
end
y
polyfit(X,Y,3)
Result
L=
-2
L=
-0.5000
L=
Wah Engineering College
Page 31
Date:
Lab manuals
Numerical Analysis
0.2500
y=
0.2500
L=
L=
-1
L=
0.3333
y=
Page 32
Date:
Lab manuals
Numerical Analysis
0.5833
L=
1.5000
L=
L=
0.5000
y=
1.5833
L=
0.7500
Wah Engineering College
Page 33
Date:
Lab manuals
Numerical Analysis
L=
0.6667
L=
0.5000
y=
4.0833
y=
4.0833
ans =
-0.0833
0.7500 -0.6667
1.0000
Conclusions
Wah Engineering College
Page 34
Date:
Lab manuals
Numerical Analysis
Experiment # 13
Title
Implementation of Newtons Divided Difference Formula
Wah Engineering College
Page 35
Date:
Lab manuals
Numerical Analysis
Date:
Software
MATLAB
Theory
For Newtons divided difference method let us revisit the quadratic polynomial interpolation formula
f 2 ( x) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 )
where
b0 f ( x0 )
b1
f ( x1 ) f ( x0 )
x1 x0
f ( x 2 ) f ( x1 ) f ( x1 ) f ( x0 )
x 2 x1
x1 x 0
b2
x 2 x0
b0 , b1 ,
b0 , b1 ,
b2
Note that
and
are finite divided differences.
and
differences, respectively. We denote the first divided difference by
f [ x0 ] f ( x0 )
the second divided difference by
f [ x1 , x0 ]
f ( x1 ) f ( x0 )
x1 x0
f [ x 2 , x1 , x0 ]
f [ x 2 , x1 ] f [ x1 , x0 ]
x2 x0
f ( x 2 ) f ( x1 ) f ( x1 ) f ( x 0 )
x 2 x1
x1 x0
x2 x0
Page 36
b2
Lab manuals
Numerical Analysis
f [ x0 ], f [ x1 , x0 ],
where
brackets.
Date:
f [ x 2 , x1 , x0 ]
and
Rewriting,
f 2 ( x) f [ x0 ] f [ x1 , x0 ]( x x0 ) f [ x 2 , x1 , x0 ]( x x0 )( x x1 )
This leads us to writing the general form of the Newtons divided difference polynomial for
x0 , y0 , x1 , y1 ,......, xn1 , y n1 , xn , y n
, as
f n ( x) b0 b1 ( x x 0 ) .... bn ( x x0 )( x x1 )...( x x n 1 )
where
b0 f [ x0 ]
b1 f [ x1 , x0 ]
b2 f [ x 2 , x1 , x0 ]
bn 1 f [ x n 1 , x n 2 ,...., x0 ]
bn f [ x n , x n 1 ,...., x0 ]
m th
divided difference is
bm f [ x m ,........, x0 ]
f [ xm ,........, x1 ] f [ xm 1 ,........, x0 ]
xm x0
From the above definition, it can be seen that the divided differences are calculated recursively.
Page 37
n 1
data points,
Lab manuals
Numerical Analysis
Date:
Code
clear all
clc
n = 4;
xa = [8 11 14 17 19];
fx = [1000, 1900, 3250, 5400, 8950];
F = zeros(n+1, n+1);
F(:, 1) = fx
X= zeros(5);
X(:,1)=xa
x=9;
x0=xa(1);
x1=xa(2);
x2=xa(3);
x3=xa(4);
x4=xa(5);
% Compute the Newton divided differences.
for i=1:n
h(1)=xa(i+1)-xa(1);
for j=1:i
F(i+1,j+1) = (F(i+1,j)-F(i,j))/(h(1));
if i==j
gx=F(i,j)+(x-8)*F(i,j)+(x-8)*(x-10)*F(i,j)+(x-8)*(x-10)*(x-12)*F(i,j)+(x-8)*(x-10)*(x-12)*(x-14)*F(i,j);
break;
end
end
end
a = diag(F)
b=gx
Result
F=
1000
1900
3250
5400
Page 38
Lab manuals
8950
Numerical Analysis
X=
11
14
17
19
a=
1.0e+003 *
1.0000
0.3000
-0.0125
0.0016
-0.0001
b=
-17.1639
Wah Engineering College
Page 39
Date:
Lab manuals
Numerical Analysis
Conclusions
Experiment # 14
Title
Implementation of Simpsons Rule
Wah Engineering College
Page 40
Date:
Lab manuals
Numerical Analysis
Date:
Software
MATLAB
Theory
Just like in multiple-segment trapezoidal rule, one can subdivide the interval
Simpsons 1/3 rule repeatedly over every two segments. Note that
equal segments, so that the segment width is given by
h
ba
n
a, b
into
Now
b
xn
x0
f ( x)dx f ( x)dx
where
x0 a
xn b
b
f ( x)dx
x2
f ( x)dx
x0
x4
f ( x)dx ......
x2
xn 2
f ( x)dx
xn 4
xn
f ( x)dx
xn 2
f ( x )dx ( x
f ( x0 ) 4 f ( x1 ) f ( x2 )
f ( x 2 ) 4 f ( x3 ) f ( x4 )
( x4 x2 )
...
6
6
x0 )
f ( x n 4 ) 4 f ( x n 3 ) f ( x n 2 )
f ( x n 2 ) 4 f ( x n 1 ) f ( x n )
( x n xn 2 )
6
6
( xn2 xn4 )
Since
x i x i 2 2h
i 2, 4, ..., n
Then
Wah Engineering College
Page 41
a, b
into
Lab manuals
Numerical Analysis
Date:
f ( x0 ) 4 f ( x1 ) f ( x 2 )
f ( x 2 ) 4 f ( x3 ) f ( x 4 )
2h
...
6
6
f ( x )dx 2h
a
f ( x n 4 ) 4 f ( x n 3 ) f ( x n 2 )
f ( x n 2 ) 4 f ( x n 1 ) f ( x n )
2h
6
6
2h
h
f ( x0 ) 4 f ( x1 ) f ( x3 ) ... f ( xn1 ) 2 f ( x2 ) f ( x4 ) ... f ( xn2 ) f ( xn )
3
n 1
n2
h
f ( x 0 ) 4 f ( x i ) 2 f ( xi ) f ( x n )
3
i 1
i2
i odd
i even
n 1
n 2
ba
f ( x )dx
f ( x 0 ) 4 f ( x i ) 2 f ( xi ) f ( x n )
3n
i 1
i 2
i odd
i even
y=
Page 42
Lab manuals
1
27
Numerical Analysis
64 125
gx =
156
Simpson 3/8 Code
clc
clear all
f=@(x)x^3;
a=1;
b=5;
n=6;
h=(b-a)/n;
p=0;
for i=a:h:b
p=p+1;
x(p)=i;
y(p)=i^3;
end
x
y
gx=((3*h/8)*((y(1)+y(7))+2*(y(4))+3*(y(2)+y(3)+y(5)+y(6) )))
Result
x=
1.0000
1.6667
2.3333
3.0000
3.6667
4.3333
5.0000
y=
1.0000
Page 43
Date:
Lab manuals
Numerical Analysis
Date:
gx =
156.0000
Conclusions
Experiment # 15
Title
Implementation of Solution of First Order Differential Equations by Runge-Kutta Method
Software
MATLAB
Page 44
Lab manuals
Numerical Analysis
Date:
Theory
Runge-Kutta 2nd order method
Eulers method is given by
yi 1 yi f xi , yi h
where
x0 0
y 0 y ( x0 )
h xi 1 xi
To understand the Runge-Kutta 2nd order method, we need to derive Eulers method from the Taylor series.
y i 1 y i
dy
dx
xi 1 xi 1 d
2! dx
xi , yi
y i f ( xi , y i ) xi 1 xi
3! dx
xi 1 xi 2 1 d
2
xi , yi
xi 1 xi 3 ...
xi , yi
1
1
2
3
f ' ( xi , y i ) xi 1 xi f ' ' ( xi , y i ) xi 1 xi ...
2!
3!
As you can see the first two terms of the Taylor series
yi 1 yi f xi , y i h
are Eulers method and hence can be considered to be the Runge-Kutta 1st order method.
The true error in the approximation is given by
Et
f xi , yi 2 f xi , yi 3
h
h ...
2!
3!
So what would a 2nd order method formula look like. It would include one more term of the Taylor series as
follows.
y i 1 y i f xi , y i h
1
f xi , y i h 2
2!
Page 45
Lab manuals
Numerical Analysis
f x, y
Date:
in the above method. What Runge and Kutta did
y i 1 y i a1 k1 a 2 k 2 h
where
k1 f x i , y i
k 2 f xi p1 h, y i q11k1 h
This form allows one to take advantage of the 2nd order method without having to calculate
f x, y
x
were only a function of . There are other versions of the 4th order method just like there are several
versions of the second order methods. The formula developed by Kutta is
yi 1 yi
1
k1 3k 2 3k 3 k 4 h
8
where
k1 f x i , y i
1
1
k 2 f xi h, y i hk1
3
3
2
1
k 3 f xi h, y i hk1 hk 2
3
3
k 4 f xi h, y i hk1 hk 2 hk 3
Page 46
Lab manuals
Numerical Analysis
f x, y
Date:
x
is only a function of .
Code
clc
clearall
closeall
fx='y*x^2-1.2*y' ;
f=inline(fx) ;
% x0, initial condition
x0=0 ;
% y0, corresponding value of y at x0
y0=1 ;
% xf, x location at where you wish to see the solution to the ODE
xf=2 ;
a2=0.5 ;
% n, number of steps to take
n=5 ;
% Calculates constants used in the method
h=(xf-x0)/n ;
a1=1-a2 ;
p1=1/2/a2 ;
q11=p1 ;
xa(1)=x0 ;
ya(1)=y0 ;
fori=1:n
% Adding Step Size
xa(i+1)=xa(i)+h
% Calculating k1 and k2
k1 = f(xa(i),ya(i))
k2 = f(xa(i)+p1*h,ya(i)+q11*k1*h)
% Using 2nd Order Runge-Kutta formula
ya(i+1)=ya(i)+(a1*k1+a2*k2)*h
end
% The following finds what is called the 'Exact' solution
xspan = [x0 xf]
[x,y]=ode45(f,xspan,y0)
[x' y']
plot(x, y,'r*')
holdon
plot(ya)
Result
xa =
Wah Engineering College
Page 47
Lab manuals
0
Numerical Analysis
0.4000
k1 =
-1.2000
k2 =
-0.5408
ya =
1.0000
0.6518
xa =
0
0.4000
0.8000
k1 =
-0.6779
k2 =
-0.2132
ya =
1.0000
0.6518
0.4736
xa =
0
0.4000
0.8000
1.2000
k1 =
-0.2652
k2 =
0.0882
ya =
1.0000
0.6518
0.4736
0.4382
xa =
0
0.4000
0.8000
1.2000
1.600
Page 48
Date:
Lab manuals
Numerical Analysis
Conclusion
Page 49
Date: