Anda di halaman 1dari 9

Tugas Metode Numerik

Menentukan Akar Persamaan dengan Metode Bagi Dua

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;

cout<<" ======================================================= "<<endl;

cout<<" || KETENTUAN || "<<endl;


cout<<" =======================================================
"<<endl;
cout<<" || Pada batas pertama harus bernilai Negatif || "<<endl;
cout<<" || || "<<endl;
cout<<" || Pada batas kedua harus bernilai positif || "<<endl;
cout<<" =======================================================
"<<endl;
cout<<endl;
cout <<"Batas Pertama : ";
cin >>a;
cout <<"Batas Kedua : ";
cin >>b;
cout <<"Epsilon : ";
cin >>epsilon;
cout <<endl <<endl;
if (f(a)*f(b)>0)
{
cout<<"Maaf batas yang Anda masuki tidak memenuhi persamaan"<<endl;
getch( );
system("cls");
goto satu;
}
else
{

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) );
}

}}

cout<<"Hampiran Akarnya = "<<c<<endl;


cout<<"Banyaknya Literasi : "<<i<<endl<<endl;
cout<<"\n\n Tekan [1] untuk menghitung lagi atau tekan [2] untuk menutup program =
";cin>>pilih;
if(pilih==1)
{
system("cls");
goto atas;
}
if(pilih==2)
{
system("cls");
for(int i=0; i<=100; i++)
{cout<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"\t\t\t Loading..."<<i<<"%"<<endl; system("cls"); }
cout<<endl<<endl<<endl<<endl<<endl;
char thx[]="\t\t THANK YOU ^_^";
cout<<endl<<endl;
cout<<"\t >> Press Any Key To Exit << "<<endl;
return(0);

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

c) Hitunga Menggunakan Geogebra


Dengan a=1
b=1
c=1
d=1

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

Program C++ - Interpolasi Kuadratik


#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
float x1, x2, x3, y1, y2, y3, x, pers1, pers2, pers3, hasil;
cout <<
"==================================================================" <<
endl;
cout << " Program C++ - Interpolasi Kuadratik " << endl;
cout <<
"==================================================================" <<
endl;
cout << " Kelas : Matematika 2020" << endl;
cout << " " << endl;
cout << "Mencari nilai dari sesuatu yang berada dalam sebuah interval atau " << endl;
cout << " diantara 3 buah titik yaitu (x1,y1), (x2,y2), dan (x3,y3) dengan " << endl;
cout << " dengan menggunakan pendekatan fungsi kuadrat" << endl;
cout << " " << endl;
cout << "Masukkan nilai x1 : ";
cin >> x1;
cout << "Masukkan nilai y1 : ";
cin >> y1;
cout << "Masukkan nilai x2 : ";
cin >> x2;
cout << "Masukkan nilai y2 : ";
cin >> y2;
cout << "Masukkan nilai x3 : ";
cin >> x3;
cout << "Masukkan nilai y3 : ";
cin >> y3;
cout << " " << endl;
cout << "Masukkan nilai x yang akan dicari : ";
cin >> x;
cout << " " << endl;
pers1 = ((x-x2)*(x-x3))/((x1-x2)*(x1-x3));
pers2 = ((x-x1)*(x-x3))/((x2-x1)*(x2-x3));
pers3 = ((x-x1)*(x-x2))/((x3-x1)*(x3-x2));
hasil = (y1*pers1)+(y2*pers2)+(y3*pers3);
cout << "Maka nilai y untuk titik x = ";
cout << x ;
cout << " yang berada di antara ";
cout << "titik ";
cout << " " << endl;
cout << "(";
cout << x1;
cout << ",";
cout << y1;
cout << ")";
cout << ", ";
cout << "(";
cout << x2;
cout << ",";
cout << y2;
cout << ")";
cout << ", dan ";
cout << "(";
cout << x3;
cout << ",";
cout << y3;
cout << ")";
cout << " adalah ";
cout << hasil << endl;
cout << x ;
cout << " yang berada di antara ";
cout << "titik ";
cout << " " << endl;
cout << "(";
cout << x1;
cout << ",";
cout << y1;
cout << ")";
cout << ", ";
cout << "(";
cout << x2;
cout << ",";
cout << y2;
cout << ")";
cout << ", dan ";
cout << "(";
cout << x3;
cout << ",";
cout << y3;
cout << ")";
cout << " adalah ";
getch();
return 0;
}
bnn

Anda mungkin juga menyukai