Selasa, 24 Juni 2014

Metode Bisection (Komputasi Numerik)

Sudah lama saya tidak bikin post di blog ini, kasihan sekali gak 'dirumat' (bahasa jawa),, oke maaf-maaf gagal fokus :D kali ini saya akan sedikit membahas mengenai salah satu metode  di komputasi numerik. yaitu dengan menggunakan metode Bisection.
Dasar dari metode ini adalah memplotkan daerah yang dibatasi oleh perkiraan akar (harga rendah) dan akar (harga Tinggi) untuk mencari nilai akar yang diinginkan.
Algoritma dari metode ini adalah:



ini adalah salah satu contoh programnya;
-------------------------------------------------
#include<iostream.h>
#include<math.h>
main(){
int a,i,derajat,iterasi;
float hasil, x, koef[6],koef1[6],b,c,fa,fb,fc,toleransi;
cout<<"masukkan derajat tertinggi dari persamaan: ";
cin>>derajat;

for(i=derajat;i>=0;i--)
{
cout<<"masukkan koef dari x^"<<i<<":";
cin>>koef[i];
}
cout<<"perasamaan yang anda masukkan adalah :\n";
cout<<"f(x)= ";

for(i=derajat;i>=1;i--)
{
cout<<koef[i]<<"x^"<<i<<"+";
hasil+=(koef[i]*pow(x,i));
}
cout<<koef[0]<<"\n";
/*hasil+=koef[0];
cout<<"f("<<x<<":"<<hasil<<endl;*/

cout<<endl;
cout << "Masukkan Nilai A : ";
cin >> a;
cout << "Masukkan Nilai B : ";
cin >> b;

toleransi=1;
iterasi=0;
while (toleransi > 0.00005)
 {
 c=(a+b)/2;
 fa=(a*a*a)+(-7*a)+6;
 fb=(b*b*b)+(-7*b)+6;
 fc=(c*c*c)+(-7*c)+6;
  if ((fc*fb) > 0)
  b=c;
  else
    a=c;
toleransi=a-b;
 if (toleransi < 0)
 toleransi=toleransi*-1;
 iterasi++;
   }
cout << "Jumlah iterasi : " << iterasi << endl;
cout << "Akar persamaan : " << a <<endl;

-----------------------------------------------

Hasil ketika di Run adalah :

Tidak ada komentar:

Posting Komentar