Vous êtes sur la page 1sur 20

EAB 2113 NUMERICAL METHOD

Question 1
Develop an M-file to implement the bisection method. Using this program solve the
following problem.
The velocity of falling parachutist is given as
) 1 ( ) (
) / ( t m c
e
c
gm
t v

.
Where
) (t v
= velocity of parachutist =
s m/ 40
,
g
= gravitational constant =
2
/ 8 . 9 s m ,
m = the mass of the parachutist =
kg 1 . 68
.
Find the drag coefficient, c at the time 10 t seconds using the initial bracket
of the root as [13, 16] and iterate until
001 . 0
a

%.
1
% Data obtain from the question

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

if xr~=0, ea=abs((xr-xrold)/xr)*100; end %calculate ea if xr not real
answer

test=f(xl)*f(xr);
if test<0
xu=xr;
elseif test>0
xl=xr;
else ea=0;
end

if ea<=es, break,end %end loop if the situation is satisfied
end

format long;
disp('the root for this equation is : ')
disp(xr)

EAB 2113 NUMERICAL METHOD
Question 2
2
EAB 2113 NUMERICAL METHOD
Develop an M-file to implement the false position method. solve the following
problem.
The velocity of falling parachutist is given as
) 1 ( ) (
) / ( t m c
e
c
gm
t v

.
Where
) (t v
= velocity of parachutist =
s m/ 40
,
g
= gravitational constant =
2
/ 8 . 9 s m ,
m = the mass of the parachutist =
kg 1 . 68
.
Find the drag coefficient, c at the time 10 t seconds using the initial bracket
of the root as [13, 16] and iterate until
001 . 0
a

%.
3
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)));

if xr~=0, ea=abs((xr-xrold)/xr)*100; end
test=f(xl)*f(xr);
if test<0
xu=xr;
elseif test>0
xl=xr;
else test>0
ea=0;
end

if ea<=es, break, end

end
format long;

disp ('the root for this equation is : ')
disp(xr)
EAB 2113 NUMERICAL METHOD
Question 3
4
EAB 2113 NUMERICAL METHOD
Locate the root of x x x f ) sin( 2 ) (
(a) Using the MATLAB function fzero with an initial guess of 2
0
x .
(b) Using Newton-Raphson method by writing a function M-file. Use an
initial guess of
5 . 0
0
x
and iterate until
001 . 0
a

%.
a)
5
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

fprintf('\n\nthe root for this question is %2.6f\n',xr);
EAB 2113 NUMERICAL METHOD
Question 4
6
EAB 2113 NUMERICAL METHOD
Develop an M-file to implement the modified secant method. Using this
program determine the loest positive root of 1 ) sin( 8 ) (
x
e x x f with an
initial guess of
3 . 0
0
x
and 01 . 0 . Iterate until
% 000001 . 0
a

.
Question 5
7
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

fprintf('\nThe lowest positive root of function is %10.6f with approximate
error %7.4f',xo,Ea)
EAB 2113 NUMERICAL METHOD
Find the solution of the following set of linear algebraic equations
2 3 3 2
1 4 3 3
1 3 2
+ +
+ +
+ +
z y x
z y x
z y x
a) Using the left division
b) Using Gaussian elimination
c) Using LU decomposition
8
EAB 2113 NUMERICAL METHOD
Question 6
9
EAB 2113 NUMERICAL METHOD
Develop a function M-file Tridiag.m to solve the following tridiagonal system
with the Thomas algorithm.
1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
1
1
1
1
1
1
]
1


n
n
n
n
n n
n n n
r
r
r
r
r
x
x
x
x
x
f e
g f e
g f e
g f e
g f
1
3
2
1
1
3
2
1
1 1 1
3 3 3
2 2 2
1 1
.
.
.
.
.
.
. . .
. . .
. . .
Thomas Algorithm:
(i) Decomposition:
1

k
k
k
f
e
e
and
1
.


k k k k
g e f f
, where
n k , , 4 , 3 , 2
.
(ii) Forward substitution:
1
.


k k k k
r e r r
, where
n k , , 4 , 3 , 2
.
(iii) Back substitution:
n
n
n
f
r
x

and
k
k k k
k
f
x g r
x
) . (
1 +

, where
1 , 2 , , 2 , 1 n n k
.
Using your program, solve the following tridiagonal system.

1
1
1
1
]
1

01475 . 2 020875 . 0
020875 . 0 01475 . 2 020875 . 0
020875 . 0 01475 . 2 020875 . 0
020875 . 0 01475 . 2

1
1
1
1
]
1

4
3
2
1
x
x
x
x
=
1
1
1
1
]
1

0875 . 2
0
0
175 . 4
10
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);

fprintf('factor=%2.4f\t f(k)=%2.4f\t r(k)=%2.4f\n',factor,f(k),r(k))
end
x(n)=r(n)/f(n);
for k=n-1:-1:1
x(k)=(r(k)-g(k)*x(k+1))/f(k);
fprintf('x(k)=%2.4f\n',x(k))
end
EAB 2113 NUMERICAL METHOD
Question 7
11
EAB 2113 NUMERICAL METHOD
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.
21 10 2 3 2
5 . 12 4 11 2 3
14 3 2 8 2
5 . 54 2 3 2 9
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
+ + +
+ +
+ +
+ +
x x x x
x x x x
x x x x
x x x x
Question 8
12
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
EAB 2113 NUMERICAL METHOD
. Develop a script M-file to estimate
) 75 . 2 ( f
using Lagrange interpolating polynomials
of order 1, 2 and 3 for the following data.
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
) 1 (
) (
2
2
x
x
x f
+

.
13
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));
fprintf('Error=%6f%%\n',et);

EAB 2113 NUMERICAL METHOD
Question 9
. The force on a sailboat mast can be represented by the following function:

,
_

H
H z
dz e
z
z
F
0
/ 5 . 2
7
200
where z the elevation above the deck and H the height of the mast.
Compute F for the case where 30 H using
(i) the M-file for Trapezoidal rule with the step size 1 . 0 h .
the MATLAB trapz function.
Question 10
14
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);
break
end
fprintf('The Trapezoidal Integral: %2.8f\n',value)
EAB 2113 NUMERICAL METHOD
Develop an M-file to implement Simpsons 1/3 rule. Using your program solve
the following problem.
The velocity of falling parachutist is given as
) 1 ( ) (
) / ( t m c
e
c
gm
t v

.
Where
) (t v
= velocity of parachutist,
g
= gravitational constant =
2
/ 8 . 9 s m ,
m = mass of the parachutist =
kg 45
,
c = the drag coefficient =
s kg / 5 . 32
.
If the distance, d, traveled by the parachutist is given by

6
0
) ( dt t v d ,
find the distance using Simpsons 1/3 rule for the segments 10, 20, 50, and
100.
15
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)
EAB 2113 NUMERICAL METHOD
16
EAB 2113 NUMERICAL METHOD
Question 11
Develop an M-file for Eulers method to solve a first order ordinary differential
equation (ODE).
The current around the circuit at time t is governed by the following
differential equation
t
e i
dt
di
2
3 2 3

+
,
2 ) 0 ( i
.
Using your program, solve the above initial value problem over the interval
from 0 t to 2 with the step size 1 . 0 h .
17
i(t)
E
function [t,i]= Eulode(didt,tspan,i0,h)
%input:
%didt= name of the function f(t,i)
%tspan= [ti,tf] where ti and tf= initial and final valus of independent
%variable
%y0= initial value of the dependent variable
%h=step size
%output:
%[t,i] where t= vector of the independent variable
% i= vector of the solution for the dependent variable
tx=tspan(1);
ty=tspan(2);
t=(tx:h:ty)';
n=length(t);
i=i0*ones(n,1);
for x=1:n-1
i(x+1)=i(x)+feval(didt,t(x),i(x))*h;
end
EAB 2113 NUMERICAL METHOD
18
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 0 x to 2 with the step size 2 . 0 h .
8 . 0 ) 0 ( ,
2
+ y y x
dx
dy
.
19
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
EAB 2113 NUMERICAL METHOD
20

Vous aimerez peut-être aussi