Matlab Assignment Latest 1
Matlab Assignment Latest 1
Question 1
Develop an M-file to implement the bisection method. Using this program solve the following problem.
gm
v (t )= (1−e− ( c /m)t )
c .
Find the drag coefficient, c at the time t=10 seconds using the initial bracket of the root as
f=inline('((9.81*68.1)/x)*(1-exp(-(x/68.1)*10))-40','x');
xl=13;
xu=16;
es=0.001;
%computation
xr=xl; %initiation
while(1) %since we dont know how many interation will take place
xrold=xr; %keep the previous xr
xr=(xl+xu)/2; %formula for bisection method
test=f(xl)*f(xr);
if test<0
xu=xr;
elseif test>0
xl=xr;
else ea=0;
end
format long;
disp('the root for this equation is : ')
disp(xr)
1
EAB 2113 NUMERICAL METHOD
2
EAB 2113 NUMERICAL METHOD
Question 2
Develop an M-file to implement the false position method. solve the following problem.
gm
v (t )= (1−e− ( c /m)t )
c .
Find the drag coefficient, c at the time t=10 seconds using the initial bracket of the root as
f=inline('((9.81*68.1)/x)*(1-exp (-(x/68.1)*10))-40','x');
xl=13;
xu=16;
es=0.001;
xr=xl
while (1)
xrold=xr;
xr=xu-(((f(xu)*(xl-xu))/f(xl)-f(xu)));
end
format long;
3
EAB 2113 NUMERICAL METHOD
4
EAB 2113 NUMERICAL METHOD
Question 3
(a) Using the MATLAB function fzero with an initial guess of
x 0=2 .
(b) Using Newton-Raphson method by writing a function M-file. Use an initial guess of
x 0=0. 5 and iterate until ε a≤0. 001 %.
a)
5
EAB 2113 NUMERICAL METHOD
function root=newraph1(f,df,xr,es)
%f=inline('2*sin(sqrt(x))-x')
%df=inline('-cos(sqrt(x))/sqrt(x)-1')
while(1)
xr_old=xr;
xr=xr-(f(xr)/df(xr));
if xr~=0,ea=abs((xr-xr_old)/xr)*100;
end
if ea<=es,break,end
end
6
EAB 2113 NUMERICAL METHOD
Question 4
Develop an M-file to implement the modified secant method. Using this program determine the
f (x )=8 sin( x ) e− x−1 with an initial guess of x 0=0. 3 and
loest positive root of
δ=0 .01 . Iterate until ε a=0. 000001 % .
f=inline('8*sin(x)*exp(-x)-1','x')
Ea=1;
xo=0.3;
fprintf('The initial guess is %.2f',xo)
while(Ea>0.000001)
xold=xo;
xo=xo-(0.01*xo*f(xo))/(f(xo+0.01+xo)-f(xo));
Ea=((abs(xo-xold))/xo)*100;
end
7
EAB 2113 NUMERICAL METHOD
Question 5
8
EAB 2113 NUMERICAL METHOD
c) Using LU decomposition
9
EAB 2113 NUMERICAL METHOD
Question 6
Develop a function M-file Tridiag.m to solve the following tridiagonal system with the Thomas
algorithm. f 1 g1 x1 r1
[ ][ ][ ]
e2 f 2 g2 x2 r2
e3 f 3 g3 x3 r3
. . . ×. =.
. . . . .
. . . . .
e n−1 f n−1 g n−1 x n−1 r n−1
en fn xn rn
Thomas Algorithm:
(i) Decomposition:
ek
ek=
f k −1 and
10
EAB 2113 NUMERICAL METHOD
(r k −gk . x k +1 )
xk =
and
fk , where k=n−1,n−2,−−−−,2,1 .
function x=Tri(e,f,g,r)
%e=input('e= ');
%f=input('f= ');
%g=input('g= ');
%r=input('r= ');
e=[0 -0.020875 -0.020875 -0.020875];
f=[2.01475 2.01475 2.01475 2.01475];
g=[-0.020875 -0.020875 -0.020875 0];
r=[4.175 0 0 2.0875];
n=length(f);
for k=2:n
factor=e(k)/f(k-1);
f(k)=f(k)-factor*g(k-1);
r(k)=r(k)-factor*r(k-1);
11
EAB 2113 NUMERICAL METHOD
Question 7
Q7. Develop a MATLAB script file to determine the solution of the following system of
linear equations using the Gauss-Seidel iteration method by performing first seven
iterations.
9 x 1 −2 x2 +3 x3 +2 x 4 =54 .5
2 x 1 +8 x 2 −2 x 3 + 3 x 4 =−14
−3 x1 +2 x 2 +11 x 3 − 4 x 4 =12. 5
−2 x 1 + 3 x 2 + 2 x 3 +10 x 4 =−21
i=1;x1=0;x2=0;x3=0;x4=0;
disp(' i x1 x2 x3 x4')
fprintf('%2.0f %8.5f %8.5f %8.5f %8.5f\n',i,x1,x2,x3,x4)
for i=2:8
x1=(54.5-(-2*x2+3*x3+2*x4))/9;
x2=(-14-(2*x1-2*x3+3*x4))/8;
x3=(12.5-(-3*x1+2*x2-4*x4))/11;
x4=(-21-(-2*x1+3*x2+2*x3))/10;
fprintf('%2.0f %8.5f %8.5f %8.5f %8.5f\n',i,x1,x2,x3,x4)
end
12
EAB 2113 NUMERICAL METHOD
Question 8
x 0 1 2 3 4 5
f(x 0 0.5 0.8 0.9 0.941176 0.961538
)
For each estimate find the true percent relative error if the try function is given by
2
x
f (x )=
(1+x 2 ) .
function fint=LagrangeINT(x,y,xint)
n=length(x);
for i=1:n
L(i)=1;
for j=1:n
if j~=i
L(i)=L(i)*(xint-x(j))/(x(i)-x(j));
end
end
end
f=(xint^2)/(1+xint^2);
et=abs((f-sum(y.*L))/f)/100;
fprintf('\nx=%.8f\n',sum(y.*L)); 13
fprintf('Error=%6f%%\n',et);
EAB 2113 NUMERICAL METHOD
Question 9
where z= the elevation above the deck and H= the height of the mast. Compute F for
the case where H=30 using
(i) the M-file for Trapezoidal rule with the step size h=0 .1 .
the MATLAB trapz function.
function evaluate = trapezoidal1(f,H,h)
%f=inline('200*(z/(7+z))*exp(-25*z/30)')
%y(for the trapz function)=200*(z./(7+z)).*exp(-25.*z./30)
a=0;
while(1)
n=(H-a)/h;
t0=f(a);
t1=0;
for i=1:n-1
t1=t1+f(a+h*i);
end
t2=f(H);
value=h/2*(t0+2*t1+t2); 14
break
end
fprintf('The Trapezoidal Integral: %2.8f\n',value)
EAB 2113 NUMERICAL METHOD
Question 10
Develop an M-file to implement Simpson’s 1/3 rule. Using your program solve the following
problem.
The velocity of falling parachutist is given as
gm
v (t )= (1−e−( c/m) t )
c .
15
EAB 2113 NUMERICAL METHOD
6
d=∫ v (t )dt
0 ,
find the distance using Simpson’s 1/3 rule for the segments 10, 20, 50, and 100.
function distance=simpson(V,a,b,n)
h=(b-a)/n;
t(1)=a;
for i=2:n+1
t(i)=t(i-1)+h;
end
P=0;
for i=2:2:n
P=P+V(t(i));
end
T=0;
for i=3:2:n-1
T=T+V(t(i));
end
d=(h/3)*(V(a)+(4*P)+(2*T)+V(b));
fprintf('\nThe distance travelled by the parachutist=%9.6f\n',d)
16
EAB 2113 NUMERICAL METHOD
17
EAB 2113 NUMERICAL METHOD
Question 11
Develop an M-file for Euler’s method to solve a first order ordinary differential equation (ODE).
i(t)
The current around the circuit at time t is governed by the following differential equation
di
3 =2 i+3 e−2 t
dt , i(0)=2 .
Using your program, solve the above initial value problem over the interval from t=0 to 2
with the step size h=0 .1 .
18
EAB 2113 NUMERICAL METHOD
19
EAB 2113 NUMERICAL METHOD
Question 12
Develop an M-file for Fourth-Order Runge-Kutta method to solve a first order ordinary
differential equation (ODE).
Using your program solve the following initial value problem over the interval from x=0 to
2 with the step size h=0 .2 .
dy
=√ x 2 + y , y( 0)=0. 8
dx .
function [x,y]=rk40de(dydx,xspan,y0,h)
xi=xspan(1);
xf=xspan(2);
x=(xi:h:xf)';
n=length(x);
y=y0*ones(n,1);
for i=1:n-1
k1=feval(dydx,x(i),y(i));
k2=feval(dydx,x(i)+(1/2)*h,y(i)+(1/2)*k1*h);
k3=feval(dydx,x(i)+(1/2)*h,y(i)+(1/2)*k2*h);
k4=feval(dydx,x(i)+h,y(i)+k3*h);
y(i+1)=y(i)+(1/6)*(k1+2*k2+2*k3+k4)*h;
end
20
EAB 2113 NUMERICAL METHOD
21