Anda di halaman 1dari 13

UTS PRAKTIKUM ANALISIS NUMERIK

Nama : Zulfa Akfi Fikrina


NIM : 200601110118
Kelas : D

1.
a)
• Metode Biseksi Bagi Dua

Script:
clear
clc
disp(' Metode Bagi dua ')
disp(' Tekan Enter untuk lanjut')
pause
clc

%% Input nilai interval dan galat


disp('2*x-5*x+2=0')
a=input('Masukkan batas bawah :');
b=input('Masukkan batas atas :');
galat1=input('Masukkan galat Toleransi :');

%% Ganti fungsinya di bawah ini


f= @(x) 2*x-5*x+2;

%% 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

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


while galat>galat1
iter=iter+1;
xm=(a+b)/2;
yxm=f(xm);
a1=a;b1=b; % Inisialisasi untuk Tampilan
while yxm==0, break,
end
if ya*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('Akarnya adalah = %6.10f\n',xm)
xx=linspace(init(1),init(2),100);
yy=f(xx);

%% Plot kurva dan titik estimasi


figure(1)
plot(xx,yy)
hold on
scatter(xm1,f(xm1),'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 Biseksi - Akarnya adalah = %.8f', xm1))
Output:
Plot:

• Metode Regula Falsi

Script:

clear all; clc; close all;

%% 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');

%% Algoritma Metode Regula-Falsi


while ErrorRelatif > ErrorToleransi
it = it + 1;
% xm = (xl + xu)/2;
Fbawah = fungsi(xl);
Fatas = fungsi(xu);
xm = xu - (( Fatas*(xu - xl))/(Fatas-Fbawah)); %xm dari metode Regula-
Falsi

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

%diperoleh xm=2.91741943 setelah 15 iterasi

%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:

clc; clear all; close all;


disp('Masukkan f(x) ');
s=input('','s');
disp('Masukkan turunan f(x) atau df/dx ');
s1=input('','s');
x0=input('Masukkan titik awal : ');
f=inline(s,'x');
f1=inline(s1,'x');
Akurasi = 0.03;%le-5;
MaxIter=100;
fprintf('step x0 x1 f(x0) df(x0)/dx\n');
for i=1:MaxIter
x=x0-f(x0)/f1(x0);
ff=f(x);
fprintf('%3d %12.10f %12.10f %12.10f %12.10f\n',i,x0,x,f(x0),f1(x0));
if(abs(x-x0))<Akurasi
fprintf('Akar=%12.10f dalam %3d langkah \n',x,i);
break;
else
x0=x;
endif
endfor
if (i>100)
disp('Gagal, iterasi telah melampui maksimum');
endif

Output:
• Metode Secant

Script:

clear
clc
disp(' Metode Secant ')
disp(' Tekan Enter untuk lanjut')
pause
clc

%% Ganti fungsinya di bawah ini


f= @(x) 2*x.-5.*x+2;

%% Input nilai interval dan galat

x0=input(' nilai awal pertama :');


x1=input(' nilai awal kedua :');
galat1=input(' Masukkan galat Toleransi :');
imax=input(' Masukkan iterasi maksimal :');
iter=0;
fprintf('\n iterasi Akar f(akar) | Galat\n');
for k=1:imax
iter=iter+1;
x2=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
galat=abs((x2-x1)/x2);
x1=x2;
solusi(k,1)=iter;
solusi(k,2)=x2;
solusi(k,3)=galat;
y=f(x1);
fprintf('\n %10.0f %6.10f %6.10f %6.10f\n',[iter;x1;y;galat])
if (galat<galat1 || (iter>imax)),break,end;

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

clc; clear all; close all;

%Fungsi Non Linier


function y=f(x)
y= x^3+2*x^2-x+3;
end

%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))

%Kaidah Metode Integrasi Trapesium


for i=1 : n-1
x=x+h;
sigma=sigma+2*f(x);
fprintf (' %d %f %f \n' ,i+1, x, f(x))
end
I=h/2*(f(a)+sigma+f(b));
fprintf('Hasil Integralnya adalah %f \n', I)

Output:

• Metode Simpson 1/3

Script:
%INTEGRAL SIMPSON 1/3

clc; clear all; close all;

%Fungsi Non Linier


function y=f(x)
y=x.^3+2*x.^2-x+3;
end

%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))

%Kaidah Metode Integrasi Simpson1/3


for i=1:n-1
x=x+h;
if mod (i,2)==1
sigma = sigma +4*f(x);
else
sigma = sigma +2*f(x);
end
fprintf(' %d %f %f \n',i+1, x , f(x))
end

I=(h/3)*(f(a)+sigma+f(b));
fprintf('Hasil Integralnya adalah %f \n', I)

Output:

• Metode Simpson 3/8

Script:

%INTEGRAL SIMPSON 3/8

clc; clear all; close all;

%Fungsi Non Linier


function y=f(x)
y=x.^3+2*x.^2-x+3;
end

%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))

%Kaidah Metode Integrasi Simpson 3/8


for i=1:n-1
x=x+h;
if mod (i,3)==0
sigma = sigma +2*f(x);
else
sigma = sigma +3*f(x);
end
fprintf('%d %f %f \n',i+1, x , f(x))
end

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

Anda mungkin juga menyukai