You are on page 1of 8

Q1 Gauss-Seidel Method Program

A=[1 3 -2;2 -1 -1;2 -1 -3];


b=[2.4;1;-.2];
x=[0;0;0];
for i=2:5
x(1,i)=(b(1)-A(1,2)*x(2,i-1)-A(1,3)*x(3,i-1))/A(1,1);
x(2,i)=(b(2)-A(2,1)*x(1,i)-A(2,3)*x(3,i-1))/A(2,2);
x(3,i)=(b(3)-A(3,1)*x(1,i)-A(3,2)*x(2,i))/A(3,3);
end
disp(' i# x')
disp([(1:i)' x'])

i# x

1.0000 0 0 0

2.0000 2.4000 3.8000 0.4000

3.0000 -8.2000 -17.8000 0.5333

4.0000 56.8667 112.2000 0.5778

5.0000 -333.0444 -667.6667 0.5926


Q2a Euler Method Program
clear
syms Y(t),yt=dsolve('DY=t*Y^(1/3)','Y(1)=1');
y0=double(subs(yt,t,0))
a=0;
b=1;
h=.1;
m= (b - a)/h;
xn(1) = a;
yn(1) = y0;
syms x y(x)
f=x*y^(1/3);
f2=diff(f);f2=subs(f2,diff(y),f);
f3=diff(f2);f3=subs(f3,diff(y),f);
f4=diff(f3);f4=subs(f4,diff(y),f);
f5=diff(f4);f5=subs(f5,diff(y),f);
disp('iteration y(x)')
F=factorial([1 2 3 4 5]);
for j=1:m
yn(j+1) = yn(j) + h*subs(f,{x,y},{xn(j),yn(j)});
xn(j+1) = a + h*j;
disp([j,yn(j)])
end

y0 =

0.5443

iteration y(x)
1.0000 0.5443

2.0000 0.5443

3.0000 0.5525

4.0000 0.5689

5.0000 0.5938

6.0000 0.6274

7.0000 0.6702

8.0000 0.7227

9.0000 0.7855

10.0000 0.8593
Q2b Taylor Method Program
clear
syms Y(t),yt=dsolve('DY=t*Y^(1/3)','Y(1)=1');
y0=double(subs(yt,t,0))
a=0;
b=1;
h=.1;
m= (b - a)/h;
xn(1) = a;
yn(1) = y0;
syms x y(x)
f=x*y^(1/3);
f2=diff(f);f2=subs(f2,diff(y),f);
f3=diff(f2);f3=subs(f3,diff(y),f);
f4=diff(f3);f4=subs(f4,diff(y),f);
f5=diff(f4);f5=subs(f5,diff(y),f);
disp('iteration y(x)')
F=factorial([1 2 3 4 5]);
for j=1:m
yn(j+1) = yn(j) + h*double(subs(f,{x,y},{xn(j),yn(j)}))...
+ h^2*double(subs(f2,{x,y},{xn(j),yn(j)}))/F(2)+...
h^3*double(subs(f3,{x,y},{xn(j),yn(j)}))/F(3) +...
h^4*double(subs(f4,{x,y},{xn(j),yn(j)}))/F(4)+ ...
h^5*double(subs(f5,{x,y},{xn(j),yn(j)}))/F(5);
xn(j+1) = a + h*j;
disp([j,yn(j)])
end
y0 =

0.5443

iteration y(x)
1.0000 0.5443

2.0000 0.5484

3.0000 0.5607

4.0000 0.5815

5.0000 0.6109

6.0000 0.6495

7.0000 0.6977

8.0000 0.7562

9.0000 0.8255

10.0000 0.9065
Q3a RK4 Method Program
clear
a=0;b=3;hn=[.125 .25];y0=1;
syms Y T
f=(T-Y)/2;
for i=1:2
h=hn(i)
m= (b - a)/h;
t(1) = a;
y(1) = y0;
disp('iteratiion y(x)')
for j=1:m
k1=h*double(subs(f,{T,Y},{t(j),y(j)}));
k2=h*double(subs(f,{T,Y},{t(j)+0.5*h,y(j)+0.5*k1}));
k3=h*double(subs(f,{T,Y},{t(j)+0.5*h,y(j)+0.5*k2}));
k4=h*double(subs(f,{T,Y},{t(j),y(j)+k3}));
y(j+1)=y(j)+(1/6)*(k1+2*k2+2*k3+k4);
t(j+1) = a + h*j;
disp([j,y(j)])
end
end

h =

0.1250

iteratiion y(x)
1 1

2.0000 0.9419

3.0000 0.8950

4.0000 0.8584

5.0000 0.8316

6.0000 0.8141

7.0000 0.8051

8.0000 0.8043

9.0000 0.8111

10.0000 0.8251

11.0000 0.8458

12.0000 0.8728

13.0000 0.9058
14.0000 0.9443

15.0000 0.9881

16.0000 1.0367

17.0000 1.0901

18.0000 1.1477

19.0000 1.2094

20.0000 1.2750

21.0000 1.3442

22.0000 1.4167

23.0000 1.4925

24.0000 1.5712

h =

0.2500

iteratiion y(x)
1 1

2.0000 0.8923

3.0000 0.8266

4.0000 0.7980

5.0000 0.8022

6.0000 0.8352

7.0000 0.8937

8.0000 0.9747

9.0000 1.0756

10.0000 1.1940

11.0000 1.3279

12.0000 1.4754
Q3b RK45 Method Program
clear
a=0;b=3;hn=[.125 .25];y0=1;
syms Y T
f=(T-Y)/2;
for i=1:2
h=hn(i)
m= (b - a)/h;
t(1) = a;
y(1) = y0;
disp('iteratiion y(x)')
for j=1:m
k1=h*double(subs(f,{T,Y},{t(j),y(j)}));
k2=h*double(subs(f,{T,Y},{t(j)+0.25*h,y(j)+0.25*k1}));
k3=h*double(subs(f,{T,Y},{t(j)+3/8*h,y(j)+3/32*k1+9/32*k2}));
k4=h*double(subs(f,{T,Y},{t(j)+12/13*h,y(j)+1932/2197*k1-
7200/2197*k2+7296/2197*k3}));
k5=h*double(subs(f,{T,Y},{t(j)+h,y(j)+439/216*k1-8*k2+3680/513*k3-
845/4104*k4}));
y(j+1)=y(j)+25/216*k1+1408/2565*k3+2197/4104*k4-1/5*k5;
t(j+1) = a + h*j;
disp([j,y(j)])
end
end

h =

0.1250

iteratiion y(x)
1 1

2.0000 0.9432

3.0000 0.8975

4.0000 0.8621

5.0000 0.8364

6.0000 0.8198

7.0000 0.8119

8.0000 0.8119

9.0000 0.8196

10.0000 0.8343

11.0000 0.8558
12.0000 0.8835

13.0000 0.9171

14.0000 0.9562

15.0000 1.0006

16.0000 1.0498

17.0000 1.1036

18.0000 1.1618

19.0000 1.2240

20.0000 1.2899

21.0000 1.3595

22.0000 1.4324

23.0000 1.5085

24.0000 1.5876

h =

0.2500

iteratiion y(x)
1 1

2.0000 0.8975

3.0000 0.8364

4.0000 0.8119

5.0000 0.8196

6.0000 0.8558

7.0000 0.9171

8.0000 1.0006

9.0000 1.1036

10.0000 1.2240
11.0000 1.3595

12.0000 1.5085

You might also like