1.
a)
• Metode Biseksi Bagi Dua
Script:
clear
clc
disp(' Metode Bagi dua ')
disp(' Tekan Enter untuk lanjut')
pause
clc
%% Algoritma
init=[a,b];
ya=f(a) ; %Nilai f(a)
yb=f(b); %Nilai f(b)
iter=0;
xm1=a;
galat=abs((b-a)/b);
while ya*yb>0
disp('Ingat f(a)*f(b)>0, berarti tidak ada akar dalam selang'),
break,
end
Script:
%% Nilai parameter
xl = 0;
xu = 1;
x = xl:0.1:xu; %domain
y = 2*x.-5.*x+2;
ErrorToleransi = 0.0001;
ErrorRelatif = 1;
xm0 = 1;
it = 0;
%% Header
fprintf(' ====================================== \n');
fprintf(' Iterasi xm Error Relatif Interval\n ');
fprintf(' ====================================== \n');
Ftengah = fungsi(xm);
if Fatas*Ftengah ==0
disp('xm adalah akar');
elseif Fatas*Ftengah < 0
xl = xm;
else
xu = xm;
end
ErrorRelatif = abs((xm0 - xm)/xm0);
fprintf(' %d %8.8f %8.8f (%f ; %f ) \n', it, xm, ErrorRelatif, xl,xu);
xm0 = xm;
end
%catatan:
%bisection
%regula falsi
%iterasi, akar, error: 15 2.91741943 0.00006276
%iterasi, akar, error: 23 2.91684057 0.00009017
yy = zeros(1,length(x));
figure(1)
plot(x,yy)
hold on
plot(x,y)
grid on
Output:
Plot:
• Metode Newton Rhapson
Script:
Output:
• Metode Secant
Script:
clear
clc
disp(' Metode Secant ')
disp(' Tekan Enter untuk lanjut')
pause
clc
end
fprintf('Akarnya adalah = %6.10f\n',x1)
xx=linspace(-5,5,100);
yy=f(xx);
%% Plot kurva dan titik estimasi
figure(1)
plot(xx,yy)
hold on
scatter(x1,f(x1),'filled','p')
plot(xx,zeros(length(xx),1))
xlabel('x')
ylabel('f(x)')
legend('f(x)','akar persamaan','garis f(x)=0')
title(sprintf('Metode Secant - Akarnya adalah = %.8f', x1))
Output:
Plot:
b) Dari 4 metode yang sudah diterapkan maka dapat disimpulkan bahwa motode
biseksi nagi dua memiliki tingkat akurasi tertinggi karena memiliki iterasi
mencapai 14 dengan akar 0.66668701.
2. Script:
clc,clear
A=input('masukkan matriks berordo 3x3 = ')
B=input('masukkan matriks berordo 3x1 = ')
[a b]=size(B)
if a==1
B=B'
else
B
end
exp=0.00001
x0=input('masukkan nilai awal pencarian dalam matriks 3x1 = ')
x(1,1)=x0(1); x(1,2)=x0(2);x(1,3)=x0(3); nr(1)=norm(A*x'-B);
i=1;
while nr(i)>exp
i=i+1
x(i,1)=(B(1)-A(1,2)*x(i-1,2)-A(1,3)*x(i-1,3))/A(1,1)
x(i,2)=(B(2)-A(2,1)*x(i-1,1)-A(2,3)*x(i-1,3))/A(2,2)
x(i,3)=(B(3)-A(3,1)*x(i-1,1)-A(3,2)*x(i-1,2))/A(3,3)
nr(i)=norm(A*x(i,:)'-B)
end
disp('Hasil komputasi :')
disp('iterasi x y z Norm Residu')
disp([[1:i]' x nr'])
disp('dengan residu B-Ax = '); disp(B-A*x(i,:)')
disp(['norm residu ||B-Ax||=', num2str(nr(i))])
disp('subtitusi solusi Ax='); disp(A*x(i,:)')
%a=[3 1 -1;4 7 -3;2 -2 5]
%b=[5 20 10]
%nilai_awal=[0 0 0]
Output:
3.
Jadi nilai y pada x = 5.2 adalah 3.9609
4.
a)
• Metode Trapesium
Script:
%INTEGRAL TRAPESIUM
%Parameter
a = input ('Masukkan batas bawah');
b = input ('Masukkan batas atas');
n = input ('Masukkan banyaknya partisi');
h = (b-a)/n;
x = a;
sigma = 0;
%Tabel
fprintf ('====================================\n');
fprintf (' i xi f(xi) \n');
fprintf ('====================================\n');
fprintf ('%d %f %f \n', 1, x, f(x))
Output:
Script:
%INTEGRAL SIMPSON 1/3
%Parameter
a = input ('Masukkan batas bawah');
b = input ('Masukkan batas atas');
n = input ('Masukkan banyaknya partisi');
h = (b-a)/n;
x = a;
sigma = 0;
%Tabel
fprintf ('====================================\n');
fprintf (' i xi f(xi) \n');
fprintf ('====================================\n');
fprintf ('%d %f %f \n', 1, x, f(x))
I=(h/3)*(f(a)+sigma+f(b));
fprintf('Hasil Integralnya adalah %f \n', I)
Output:
Script:
%Parameter
a = input ('Masukkan batas bawah');
b = input ('Masukkan batas atas');
n = input ('Masukkan banyaknya partisi');
h = (b-a)/n;
x = a;
sigma = 0;
%Tabel
fprintf ('====================================\n');
fprintf (' i xi f(xi) \n');
fprintf ('====================================\n');
fprintf ('%d %f %f \n', 1, x, f(x))
I=(3*h/8)*(f(a)+sigma+f(b));
fprintf('Hasil Integralnya adalah %f \n', I)
Output:
b) Berdasarkan perhitungan 4a terlihat bahwa metode simpson 1/3 dan
simpson 3/8 mendekati solusi eksak