5i - A410180175 - Lisa Aprilia - Prak Metode Numerik Uas
5i - A410180175 - Lisa Aprilia - Prak Metode Numerik Uas
NIM : A410180175
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)=');
%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
% Input
% nilaiawalpertamadannilaiawalkedua
% galattoleransi
% iterasimaksimal
% Output
% iterasi, solusidangalat
clear
clc
syms x
disp(' Metodeposisipalsu')
pause
clc
f=input('Fungsi f:');
a=input('Masukkanbatasbawah :');
b=input('Masukkanbatasatas :');
galat1=input('MasukkangalatToleransi :');
yb=subs(f,b);
iter=0;
xm1=a;
galat=abs((b-a)/b);
whileya*yb>0
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;
end
fprintf('Akarnyaadalah = %6.10f\n',xm)
Command Windows
Fungsi f:'x^6-x-1'
Masukkanbatasbawah :1
Masukkanbatasatas :2
MasukkangalatToleransi :0.001
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=
f=
============================================================
METODE SIMPSON 1/3
============================================================
Isimps13 =
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
================================================
COMMAN WINDOW
MetodeRungeKutta 2
Error Relatifnyaadalah:
errorR =
57.4991
====================================================
COMMAND WINDOW
MetodeRungeKutta 3
Error Relatifnyaadalah:
errorR =
57.3408
===================================================
COMMAND WINDOW
MetodeRungeKutta 4
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
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
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
Error Relatifnyaadalah:
errorR =
‘
1.4166e+004
===================================================
“Jawaban yang saya ketik dan unggah adalah hasil pekerjaan saya sendiri bukan hasil kerjasama
dengan orang lain.”