Professional Documents
Culture Documents
Oleh:
2010
A. Pengertian Metode Numerik
(1) Bila persoalan merupakan persoalan yang sederhana atau ada theorema
analisa matematika yang dapat digunakan untuk menyelesaikan persoalan
tersebut, maka penyelesaian matematis (metode analitik) adalah
penyelesaian exact yang harus digunakan. Penyelesaian ini menjadi acuan
bagi pemakaian metode pendekatan.
(2) Bila persoalan sudah sangat sulit atau tidak mungkin diselesaiakan secara
matematis (analitik) karena tidak ada theorema analisa matematik yang
dapat digunakan, maka dapat digunakan metode numerik.
(3) Bila persoalan sudah merupakan persoalan yang mempunyai kompleksitas
tinggi, sehingga metode numerikpun tidak dapat menyajikan penyelesaian
dengan baik, maka dapat digunakan metode-metode simulasi.
Prinsip:
Ide awal metode ini adalah metode table, dimana area dibagi menjadi N
bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian,
dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang
tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga
diperoleh akar persamaan.
Langkah 1 :
Pilih a sebagai batas bawah dan b sebagai batas atas untuk taksiran akar
sehingga terjadi perubahan tanda fungsi dalam selang interval. Atau periksa
apakah benar bahwa :
Langkah 2 :
a +b
c=
Taksiran nilai akar baru yaitu c diperoleh dari : 2
Langkah 3 :
Jika z merupakan akar fungsi, maka f(x < z) dan f(x > z) saling berbeda
tanda.
f(a)*f(c) negatif, berarti di antara a & c ada akar fungsi.
Langkah 4 :
xe-x+1 = 0
Catatan :
function rtn=bisec(fx,xa,xb,n)
x=xa; fa=fx(xa);
x=xb; fb=fx(xb);
for i=1:n;
xc=(xa+xb)/2; x=xc; fc=fx(xc);
X=[i,xa,xb,xc,fc];
disp(X);
if fc*fa<0
xb=xc;
else xa=xc;
end
end
%tampilkan hasil dari bisection
xa
xb
n
r=(xa+xb)/2
end
%tampilkan gambar plot dari bisection
fplot(fx,[0 2]); grid on
xa = 0.3604
xb = 0.3605
n = 13
r = 0.3604
2. Metode Newton-Rhapson
Langkah 2 :
Tentukan titik x0 dan Uji sesuai :
Langkah 3 :
int degree;
float coeff[N];
void input(void);
float F(float);
float dF_dx(float);
/********************************************************/
/***** Finds the root of any linear algebraic any *****/
/***** order equation by "Newton-Raphson" method *****/
/********************************************************/
main()
{
char ch;
do
{
input();
printf("\n \n INGIN MELANJUTKAN [y/n] ");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='Y' || ch=='y');
}
void input(void)
{
int i,print,loop=0;
float ig;
float h;
float dF_dx(float x)
{
int i,deg;
float func=0.0;
deg=degree;
for(i=0;i<degree;i++)
{
func=func+coeff[i]*deg*pow(x,(deg-1));
deg--;
}
if(func==0)
return(1);
return(func);
}
float F(float x)
{
int i,deg;
float func=0.0;
deg=degree;
for(i=0;i<=degree;i++)
{
func=func+coeff[i]*pow(x,deg);
deg--;
}
return(func);
}
3. Metode Secant
b 2 − 4ac
dapat ditentukan dengan persamaan abc X = (−b ± ) maka akar dari
2a
X2 – 9 = 0 adalah X1 = 3 dan X2 = -3.
Metode Secant merupakan perbaikan dari Metode Newton, yaitu nilai turunan f(x)
didekati dengan beda hingga (∆)
gambar . Penentuan nilai turunan fungsi dengan metode Secant.
Dimana ,
∆f ' ( xi )
f ' ( xi ) =
∆xi
f ( xi ) − f ( xi −1 )
f 1 ( xi ) =
xi − xi −1
Sehingga dalam perrsamaan Newton – Rhapson menjadi :
xi − xi −1
xi +1 = xi − f ( xi )
f ( xi ) − f ( xi −1 )
( x1 − x0 )
2. Hitung xbaru = x1 − f ( x1 )
f ( x1 ) − f ( x0 )
3. Jika nilai mutlak (Xbaru - X1) < toleransi, diperoleh tulisan Xbaru sebagai
hasil perhitungan
4. jika tidak, lanjutkan ke langkah berikutnya
5. Jika jumlah iterasi > iterasi maksimum, akhiri program
6. X = Xbaru, dan kembali ke langkah (2)
Kelebihan dari Metode Secant ini dalah dimana sifatnya yang cepat
mendapatkan nilai konvergen namun tidak selalu mendapatkan hasil yang
konvergen terkadang bisa didapatkan hasil yang divergen.
clear x f;
x(1) = 1; x(2) = 2;tol = 0.000001;
f(1) = fi(x(1));f(2) = fi(x(2));
n=2;i=1;
fprintf('tol = %10.8f\n', tol);
fprintf('i n x(n-1) x(n) f(x(n-1)) f(x(n)) x(n+1)\n');
x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));
fprintf('%g %g %9.6f %9.6f %9.6f %9.6f %9.6f\n',i,n,x(n-1),x(n),
f(n-1),f(n),x(n+1));
while abs((x(n+1) - x(n))/x(n+1)) > tol
f(n+1) = fi(x(n+1));
n=n+1;i=i+1;
x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));
fprintf('%g %g %9.6f %9.6f %9.6f %9.6f %9.6f\n',i,n,x(n-1),x(n),
f(n-1),f(n),x(n+1));
%pause;
end;
fprintf('\n|(x(n+1) - x(n))/x(n+1)| = %10.8f <= tol = %10.8f\n', abs((x(n+1)
- x(n))/x(n+1)),tol);
fprintf('Akarnya = %8.6f, banyak iterasi = %g \n',x(n+1),i);
Outputnya adalah:
tol = 0.00000100
4. Metode Regula-Falsi
Seperti telah dijelaskan sebelumnya, Metode Bisection memiliki kelemahan
pokok, yaitu kurang cepat dalam mencapai konvergensi, maka beberapa ahli
metematika telah berusaha menyempurnakan metode tersebut dengan
dirumuskannya Metode Regula-Falsi atau metode posisi palsu atau false point
method.
Metode Regula-Falsi ini memiliki kelebihan dalam pencapaian nilai
konvergensi yang lebih cepat, namun tetap memiliki kepastian atau jaminan
menuju konvergensi. Metode ini juga sering disebut sebagai Metode Interpolasi
Linier. Dengan Metode Regula-Falsi dibuat garis lurus yang menghubungkan
titik( X1 , f(X1) ) dan titik(X0 ,f(X0)). Perpotongan garis tersebut dengan sumbu X
merupakan taksiran akar yang diperbaiki. Garis lurus tadi seolah-olah berlaku
menggantikan kurva f(x) dan memberikan posisi palsu dari akar.
Contoh program untuk mencari akar persamaan non linear menggunakan Metode
Regula-Falsi dalam bahasa C++
Hasil eksekusi program untuk mencari akar dengan Metode Regula-Falsi
menggunakan bahasa C+ yang dilakukan dalam selang [0,1] , toleransi 10-5 dan
jumlah iterasi maksimum sebanyak 30, adalah sebagai berikut :