Disusun oleh:
Wahyu Tanada (08011381823066)
Nopita Sari (08011381621072)
Dosen Pembimbing :
Anita Desiani, S.Si, M.Kom
Jurusan Matematika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Sriwijaya
2020
Buatlah program menentukan akar dengan metode bagi dua untuk menyelesaikan persamaan
berikut ini
ax 3 e−bx +cos ( x2 ) + cx+ d=0
Dengan a =
b=
c=
d=
Metode Bagi Dua
a) Program
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cmath>
#include <iomanip>
#include <windows.h>
using namespace std;
float k1,k2,k3,k4;
float f(float x)
{
return (((k1*pow(x,3))*exp(-k2*x))+(cos(pow(x,2)))+(k3*x)+k4);
}
int main( )
{
float a,b,c,lebar;
float epsilon;
int i=0 , pilih;
atas:
satu:
cout<<"METODE BAGI DUA"<<endl;
cout<<"f(x) = ax^3*e^(-bx)+cos(x^2)+(cx)+d"<<endl;
cout << endl;
Pada tahap penulisan program di sini adalah kita mendeklarasikan dan mendefinisikan
apa saja yang akan kita masukkan seperti float k1,k2,k3,k4; float f(float x) dan float
a,b,c,lebar; dan penulisan pada hasil program persamaan yang akan kita hitung ax^3*e^(-bx)
+cos(x^2)+(cx)+d.
cout<<" Masukkan nilai a = "; cin>>k1;
cout<<" Masukkan nilai b = "; cin>>k2;
cout<<" Masukkan nilai c = "; cin>>k3;
cout<<" Masukkan nilai d = "; cin>>k4;
cout<<endl;
cout<<" f(x) =" <<k1<<"x^3*e^("<<-k2<<"x)+cos(x^2)+("<<k3<<"x)+"<<k4 <<endl;
Disini kita kan memasukkan nilai a,b,c,d dan batsan epsiln yang kita inginkan . dan
menentuka batas pertama harus negatif san batas kedua harus positif supaya fungsi tersebut
konvergen. Hasil yang di harapkan haruslah sangat kecil untuk mendekati nol.
if (f(a)*f(b)>0 jika hasil yang diperoleh lebih besar dari nol maka akan tertulis pada
hasil program adalah maaf batas yang Anda maasuki tidak memenuhi persamaan jika hasil
perhitungan kecil dari nol maka akan tertulis selang baru yaitu hasil dari a klai b bagi dua.
cout<<setw(5)<<"i"<<setw(15)<<"a"<<setw(20)<<"b"<<setw(20)<<"c"<<
setw(20)<<"f(a)"<<setw(20)<<"f(b)";
cout<<setw(20)<<"f(c)"<<setw(20)<<"Selang
Baru"<<setw(20)<<"lebar"<<endl;
do
{
c=(a+b)/2;
f(c);
if(f(a)*f(c)<0)
cout<<setw(5)<<i<<setw(15)<<a<<setw(20)<<b<<setw(20)<<c<<setw(20)<<f(a)
<<setw(20);
cout<<f(b)<<setw(20)<<f(c)<<setw(20)<<"[A,C]";
b=c;
lebar= abs(b-a);
cout<<setw(20)<<lebar<<endl;
cout<<endl;
}
else
cout<<setw(5)<<i<<setw(15)<<a<<setw(20)<<b<<setw(20)<<c<<setw(20)<<f(a)
<<setw(20);
cout<<f(b)<<setw(20)<<f(c)<<setw(20)<<"[C,B]";
a=c;
lebar= abs(b-a);
cout<<setw(20)<<lebar<<endl;
cout<<endl;
}
i++;
}
while( (lebar > epsilon) );
}
}}
Proses perhitungan kan terus berlangsung hingga lebar lebih besar dari epsion . artinya
nilai yag kita peroleh sudah mendekat akar sejatinya dan akan di ketahui berpa banyak iterasi
yang di lakukan dalam menyelesaikan persamaan tersebut kemudian coding kan berhenti.
b) Hasil Program
Dengan mengambil
Dengan a = 1
b=1
c=1
d=1
Dengan epsilon sebesar 0,00002
Dengan menggunakan GeoGebra Kita peroleh hasil akar sejati adalah -0,78. dari
persamaan ax 3 e−bx +cos ( x2 ) + cx+ d=0
2. Menentukan Interpolasi Kuadratik
A. Program