Anda di halaman 1dari 31

NAMA : LISA APRILIA

NIM : A410180175

HARI, TANGGA : KAMIS, 28 JANUARI 2021

MATA UJI :PRAKTIKUM METODE NUMERIK

DOSEN PENGUJI : ADI NUR CAHYO

1. 𝑓(𝑥) = 𝑥 6 − 𝑥 – 1
Metode Bisection
M-FILE
%program bisection denganmatlabsimbolik
%input program

syms x
f=input('masukkanfungsi(dalam x)=');
a=input('masukkanbatasbawah(a)=');
b=input('masukkanbatasatas(b)=');

%menghitungdanmenyeleksihargaf(a) dan f(b)


fa=subs(f,'x',a);
fb=subs(f,'x',b);
iffa*fb>0
error('syarat f(a)*f(b)<0 tidakterpenuhi, ULANG!!!')
return
end
n=input('masukkanbanyakiterasi=');
exact=input('masukkansalahsatusolusieksak=');

%membuat header tabel bisection


disp(' ')
disp('metodebagidua')
disp('===============')
disp('i akar error')
disp('================')

%perulanganpadametode bisection
for i=1:n
xr=(a+b)/2;
fxr=subs(f,'x',xr);
iffxr*fa>0
a=xr;
elseiffxr*fa<0
b=xr;
end
error=abs(exact-xr);
fprintf('%2.0f %5.5f %2.5f\n',i,xr,error)
end

Command Windows
masukkanfungsi(dalam x)=x^6-x-1
masukkanbatasbawah(a)=1
masukkanbatasatas(b)=2
masukkanbanyakiterasi=7
masukkansalahsatusolusieksak=1.1347

metodebagidua
===============
iakar error
================
1 1.50000 0.36530
2 1.25000 0.11530
3 1.12500 0.00970
4 1.18750 0.05280
5 1.15625 0.02155
6 1.14063 0.00592
7 1.13281 0.00189

MetodeRegula False

M-FILE

%% Program MetodePenyelesaianpersamaannonlinier - Metodeposisipalsu

% Program Metodeiterasititiktetapinidimodifikasioleh MZA math.LecturesYoutube Channel

% Input

% fungsi non linier yang didefinisikandalammfilef.m

% nilaiawalpertamadannilaiawalkedua

% galattoleransi
% iterasimaksimal

% Output

% iterasi, solusidangalat

clear

clc

syms x

disp(' Metodeposisipalsu')

disp('Tekan Enter untuklanjut')

pause

clc

f=input('Fungsi f:');

a=input('Masukkanbatasbawah :');

b=input('Masukkanbatasatas :');

galat1=input('MasukkangalatToleransi :');

ya=subs(f,a) ; %Nilai f(a)

yb=subs(f,b);

iter=0;

xm1=a;

galat=abs((b-a)/b);

whileya*yb>0

disp('Ingat f(a)*f(b)>0, berartitidakadaakardalamselang'),

break,

end
fprintf('\n iterasi a b xm f(xm) Galat\n');

whilegalat>galat1

iter=iter+1;

xm=b-((yb*(b-a))/(yb-ya));

yxm=subs(f,xm);

a1=a;b1=b; % InisialisasiuntukTampilan

whileyxm==0, break,

end

ifya*yxm<0

b=xm;

yb=yxm;

else

a=xm;

ya=yxm;

end;

galat=abs((xm-xm1)/xm);

xm1=xm;

fprintf('%10.0f %6.10f %6.10f %6.10f %6.10f %6.10f\n',[iter;a1;b1;xm;yxm;galat])

end

fprintf('Akarnyaadalah = %6.10f\n',xm)

Command Windows
Fungsi f:'x^6-x-1'
Masukkanbatasbawah :1
Masukkanbatasatas :2
MasukkangalatToleransi :0.001

iterasi a b xm f(xm) Galat


1 1.0000000000 2.0000000000 1.0161290323 -0.9153677138 0.0158730159
2 1.0161290323 2.0000000000 1.0306747541 -0.8319214145 0.0141128148
3 1.0306747541 2.0000000000 1.0437166007 -0.7510231553 0.0124955822
4 1.0437166007 2.0000000000 1.0553470310 -0.6737806512 0.0110204796
5 1.0553470310 2.0000000000 1.0656672820 -0.6010309811 0.0096843087
6 1.0656672820 2.0000000000 1.0747834104 -0.5333465995 0.0084818284
7 1.0747834104 2.0000000000 1.0828028202 -0.4710580510 0.0074061589
8 1.0828028202 2.0000000000 1.0898313818 -0.4142873094 0.0064492193
9 1.0898313818 2.0000000000 1.0959711796 -0.3629861831 0.0056021526
10 1.0959711796 2.0000000000 1.1013188654 -0.3169753287 0.0048557107
11 1.1013188654 2.0000000000 1.1059645569 -0.2759807134 0.0042005790
12 1.1059645569 2.0000000000 1.1099912005 -0.2396656124 0.0036276357
13 1.1099912005 2.0000000000 1.1134743107 -0.2076572494 0.0031281460
14 1.1134743107 2.0000000000 1.1164819979 -0.1795679475 0.0026938967
15 1.1164819979 2.0000000000 1.1190752087 -0.1550111495 0.0023172801
16 1.1190752087 2.0000000000 1.1213081110 -0.1336129439 0.0019913370
17 1.1213081110 2.0000000000 1.1232285702 -0.1150198470 0.0017097671
18 1.1232285702 2.0000000000 1.1248786738 -0.0989035932 0.0014669170
19 1.1248786738 2.0000000000 1.1262952728 -0.0849636288 0.0012577510
20 1.1262952728 2.0000000000 1.1275105166 -0.0729279059 0.0010778115
21 1.1275105166 2.0000000000 1.1285523666 -0.0625524724 0.0009231738
Akarnya adalah = 1.1285523666
2. f (x) = 𝑥 3 + 2𝑥 2 +10x-20
M-FILE
%Program Fixed Point denganMatlabSimbolik
syms x
%input Program
g=input('Masukkanfungsi g(dalam x)=');
x0=input('Masukkannilaiawal(x0)=');
n=input('Masukkanbanyakiterasi=');
exact=input('Masukkansalahsatusolusieksak=');
%Membuat Header Table Fixed Point
disp('')
disp('METODE FIXED POINT')
disp('********')
disp('i akar error ')
disp('********')
%Perulanganpadametode fixed
for i=1:n
gx0=subs(g,'x',x0);
%Menghitungnilai g(x0)
xr=gx0;
%Menghitungakardengan Fixed
eror=abs(exact-xr);
%Menghitung error absolut
fprintf('%2.0f %5.5f %2.5f\n',i,xr,eror)
%Mencetakbentuktabel
x0=xr;
%Menggantinilai x0 denganxr
end
%Membuat footer table fixed

COMMAND WINDOW
Masukkan fungsi g(dalam x)='20/(x^2+2*x+10)'
Masukkan nilai awal(x0)=1
Masukkan banyak iterasi=15
Masukkan salahsatu solusi eksak=1.368808107
METODE FIXED POINT
********
i akar error
********
1 1.53846 0.16965
2 1.29502 0.07379
3 1.40183 0.03302
4 1.35421 0.01460
5 1.37530 0.00649
6 1.36593 0.00288
7 1.37009 0.00128
8 1.36824 0.00057
9 1.36906 0.00025
10 1.36870 0.00011
11 1.36886 0.00005
12 1.36879 0.00002
13 1.36882 0.00001
14 1.36880 0.00000
15 1.36881 0.00000
3. M-FILE
clc;
disp('Diketahui:')
x=[0 0.9125 1.825 2.7375 3.65 4.5625 5.475 6.3875 7.3]
f=[3.8 3.2 2.6 2.2 1.9 1.6 1.2 0.9 0.6]
disp('TentukanluasgambardalampetadenganmetodeTrapesium, Simpson 1/3, dansimpson 3/8')
n=9;
h=0.9125;

disp('Jawaban')
disp('============================================================')
disp(' METODE TRAPESIUM ')
disp('============================================================')
Itrap=(h/2)*(f(1)+2*(f(2)+f(3)+f(4)+f(5)+f(6)+f(7)+f(8))+f(9));
disp('JadiluasandenganmenggunakanmetodeTrapesiumadalah =');
disp(Itrap)
disp(' ')
disp(' ')

disp('============================================================')
disp(' METODE SIMPSON 1/3 ')
disp('============================================================')
a=4*(f(2)+f(4)+f(6)+f(8));
b=2*(f(3)+f(5)+f(7));
Isimps13=(h/3)*(f(1)+a+b+f(9))
disp('Jadiluasandenganmenggunakanmetode Simpson 1/3 adalah =');
disp(Isimps13)
disp(' ')
disp(' ')

disp('============================================================')
disp(' METODE SIMPSON 3/8 ')
disp('============================================================')
p=3*(f(2)+f(3)+f(5)+f(6)+f(8));
q=2*(f(4)+f(7));
Isimpson38=((3*h)/8)*(f(1)+p+q+f(9));
disp('Jadiluasandenganmenggunakanmetode Simpson 3/8 adalah')
disp(Isimpson38)
disp(' ')
disp(' ')
COMMAND WINDOW
Diketahui:

x=

0 0.9125 1.8250 2.7375 3.6500 4.5625 5.4750 6.3875 7.3000

f=

3.8000 3.2000 2.6000 2.2000 1.9000 1.6000 1.2000 0.9000 0.6000

TentukanluasgambardalampetadenganmetodeTrapesium, Simpson 1/3, dansimpson 3/8


Jawaban
============================================================
METODE TRAPESIUM
============================================================
JadiluasandenganmenggunakanmetodeTrapesiumadalah =
14.4175

============================================================
METODE SIMPSON 1/3

============================================================

Isimps13 =

14.4175

Jadiluasandenganmenggunakanmetode Simpson 1/3 adalah =


14.4175

============================================================
METODE SIMPSON 3/8
============================================================
Jadiluasandenganmenggunakanmetode Simpson 3/8 adalah
14.3034
4. a. M-FILE
disp(' ');
disp('====================================');
disp('No 4a');
disp(' ')
disp(' ')
syms y t;
disp('DiketahuiNomor 4a:')
dy=y+14*t-13
batas=[5,7]
awal=0
h=0.1
f=dsolve('Dy=y+14*t-13,y(0)=0')
solexact=f

COMAND WINDOW
====================================
No 4a
DiketahuiNomor 4a:
dy =
y+14*t-13
batas =
5 7
awal =
0
h=
0.100
f=
-14*t-1+exp(t)
solexact =
-14*t-1+exp(t)
METODE EULER
M-FILE
disp('Metode Euler')
disp(' ')
disp('')
disp(' ** METODE EULER ** ')
disp('====================================================')
disp(' i tiEuleur exact error ')
disp('====================================================')
%memulaiperhitungan
y1=awal;
for i=1:(batas(2)-batas(1))/h+1
ti=batas(1)+(i-1)*h;
ifti==batas(1)
y2=y1;
else
y2=y1+h*subs(subs(dy,'t',ti-h),'y',y1);
end
exact=subs(solexact,'t',ti);
error=abs(exact-y2);
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti,y2,exact,error)
y1=y2;
end
%Error Relatif
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact-y2)/exact)*100
disp('====================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;

COMMAND WINDOW
Metode Euler

** METODE EULER **
====================================================
itiEuleur exact error
====================================================
0 5.000 0.000000 77.413159 77.413159
1 5.100 5.700000 91.621907 85.921907
2 5.200 12.110000 107.472242 95.362242
3 5.300 19.301000 125.136810 105.835810
4 5.400 27.351100 144.806416 117.455316
5 5.500 36.346210 166.691932 130.345722
6 5.600 46.380831 191.026407 144.645576
7 5.700 57.558914 218.067401 160.508487
8 5.800 69.994806 248.099560 178.104754
9 5.900 83.814286 281.437468 197.623182
10 6.000 99.155715 318.428793 219.273079
11 6.100 116.171286 359.457770 243.286484
12 6.200 135.028415 404.949041 269.920626
13 6.300 155.911256 455.371910 299.460654
14 6.400 179.022382 511.245038 332.222656
15 6.500 204.584620 573.141633 368.557013
16 6.600 232.843082 641.695189 408.852107
17 6.700 264.067390 717.605825 453.538435
18 6.800 298.554129 801.647292 503.093162
19 6.900 336.629542 894.674716 558.045173
20 7.000 378.652496 997.633158 618.980662

Error Relatifnyaadalah:

errorR =

62.0449
================================================

METODE RUNGE KUTTA 2


M-FILE
disp('MetodeRungeKutta 2')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-2) ** ')
disp('===================================================')
disp(' i ti RK-2 exact error ')
disp('===================================================')
y11=awal;
yn1=[];
exact1=[];
for i=1:(batas(2)-batas(1))/h+1
ti1=batas(1)+(i-1)*h;
if ti1==batas(1)
yn1(i)=y11;
else
k11=h*subs(subs(dy,'t',ti1-h),'y',yn1(i-1));
k21=h*subs(subs(dy,'t',ti1),'y',yn1(i-1)+k11);
yn1(i)=yn1(i-1)+(1/2)*(k11+k21);
end
exact1(i)=subs(solexact,'t',ti1);
error1=abs(exact1(i)-yn1(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti1,yn1(i),exact1(i),error1)
end
%Error Relatif
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact1(i)-yn1(i))/exact1(i))*100
disp('====================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;

COMMAN WINDOW
MetodeRungeKutta 2

** METODE HEUN (RK-2) **


===================================================
iti RK-2 exact error
===================================================
0 5.000 0.000000 77.413159 77.413159
1 5.100 6.055000 91.621907 85.566907
2 5.200 12.892775 107.472242 94.579467
3 5.300 20.595516 125.136810 104.541294
4 5.400 29.254046 144.806416 115.552371
5 5.500 38.968720 166.691932 127.723212
6 5.600 49.850436 191.026407 141.175971
7 5.700 62.021732 218.067401 156.045669
8 5.800 75.618014 248.099560 172.481546
9 5.900 90.788905 281.437468 190.648563
10 6.000 107.699740 318.428793 210.729053
11 6.100 126.533213 359.457770 232.924557
12 6.200 147.491200 404.949041 257.457841
13 6.300 170.796776 455.371910 284.575134
14 6.400 196.696438 511.245038 314.548600
15 6.500 225.462564 573.141633 347.679069
16 6.600 257.396133 641.695189 384.299056
17 6.700 292.829727 717.605825 424.776098
18 6.800 332.130848 801.647292 469.516444
19 6.900 375.705587 894.674716 518.969128
20 7.000 424.002674 997.633158 573.630485

Error Relatifnyaadalah:

errorR =
57.4991

====================================================

METODE RUNGE KUTTA 3


M-FILE
disp('MetodeRungeKutta 3')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-3) ** ')
disp('===================================================')
disp(' i ti RK-3 exact error ')
disp('===================================================')
y111=awal;
yn3=[];
for i=1:(batas(2)-batas(1))/h+1
ti11=batas(1)+(i-1)*h;
if ti11==batas(1)
yn3(i)=y111;
else
k111=h*subs(subs(dy,'t',ti11-h),'y',yn3(i-1));
k211=h*subs(subs(dy,'t',ti11-h/2),'y',yn3(i-1)+(1/2)*k111);
k311=h*subs(subs(dy,'t',ti11),'y',yn3(i-1)-k111+2*k211);
yn3(i)=yn3(i-1)+(1/6)*(k111+4*k211+k311);
end
exact11(i)=subs(solexact,'t',ti11);
error11=abs(exact11(i)-yn3(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti11,yn3(i),exact11(i),error11)
end
%Error Relatif
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact11(i)-yn3(i))/exact11(i))*100
disp('===================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;

COMMAND WINDOW
MetodeRungeKutta 3

** METODE HEUN (RK-3) **


===================================================
iti RK-3 exact error
===================================================
0 5.000 0.000000 77.413159 77.413159
1 5.100 6.066833 91.621907 85.555074
2 5.200 12.918929 107.472242 94.553313
3 5.300 20.638869 125.136810 104.497941
4 5.400 29.317924 144.806416 115.488492
5 5.500 39.056959 166.691932 127.634974
6 5.600 49.967449 191.026407 141.058959
7 5.700 62.172592 218.067401 155.894809
8 5.800 75.808543 248.099560 172.291017
9 5.900 91.025775 281.437468 190.411693
10 6.000 107.990586 318.428793 210.438208
11 6.100 126.886762 359.457770 232.571008
12 6.200 147.917420 404.949041 257.031621
13 6.300 171.307035 455.371910 284.064875
14 6.400 197.303692 511.245038 313.941346
15 6.500 226.181564 573.141633 346.960069
16 6.600 258.243658 641.695189 383.451531
17 6.700 293.824849 717.605825 423.780976
18 6.800 333.295229 801.647292 468.352062
19 6.900 377.063811 894.674716 517.610905
20 7.000 425.582622 997.633158 572.050537

Error Relatifnyaadalah:

errorR =

57.3408

===================================================

METODE RUNGE KUTTA 4


M-FILE
disp('MetodeRungeKutta 4')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-4) ** ')
disp('===================================================')
disp('')
disp('======================================================================');
disp(' i ti RK-4 exact error ')
disp('======================================================================');
y1111=awal;
yn4=[];
for i=1:(batas(2)-batas(1))/h+1
ti111=batas(1)+(i-1)*h;
if ti111==batas(1)
yn4(i)=y1111;
else
k111=h*subs(subs(dy,'t',ti111-h),'y',yn4(i-1));
k211=h*subs(subs(dy,'t',ti111-h/2),'y',yn4(i-1)+(1/2)*k111);
k311=h*subs(subs(dy,'t',ti111-h/2),'y',yn4(i-1)+(1/2)*k211);
k411=h*subs(subs(dy,'t',ti111),'y',yn4(i-1)+k311);
yn4(i)=yn4(i-1)+(1/6)*(k111+2*k211+2*k311+k411);
end
exact111(i)=subs(solexact,'t',ti111);
error111=abs(exact111(i)-yn4(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti111,yn4(i),exact111(i),error111)
end
%Error Relatif
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact111(i)-yn4(i))/exact111(i))*100
disp('===================================================')

COMMAND WINDOW

MetodeRungeKutta 4

** METODE HEUN (RK-4) **


===================================================
======================================================================
iti RK-4 exact error
======================================================================
0 5.000 0.000000 77.413159 77.413159
1 5.100 6.067129 91.621907 85.554778
2 5.200 12.919583 107.472242 94.552659
3 5.300 20.639953 125.136810 104.496857
4 5.400 29.319521 144.806416 115.486895
5 5.500 39.059165 166.691932 127.632767
6 5.600 49.970375 191.026407 141.056032
7 5.700 62.176365 218.067401 155.891035
8 5.800 75.813309 248.099560 172.286251
9 5.900 91.031700 281.437468 190.405767
10 6.000 107.997862 318.428793 210.430932
11 6.100 126.895608 359.457770 232.562162
12 6.200 147.928085 404.949041 257.020956
13 6.300 171.319804 455.371910 284.052106
14 6.400 197.318889 511.245038 313.926149
15 6.500 226.199558 573.141633 346.942075
16 6.600 258.264871 641.695189 383.430319
17 6.700 293.849758 717.605825 423.756067
18 6.800 333.324377 801.647292 468.322915
19 6.900 377.097814 894.674716 517.576902
20 7.000 425.622178 997.633158 572.010980

Error Relatifnyaadalah:

errorR =

57.3368

===================================================
b. M-FILE

disp(' ');
disp('====================================');
disp('No 4b');
disp(' ')
disp(' ')
syms y t;
disp('DiketahuiNomor 4b:')
dy=(t)/(exp(2*y)+1)+50*exp(-y*t)+2*t+5
batas=[1,2]
awal=0
h=0.05
f=dsolve('Dy=exp(-t)-3*y,y(0)=1')
solexact=f

COMMAND WINDOW
====================================
No 4b

DiketahuiNomor 4b:

dy =

t/(exp(2*y)+1)+50*exp(-y*t)+2*t+5
batas =

1 2

awal =

0
h=

0.0500
f=

(1/2*exp(2*t)+1/2)*exp(-3*t)

solexact =

(1/2*exp(2*t)+1/2)*exp(-3*t)
METODE EULER
M-FILE
disp('Metode Euler')
disp(' ')
disp('')
disp(' ** METODE EULER ** ')
disp('====================================================')
disp(' i ti Euler exact error ')
disp('====================================================')
%memulaiperhitungan
y1=awal;
for i=1:(batas(2)-batas(1))/h+1;
ti=batas(1)+(i-1)*h;
ifti==batas(1);
y2=y1;
else
y2=y1+h*subs(subs(dy,'t',ti-h),'y',y1);
end
exact=subs(solexact,'t',ti);
error=abs(exact-y2);
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti,y2,exact,error)
y1=y2;
end

COMMAND WINDOW
Metode Euler
** METODE EULER **
====================================================
iti Euler exact error
====================================================
0 1.000 0.000000 0.208833 0.208833
1 1.050 2.875000 0.196395 2.678605
2 1.100 3.352322 0.184877 3.167445
3 1.150 3.774972 0.174191 3.600781
4 1.200 4.172554 0.164259 4.008295
5 1.250 4.559295 0.155011 4.404284
6 1.300 4.942674 0.146387 4.796287
7 1.350 5.326727 0.138331 5.188395
8 1.400 5.713611 0.130796 5.582815
9 1.450 6.104452 0.123739 5.980713
10 1.500 6.499810 0.117120 6.382690
11 1.550 6.899956 0.110905 6.789051
12 1.600 7.305013 0.105063 7.199949
13 1.650 7.715034 0.099567 7.615467
14 1.700 8.130041 0.094390 8.035651
15 1.750 8.550044 0.089511 8.460533
16 1.800 8.975044 0.084908 8.890137
17 1.850 9.405045 0.080562 9.324482
18 1.900 9.840045 0.076457 9.763587
19 1.950 10.280045 0.072577 10.207468
20 2.000 10.725045 0.068907 10.656138

METODERUNGE KUTTA 2
M-FILE
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact-y2)/exact)*100
disp('====================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;
disp('MetodeRungeKutta 2')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-2) ** ')
disp('===================================================')
disp(' i ti RK-2 exact error ')
disp('===================================================')
y11=awal;
yn1=[];
exact1=[];
for i=1:(batas(2)-batas(1))/h+1;
ti1=batas(1)+(i-1)*h;
if ti1==batas(1)
yn1(i)=y11;
else
k11=h*subs(subs(dy,'t',ti1-h),'y',yn1(i-1));
k21=h*subs(subs(dy,'t',ti1),'y',yn1(i-1)+k11);
yn1(i)=yn1(i-1)+(1/2)*(k11+k21);
end
exact1(i)=subs(solexact,'t',ti1);
error1=abs(exact1(i)-yn1(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti1,yn1(i),exact1(i),error1)
end
COMMAND WINDOW
MetodeRungeKutta 2

** METODE HEUN (RK-2) **


===================================================
iti RK-2 exact error
===================================================
0 1.000 0.000000 0.208833 0.208833
1 1.050 1.676161 0.196395 1.479766
2 1.100 2.333033 0.184877 2.148156
3 1.150 2.837162 0.174191 2.662970
4 1.200 3.276540 0.164259 3.112281
5 1.250 3.685932 0.155011 3.530921
6 1.300 4.082100 0.146387 3.935713
7 1.350 4.473787 0.138331 4.335455
8 1.400 4.865649 0.130796 4.734852
9 1.450 5.260138 0.123739 5.136399
10 1.500 5.658506 0.117120 5.541387
11 1.550 6.061369 0.110905 5.950464
12 1.600 6.469013 0.105063 6.363950
13 1.650 6.881568 0.099567 6.782001
14 1.700 7.299088 0.094390 7.204697
15 1.750 7.721594 0.089511 7.632084
16 1.800 8.149097 0.084908 8.064189
17 1.850 8.581597 0.080562 8.501035
18 1.900 9.019098 0.076457 8.942640
19 1.950 9.461598 0.072577 9.389021
20 2.000 9.909098 0.068907 9.840191

Error Relatifnyaadalah:

errorR =

1.5465e+004

====================================================
METODE RUNGE KUTTA 3
M-FILE
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact1(i)-yn1(i))/exact1(i))*100
disp('====================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;
disp('MetodeRungeKutta 3')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-3) ** ')
disp('===================================================')
disp(' i ti RK-3 exact error ')
disp('===================================================')
y111=awal;
yn3=[];
for i=1:(batas(2)-batas(1))/h+1;
ti11=batas(1)+(i-1)*h;
if ti11==batas(1)
yn3(i)=y111;
else
k111=h*subs(subs(dy,'t',ti11-h),'y',yn3(i-1));
k211=h*subs(subs(dy,'t',ti11-h/2),'y',yn3(i-1)+(1/2)*k111);
k311=h*subs(subs(dy,'t',ti11),'y',yn3(i-1)-k111+2*k211);
yn3(i)=yn3(i-1)+(1/6)*(k111+4*k211+k311);
end
exact11(i)=subs(solexact,'t',ti11);
error11=abs(exact11(i)-yn3(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti11,yn3(i),exact11(i),error11)
end
%Error Relatif

COMMAND WINDOW
MetodeRungeKutta 3

** METODE HEUN (RK-3) **


===================================================
iti RK-3 exact error
===================================================
0 1.000 0.000000 0.208833 0.208833
1 1.050 2.379275 0.196395 2.182880
2 1.100 2.885562 0.184877 2.700685
3 1.150 3.324963 0.174191 3.150772
4 1.200 3.732607 0.164259 3.568348
5 1.250 4.125767 0.155011 3.970756
6 1.300 4.513613 0.146387 4.367226
7 1.350 4.901114 0.138331 4.762783
8 1.400 5.290937 0.130796 5.160141
9 1.450 5.684471 0.123739 5.560733
10 1.500 6.082411 0.117120 5.965291
11 1.550 6.485090 0.110905 6.374185
12 1.600 6.892659 0.105063 6.787596
13 1.650 7.305184 0.099567 7.205618
14 1.700 7.722693 0.094390 7.628303
15 1.750 8.145196 0.089511 8.055686
16 1.800 8.572697 0.084908 8.487790
17 1.850 9.005198 0.080562 8.924635
18 1.900 9.442698 0.076457 9.366240
19 1.950 9.885198 0.072577 9.812621
20 2.000 10.332698 0.068907 10.263791

Error Relatifnyaadalah:

errorR =

1.4280e+004

====================================================
METODE RUNGE KUTTA 4
M-FILE
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact11(i)-yn3(i))/exact11(i))*100
disp('===================================================')
disp(' ')
disp(' ')
disp(' ')
syms y t;
disp('MetodeRungeKutta 4')
disp(' ')
disp('')
disp(' ** METODE HEUN (RK-4) ** ')
disp('===================================================')
disp('')
disp('======================================================================');
disp(' i ti RK-4 exact error ')
disp('======================================================================');
y1111=awal;
yn4=[];
for i=1:(batas(2)-batas(1))/h+1;
ti111=batas(1)+(i-1)*h;
if ti111==batas(1)
yn4(i)=y1111;
else
k111=h*subs(subs(dy,'t',ti111-h),'y',yn4(i-1));
k211=h*subs(subs(dy,'t',ti111-h/2),'y',yn4(i-1)+(1/2)*k111);
k311=h*subs(subs(dy,'t',ti111-h/2),'y',yn4(i-1)+(1/2)*k211);
k411=h*subs(subs(dy,'t',ti111),'y',yn4(i-1)+k311);
yn4(i)=yn4(i-1)+(1/6)*(k111+2*k211+2*k311+k411);
end
exact111(i)=subs(solexact,'t',ti111);
error111=abs(exact111(i)-yn4(i));
fprintf('%2.0f%10.3f%12.6f%12.6f%13.6f\n',i-1,ti111,yn4(i),exact111(i),error111)
end
%Error Relatif
disp(' ')
disp('Error Relatifnyaadalah:');
errorR=abs((exact111(i)-yn4(i))/exact111(i))*100
disp('===================================================')

COMMAN WINDOW
MetodeRungeKutta 4

** METODE HEUN (RK-4) **


===================================================
======================================================================
iti RK-4 exact error
======================================================================
0 1.000 0.000000 0.208833 0.208833
1 1.050 1.543574 0.196395 1.347179
2 1.100 2.231871 0.184877 2.046993
3 1.150 2.747986 0.174191 2.573795
4 1.200 3.192823 0.164259 3.028565
5 1.250 3.604860 0.155011 3.449849
6 1.300 4.002319 0.146387 3.855932
7 1.350 4.394624 0.138331 4.256292
8 1.400 4.786772 0.130796 4.655975
9 1.450 5.181387 0.123739 5.057649
10 1.500 5.579809 0.117120 5.462690
11 1.550 5.982693 0.110905 5.871788
12 1.600 6.390346 0.105063 6.285283
13 1.650 6.802903 0.099567 6.703337
14 1.700 7.220424 0.094390 7.126034
15 1.750 7.642931 0.089511 7.553421
16 1.800 8.070434 0.084908 7.985526
17 1.850 8.502934 0.080562 8.422372
18 1.900 8.940435 0.076457 8.863977
19 1.950 9.382935 0.072577 9.310358
20 2.000 9.830435 0.068907 9.761528

Error Relatifnyaadalah:

errorR =

1.4166e+004

===================================================

“Jawaban yang saya ketik dan unggah adalah hasil pekerjaan saya sendiri bukan hasil kerjasama
dengan orang lain.”

Anda mungkin juga menyukai