Selasa, 05 Februari 2013
Program Penyelesaian Fungsi menggunakan Metode Biseksi dengan Software Matlab
clc;
disp('---------------------------')
disp('program : Metode Biseksi ')
disp('Oleh : Mahfud Jiono ')
disp('nb: penulisan fungsi harus di kasih kata inline terlebih dahulu ')
disp('contoh: f(x)=x^3+2x+1 ')
disp('maka penulisanya: f(x)= inline ('x.^3+x.*2+1','x') ')
disp('---------------------------')
f=input('f(x)= ');
a=input('Batas bawah = ');
b=input('Batas atas = ');
while f(a).*f(b)>0
disp('interval yang dimasukan tidak mengurung penyelesaian, Silahkan 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 x f(a) f(b) f(x) error')
disp('--------------------------------------------------------------------------------')
while E>e
c=c+1;x1=a;x2=b;
x=(a+b)./2;
if f(x).*f_a<0
b=x; f_b=f(x);
else
a=x; f_a=f(x);
end
E=abs(b-a);
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
plot(X,f(X))
title('Grafik fungsi f(x)')
xlabel('Domain fungsi')
ylabel('Range fungsi')
grid on;
disp('---------------------------')
disp('program : Metode Biseksi ')
disp('Oleh : Mahfud Jiono ')
disp('nb: penulisan fungsi harus di kasih kata inline terlebih dahulu ')
disp('contoh: f(x)=x^3+2x+1 ')
disp('maka penulisanya: f(x)= inline ('x.^3+x.*2+1','x') ')
disp('---------------------------')
f=input('f(x)= ');
a=input('Batas bawah = ');
b=input('Batas atas = ');
while f(a).*f(b)>0
disp('interval yang dimasukan tidak mengurung penyelesaian, Silahkan 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 x f(a) f(b) f(x) error')
disp('--------------------------------------------------------------------------------')
while E>e
c=c+1;x1=a;x2=b;
x=(a+b)./2;
if f(x).*f_a<0
b=x; f_b=f(x);
else
a=x; f_a=f(x);
end
E=abs(b-a);
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
plot(X,f(X))
title('Grafik fungsi f(x)')
xlabel('Domain fungsi')
ylabel('Range fungsi')
grid on;
Langganan:
Posting Komentar (Atom)
12 komentar:
software mattlab R2010a
suwon pol yo bro.. mbantu beud
mohon bantuanya bro untuk persamaan
f (x) = x3 + x2 – 3x – 3 = 0.
Langsung input F(x)nya aja mas bro.
inline -3-x+x.^3
tanks bro
sama-sama mas bro.
trimakasih uda di kunjungi. :)
kalo persamaannya juga inputan kek gmna kk,
maksudnya persamaannya di inputkan sendiri oleh user, jadi kayak kalkulator gitu
gak jalan programnya
line 9
f=input('f(x)= '); ada yg slah
saya error di line 12
while f(a).*f(b)>0
bagaimana penyelesaiannya?
Mohon maaf mas Deny dan mas Andhika baru liat messages nya.
mungkin error ini terjadi pas input persamaanya, aku coba lagi tetap jalan kok programnya.
jadi misal kita ada persamaan f(X)=x^3+2x+1, coba masukan nilai input seperti ini,
f(x)= inline ('1+x.*2+x.^3','x')
karena kita akan membandingkan nilai x, jadi keduanya harus di inputkan.
Atau bisa juga waktu nginputkan seperti ini:
f(x)= inline ('x.^3+x.*2+1','x')
batas bawah misal=-1
batas atas misal=0
toleransi kesalahan= 0.006
kemudian tunggu sebentar, dan resultnya akan muncul
Posting Komentar