Selasa, 26 Februari 2013
Mencari Akar Perpotongan 2 buah kurva dengan metode Regula Falsi menggunakan Matlab
clear all;
clc;
disp('--------------------------------------------------------------------')
disp('program : Metode Regula Falsi ')
disp('Oleh : Kelompok 1 ')
disp('--------------------------------------------------------------------')
syms x;
c=input('masukkan persamaan f(x1): ');
d=input('masukkan persamaan f(x2): ');
g=c-d;
f=g;
a=input('masukkan nilai a : ');
b=input('masukkan nilai b : ');
et=input('masukkan Error Toleransi : ');
e=abs(b-a);
i=1;
disp(' i a b c f(a) f(b) f(c) E');
disp('-----------------------------------------------------');
clama=a;
cbaru=b;
while (e > et ) & (clama ~= cbaru);
fa=subs(f,x,a);
fb=subs(f,x,b);
clama=cbaru;
c=(fb*a-fa*b)/(fb-fa);
cbaru=c;
fc= subs(f,x,c);
fprintf('%3.0f %6.4f %6.4f %12.10f %7.4f %7.4f %7.4f %7.4f \n', i, a, b, c, fa, fb, fc, e);
if fa*fc < 0
b=c; %geser kiri
else
a=c; %geser kanan
end
e=abs(b-a); % menghitung error
i=i+1;
end
i=i-1;
fprintf('Diperoleh akar persamaan di = %f\n ', c)
fprintf('Pada Iterasi ke %f\n ', i)
clc;
disp('--------------------------------------------------------------------')
disp('program : Metode Regula Falsi ')
disp('Oleh : Kelompok 1 ')
disp('--------------------------------------------------------------------')
syms x;
c=input('masukkan persamaan f(x1): ');
d=input('masukkan persamaan f(x2): ');
g=c-d;
f=g;
a=input('masukkan nilai a : ');
b=input('masukkan nilai b : ');
et=input('masukkan Error Toleransi : ');
e=abs(b-a);
i=1;
disp(' i a b c f(a) f(b) f(c) E');
disp('-----------------------------------------------------');
clama=a;
cbaru=b;
while (e > et ) & (clama ~= cbaru);
fa=subs(f,x,a);
fb=subs(f,x,b);
clama=cbaru;
c=(fb*a-fa*b)/(fb-fa);
cbaru=c;
fc= subs(f,x,c);
fprintf('%3.0f %6.4f %6.4f %12.10f %7.4f %7.4f %7.4f %7.4f \n', i, a, b, c, fa, fb, fc, e);
if fa*fc < 0
b=c; %geser kiri
else
a=c; %geser kanan
end
e=abs(b-a); % menghitung error
i=i+1;
end
i=i-1;
fprintf('Diperoleh akar persamaan di = %f\n ', c)
fprintf('Pada Iterasi ke %f\n ', i)
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:
Postingan (Atom)