matlab assignment latest~~1

22
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 v (t )= gm c ( 1e −( c/ m) t ) . Where v (t ) = velocity of parachutist = 40 m / s , g = gravitational constant = 9.8 m / s 2 , m = the mass of the parachutist = 68.1 kg . Find the drag coefficient, c at the time t=10 seconds using the initial bracket of the root as [13, 16] and iterate until ε a 0.001 %. 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

Upload: syedhaq89

Post on 17-Nov-2014

1.914 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Matlab Assignment Latest~~1

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

v ( t )=gmc

(1−e−(c /m )t ).

Where v ( t )= velocity of parachutist =40 m /s ,

g = gravitational constant =9 .8 m /s2,

m = the mass of the parachutist =68 . 1 kg .

Find the drag coefficient, c at the time t=10 seconds using the initial bracket of the root as [13,

16] and iterate until ε a≤0 .001 %.

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; %initiationwhile(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 satisfiedend format long;disp('the root for this equation is : ')disp(xr)

Page 2: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

2

Page 3: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 2

Develop an M-file to implement the false position method. solve the following problem.

The velocity of falling parachutist is given as

v ( t )=gmc

(1−e−(c /m )t ).

Where v ( t )= velocity of parachutist =40 m /s ,

g = gravitational constant =9 .8 m /s2,

m = the mass of the parachutist =68 .1 kg .

Find the drag coefficient, c at the time t=10 seconds using the initial bracket of the root as [13,

16] and iterate until ε a≤0 .001 %.

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 endformat long; disp ('the root for this equation is : ')disp(xr)

Page 4: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

4

Page 5: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 3

Locate the root of f ( x )=2 sin(√ x )−x

(a) Using the MATLAB function fzero with an initial guess of x0=2 .

(b) Using Newton-Raphson method by writing a function M-file. Use an initial guess of x0=0 .5 and iterate until ε a≤0 .001 %.

a)

5

Page 6: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

6

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,endend fprintf('\n\nthe root for this question is %2.6f\n',xr);

Page 7: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 4

Develop an M-file to implement the modified secant method. Using this program determine the

loest positive root of f ( x )=8 sin (x ) e−x−1 with an initial guess of x0=0 .3 and δ=0 .01 .

Iterate untilε a=0 .000001 % .

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)

Page 8: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 5

Find the solution of the following set of linear algebraic equationsx+2 y+3 z=13 x+3 y+4 z=12 x+3 y+3 z=2

a) Using the left division

b) Using Gaussian elimination

8

Page 9: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

c) Using LU decomposition

9

Page 10: Matlab Assignment Latest~~1

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

e2 f 2 g2

e3 f 3 g3

. . .. . .

. . .en−1 f n−1 gn−1

en f n

]×[x1

x2

x3

.

.

.xn−1

xn

]=[r1

r2

r3

.

.

.rn−1

rn

]Thomas Algorithm:

(i) Decomposition:

ek=ekf k−1 and

f k=f k−ek . gk−1 , where k=2,3,4 ,−−−−−−, n .

(ii) Forward substitution:rk=r k−ek . rk−1 , where k=2,3,4 ,−−−−−−, n .

(iii) Back substitution:xn=

rnf n

10

Page 11: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

and xk=

(rk−gk . xk+1 )f k , where k=n−1, n−2 ,−−−− ,2,1 .

Using your program, solve the following tridiagonal system.

[ 2 .01475 −0 . 020875−0 . 020875 2 .01475 −0 . 020875

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

]¿ =

[ 4 .17500

2. 0875]

11

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))endx(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

Page 12: Matlab Assignment Latest~~1

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 x1−2 x2+3 x3+2 x4=54 .5

2x1+8x2−2 x3+3 x4=−14

−3 x1+2 x2+11 x3−4 x4=12 .5

−2 x1+3 x2+2x3+10 x4=−21

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

Page 13: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 8

. Develop a script M-file to estimate f (2.75 ) using Lagrange interpolating polynomials of order 1, 2 and 3 for the following data.

x 0 1 2 3 4 5f(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

f ( x )= x2

(1+x2 ) .

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 endendf=(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);

Page 14: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

Question 9

. The force on a sailboat mast can be represented by the following function:

F=∫0

H200 ( z

7+z )e−2 .5 z/H dz

where z=

the elevation above the deck and H=

the height of the mast. Compute F for the

case whereH=30

using

(i) the M-file for Trapezoidal rule with the step size h=0 .1

.

the MATLAB trapz function.

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); endt2=f(H);value=h/2*(t0+2*t1+t2);

Page 15: Matlab Assignment Latest~~1

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

v ( t )=gmc

(1−e−(c /m )t ).

Where v ( t )= velocity of parachutist,

g = gravitational constant = 9 .8 m /s2,

m = mass of the parachutist = 45 kg ,

c = the drag coefficient = 32 .5 kg/s .

If the distance, d, traveled by the parachutist is given by

15

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); endt2=f(H);value=h/2*(t0+2*t1+t2);

Page 16: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

d=∫0

6

v ( t )dt

,

find the distance using Simpson’s 1/3 rule for the segments 10, 20, 50, and 100.

16

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;endP=0;for i=2:2:n P=P+V(t(i));endT=0;for i=3:2:n-1 T=T+V(t(i));endd=(h/3)*(V(a)+(4*P)+(2*T)+V(b));fprintf('\nThe distance travelled by the parachutist=%9.6f\n',d)

Page 17: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

17

Page 18: Matlab Assignment Latest~~1

i(t)

E

EAB 2113 NUMERICAL METHOD

Question 11

Develop an M-file for Euler’s 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

3didt

=2 i+3e−2t

, i(0 )=2

.

Using your program, solve the above initial value problem over the interval from t=0 to 2 with

the step sizeh=0 .1 .

18

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 variabletx=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

Page 19: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

19

Page 20: Matlab Assignment Latest~~1

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 .

dydx

=√ x2+ y , y (0 )=0 . 8.

20

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

Page 21: Matlab Assignment Latest~~1

EAB 2113 NUMERICAL METHOD

21