0% found this document useful (0 votes)
25 views2 pages

Algoritma Pemrograman

Dokumen ini membahas algoritma pemrograman untuk mencari akar persamaan non linier f(x) dengan metode iterasi. Proses melibatkan penentuan batas bawah dan atas, serta pengecekan apakah ada penyelesaian berdasarkan nilai fungsi di batas tersebut. Jika tidak ada penyelesaian, dokumen memberikan contoh output yang menunjukkan bahwa f(a) dan f(b) memiliki hasil positif, sehingga fungsi tidak memiliki akar.

Uploaded by

Mahardika Dewi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views2 pages

Algoritma Pemrograman

Dokumen ini membahas algoritma pemrograman untuk mencari akar persamaan non linier f(x) dengan metode iterasi. Proses melibatkan penentuan batas bawah dan atas, serta pengecekan apakah ada penyelesaian berdasarkan nilai fungsi di batas tersebut. Jika tidak ada penyelesaian, dokumen memberikan contoh output yang menunjukkan bahwa f(a) dan f(b) memiliki hasil positif, sehingga fungsi tidak memiliki akar.

Uploaded by

Mahardika Dewi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

3.

Algoritma Pemrograman
a. Mendefinisikan fungsi f(x)
b. Menentukan batas bawah (a) dan batas atas (b)
c. Ketika f(a).f(b)>0 tidak ada penyelesaian
d. Menentukan tolerasi error (e)
e. Hitung f_a=f(a) dan f_b=f(b)
f. Untuk iterasi c=c+1 atau error>es
a∗fb−b∗fa
 x=
fb−fa
 Hitung error=|f(x)|
 Jika f(x).f_a<0 maka b=x dan f_b=f(x), jika tidak a=x dan f_a=f(x)
g. Akar persamaan adalah x

Code Program:

clear all;
clc;
syms x
s=input('Masukkan persamaan non linier f(x)= ');
f=inline(s);
a=input('Batas bawah: ');
b=input('Batas atas: ');
while f(a)*f(b)>0
disp('Interval yang dimasukkan tidak ada penyelesaian, silakan
diulangi');
disp(' ');
a=input('Batas bawah: ');
b=input('Batas atas: ');
end
X=a:0.001:b;
awal=cputime;
if f(a).*f(b)~=0
f_a=f(a);f_b=f(b);
e=input('Toleransi kesalahan= ');
E=1; c=0;
disp('=================================================')
disp('iterasi a b c f(a) f(c) f(b) E')
disp('=================================================')
while E>e
c=c+1;x1=a;x2=b;
x=(a*f_b-b*f_a)/(f_b-f_a);
if f(x).*f_a<0
b=x;f_b=f(x);
else
a=x;f_a=f(x);
end
E=abs(f(x));
disp([c x1 x2 x f_a f_b f(x) E])
end
disp('=================================================')
akhir=cputime;
disp(['Diperoleh x= ' num2str(x) ' dan f(' num2str(x) ')=' num2str(f(x))
' dengan error= ' num2str(E)])
disp(['Waktu komputasi= ' num2str(akhir-awal) 'detik'])
else
if f(a)==0;
disp(['x= ' num2str(a)])
else
disp(['x= ' num2str(b)])
end
end

Output:

Tidak terdapat penyelesaian karena f(a).f(b)>0 dibuktikan dengan


f(2,5)= -2,472407424
f(4)= -3,965100503
dan
f(2,5)*f(4)=9,803343921>0
Sehingga fungsi tersebut tidak memiliki akar

You might also like