JAWABAN TIPE 1
1. Buatlah program MATLAB untuk menghitung
99
∫ 2𝑥 3 − 4𝑥 2 + 6𝑥 − 8 𝑑𝑥
0
menggunakan Integral Trapesium dengan ℎ = 0.99. Tentukan nilai eksak dan galat yang
dihasilkan dari integral yang telah diberikan.
Jawab.
clear all;
clc;
syms x;
fprintf('METODE TRAPESIUM\n');
a=0;
b=99;
N=100;
h=0.99;
f=2*x^3-4*x^2+6*x-8;
xi=a:h:b;
n=length(xi);
for i=1:n
fi(i)=double(subs(f,x,xi(i)));
end
jumlah=0;
for i=2:n-1
jumlah=jumlah+fi(i);
end
hasilint=0.5*h*(fi(1)+fi(n)+2*jumlah);
fprintf('Hasil integral numerik = %15.15f\n',hasilint);
integralanalitik=double(int(f,x,a,b));
error=abs(hasilint-integralanalitik);
fprintf('Hasil integral analitik =
%15.15f\n',integralanalitik);
fprintf('Error = %15.15f\n',error);
1 ≤ 𝑥 ≤ 2 dengan menggunakan turunan beda maju untuk ℎ = 0.01. Output program berupa
solusi numerik, solusi eksak, error, dan plot titik-titik nilai turunan numerik beserta turunan eksak
pada −0.2 ≤ 𝑓 ′′ (𝑥) ≤ 0.2. Tampilkan hasilnya dalam desimal 4 angka dibelakang koma.
Jawab.
clear all;clc;
syms x;
fprintf('TURUNAN KEDUA BEDA MAJU\n\n');
f=exp(-2/x^2)/sqrt(2*pi);
h=0.01;
titikx=1:h:2;
n=length(titikx);
dfeksak=diff(f,x,2);
fprintf(' i xi numerik eksak error\n');
for i=1:n-2
fiplus1=double(subs(f,x,titikx(i+1)));
fiplus2=double(subs(f,x,titikx(i+2)));
fi=double(subs(f,x,titikx(i)));
df(i)=(fiplus2-2*fiplus1+fi)/h^2;
trneksak(i)=double(subs(dfeksak,x,titikx(i)));
error(i)=abs(df(i)-trneksak(i));
fprintf('%2d %8.5f %8.5f %8.5f
%8.5f\n',i,titikx(i),df(i),trneksak(i),error(i));
end
trneksak(n-1)=double(subs(dfeksak,x,titikx(n-1)));
trneksak(n)=double(subs(dfeksak,x,titikx(n)));
fprintf('%2d %8.5f ------- %8.5f -------\n',n-1,titikx(n-1),trneksak(n-
1));
fprintf('%2d %8.5f ------- %8.5f -------\n',n,titikx(n),trneksak(n));
plot(titikx(1:n-2),df(1:n-
2),'ob','markersize',7,'linewidth',2,'markerfacecolor','c');
hold on;
grafiktrneksak=ezplot(dfeksak,[min(titikx) max(titikx)]);
set(grafiktrneksak,'color','k','linewidth',2);
grid on;
axis([min(titikx) max(titikx) -0.2 0.2]);
xlabel('x');
ylabel('d2f');
legend('Turunan Numerik','Turunan Eksak');
Hasil Command Window
TURUNAN KEDUA BEDA MAJU
10 iterasi pertama
i xi numerik eksak error
1 1.00000 0.19890 0.21596 0.01707
2 1.01000 0.18217 0.19886 0.01669
3 1.02000 0.16584 0.18214 0.01630
4 1.03000 0.14993 0.16581 0.01588
5 1.04000 0.13444 0.14989 0.01545
6 1.05000 0.11940 0.13441 0.01500
7 1.06000 0.10482 0.11937 0.01455
8 1.07000 0.09070 0.10478 0.01408
9 1.08000 0.07705 0.09066 0.01361
10 1.09000 0.06386 0.07701 0.01314
10 iterasi terakhir
90 1.89000 -0.13313 -0.13433 0.00120
91 1.90000 -0.13192 -0.13313 0.00121
92 1.91000 -0.13071 -0.13192 0.00121
93 1.92000 -0.12949 -0.13071 0.00121
94 1.93000 -0.12828 -0.12949 0.00122
95 1.94000 -0.12706 -0.12828 0.00122
96 1.95000 -0.12584 -0.12706 0.00122
97 1.96000 -0.12463 -0.12584 0.00122
98 1.97000 -0.12341 -0.12463 0.00122
99 1.98000 -0.12220 -0.12341 0.00121
100 1.99000 ------- -0.12220 -------
101 2.00000 ------- -0.12099 -------
Plot Grafik
0.15
0.1
0.05
d2f
-0.05
-0.1
-0.15
-0.2
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
x
√𝑥
3. Buatlah program MATLAB dengan fungsi 𝑓(𝑥) = 𝑥 2 +1 − ln 𝑥 dalam interval 0.1 ≤ 𝑥 ≤ 1.5
dengan ℎ = 0.35. Tentukan nilai dari 𝑓(0.61) dan plot dengan Interpolasi Newton Gregory Maju
berderajat 4. (Gunakan ketelitian 4 aangka di belakang koma).
Jawab.
clear all;
clc;
fprintf('NO. 4 MATERI INTERPOLASI NEWTON GREGORY
MAJU\n============================================\n');
syms x;
h=0.35;
xi=0.1:h:1.5;
n=length(xi);
f=(sqrt(x)/(x^2+1))+log(x);
fx=double(subs(f,x,xi));
for i=1:n-1
if i==1
for j=1:n-i
delta(j,i)=fx(j+1)-fx(j);
end
else
for j=1:n-i
delta(j,i)=delta(j+1,i-1)-delta(j,i-1);
end
end
end
fprintf(' x f(x) deltaf delta^2f delta^3f delta^4f\n');
for i=1:n-1
fprintf('%8.4f %8.4f',xi(i),fx(i));
for j=1:n-1
fprintf(' %8.4f',delta(i,j));
end
fprintf('\n');
end
fprintf('%8.4f %8.4f\n',xi(n),fx(n));
polinom=fx(1);
for i=1:n-1
perkalian=1;
for j=1:i
perkalian=perkalian*(x-xi(j));
end
polinom=polinom+delta(1,i)/(factorial(i)*(h^i))*perkalian;
end
grafik=ezplot(polinom,[min(xi) max(xi)]);
set(grafik,'color','b','linewidth',2)
hold on;
plot(xi,fx,'o','markersize',10,'markerfacecolor','r');
axis([min(xi) max(xi) min(fx)-1 max(fx)+1]);
grid on;
xcari=0.61;
nilai=double(subs(polinom,x,xcari));
fprintf('P%d(%f)=%f\n',n-1,xcari,nilai);
Plot Grafik
(703219146076087 x)/140737488355328 -...- 56050800056361827/22517998136852480
1.5
0.5
-0.5
-1
-1.5
-2
-2.5
∫ 𝑒 𝑥 + ln 𝑥 𝑑𝑥
4.3
menggunakan Integral Trapesium dengan ℎ = 0.035. Tentukan nilai eksak dan galat yang
dihasilkan dari integral yang telah diberikan.
Jawab.
clear all;
clc;
syms x;
fprintf('METODE TRAPESIUM\n');
a=4.3;
b=7.8;
h=0.035;
f=exp(x)+log(x);
xi=a:h:b;
n=length(xi);
for i=1:n
fi(i)=double(subs(f,x,xi(i)));
end
jumlah=0;
for i=2:n-1
jumlah=jumlah+fi(i);
end
hasilint=0.5*h*(fi(1)+fi(n)+2*jumlah);
fprintf('Hasil integral numerik = %15.15f\n',hasilint);
integralanalitik=double(int(f,x,a,b));
error=abs(hasilint-integralanalitik);
fprintf('Hasil integral analitik = %15.15f\n',integralanalitik);
fprintf('Error = %15.15f\n',error);
1 ≤ 𝑥 ≤ 2 dengan menggunakan turunan beda mundur untuk ℎ = 0.01. Output program berupa
solusi numerik, solusi eksak, error, dan plot titik-titik nilai turunan numerik beserta turunan eksak
pada −0.2 ≤ 𝑓 ′′ (𝑥) ≤ 0.2. Tampilkan hasilnya dalam desimal 4 angka dibelakang koma.
Jawab.
clear all;clc;
syms x;
fprintf('TURUNAN PERTAMA BEDA MUNDUR\n\n');
f=exp(-2/x^2)/sqrt(2*pi);
h=0.01;
titikx=1:h:2;
n=length(titikx);
dfeksak=diff(f,2,x);
fprintf(' i xi numerik eksak error\n');
for i=1:n
if i==1
trneksak(i)=double(subs(dfeksak,x,titikx(i)));
fprintf('%2d %8.5f ------- %8.5f -------
\n',1,titikx(i),trneksak(i));
else if i==2
trneksak(i)=double(subs(dfeksak,x,titikx(i)));
fprintf('%2d %8.5f ------- %8.5f -------
\n',2,titikx(i),trneksak(i));
else
fiminus1=double(subs(f,x,titikx(i-1)));
fiminus2=double(subs(f,x,titikx(i-2)));
fi=double(subs(f,x,titikx(i)));
df(i)=(fi-2*fiminus1+fiminus2)/h^2;
trneksak(i)=double(subs(dfeksak,x,titikx(i)));
error(i)=abs(df(i)-trneksak(i));
fprintf('%2d %8.5f %8.5f %8.5f
%8.5f\n',i,titikx(i),df(i),trneksak(i),error(i));
end
end
end
plot(titikx(3:n),df(3:n),'ob','markersize',7,'linewidth',2,'markerfacec
olor','c');
hold on;
grafiktrneksak=ezplot(dfeksak,[min(titikx) max(titikx)]);
set(grafiktrneksak,'color','k','linewidth',2);
grid on;
axis([min(titikx) max(titikx) -0.2 0.2]);
xlabel('x');
ylabel('d2f');
legend('Turunan Numerik','Turunan Eksak');
Plot Grafik
(36028797018963968 exp(-2/x 2))/(5644425081792261 x 6) - (9007199254740992 exp(-2/x 2))/(1881475027264087 x 4)
0.2
Turunan Numerik
Turunan Eksak
0.15
0.1
0.05
d2f
-0.05
-0.1
-0.15
-0.2
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
x
𝑒𝑥
3. Buatlah program MATLAB dengan fungsi 𝑓(𝑥) = + ln 𝑥 dalam interval 0.1 ≤ 𝑥 ≤ 1.5
√𝑥+1
dengan ℎ = 0.35. Tentukan nilai dari 𝑓(0.61) dan plot dengan Interpolasi Newton Gregory Maju
berderajat 4. (Gunakan ketelitian 4 aangka di belakang koma).
Jawab.
clear all;
clc;
fprintf('NO. 4 MATERI INTERPOLASI NEWTON GREGORY
MAJU\n============================================\n');
syms x;
h=0.35;
xi=0.1:h:1.5;
n=length(xi);
f=(exp(x)/sqrt(x+1))+log(x);
fx=double(subs(f,x,xi));
for i=1:n-1
if i==1
for j=1:n-i
delta(j,i)=fx(j+1)-fx(j);
end
else
for j=1:n-i
delta(j,i)=delta(j+1,i-1)-delta(j,i-1);
end
end
end
fprintf(' x f(x) deltaf delta^2f delta^3f delta^4f\n');
for i=1:n-1
fprintf('%8.4f %8.4f',xi(i),fx(i));
for j=1:n-1
fprintf(' %8.4f',delta(i,j));
end
fprintf('\n');
end
fprintf('%8.4f %8.4f\n',xi(n),fx(n));
polinom=fx(1);
for i=1:n-1
perkalian=1;
for j=1:i
perkalian=perkalian*(x-xi(j));
end
polinom=polinom+delta(1,i)/(factorial(i)*(h^i))*perkalian;
end
grafik=ezplot(polinom,[min(xi) max(xi)]);
set(grafik,'color','b','linewidth',2)
hold on;
plot(xi,fx,'o','markersize',10,'markerfacecolor','r');
axis([min(xi) max(xi) min(fx)-1 max(fx)+1]);
grid on;
xcari=0.61;
nilai=double(subs(polinom,x,xcari));
fprintf('P%d(%f)=%f\n',n-1,xcari,nilai);
Plot Grafik
(2819173993547225 x)/562949953421312 -...- 7879641430455515/4503599627370496
-1
-2