Anda di halaman 1dari 14

METODE KOMPUTASI NUMERIK

METODE SECANT

Disusun Oleh :
Mohammad Muchlis Prawira
D42113008

TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS HASANUDDIN
2014/2015

KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah mencurahkan rahmat dan
karunia-Nya sehingga kami dapat menyelesaikan penyusunan makalah Metode Secant
sesuai dengan batas waktu yang telah ditetapkan.
Tidak lupa kami mengucapkan banyak terima kasih kepada semua pihak yang telah
membantu dan membimbing kami, terutama

Dosen Pembimbing Mata Kuliah Metode

Komputasi Numerik, Orang tua, serta teman-teman yang selalu memberikan dukungan moril
maupun material dalam menyelesaikan penyusunan Makalah ini. Penyusunan Makalah ini
tidak akan berjalan dengan lancar dan tidak terlaksana dengan baik, tanpa bantuan dan
bimbingan dari semua pihak. Kami menyadari bahwa di dalam penyusunan Makalah ini masih
banyak kekurangannya, oleh sebab itu kami mohon kritik dan saran dari pembaca yang bersifat
membangun.
Demikianlah yang dapat kami sampaikan, atas perhatiannya kami ucapkan terima
kasih.

Sungguminasa, 19 Februari 2015

Penulis

DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI

BAB I PENDAHULUAN
1.1.Latar Belakang
1.2.Tujuan
1.3.Manfaat

BAB II PEMBAHASAN
2.1. Pengertian
2.2. Algoritma Metode Secant
2.3. Contoh Soal dan Pembahasan
2.4. Implementasi Program dalam Bahasa C ++

BAB III PENUTUP


3.1. Kesimpulan
3.2. Saran

DAFTAR PUSTAKA

BAB I
PENDAHULUAN
1.1.Latar Belakang
Metode numerik merupakan suatu teknik untuk menyelesaikan masalah
matematika yang efektif dan efisien. Dengan bantuan komputer ia sanggup menangani
masalah yang rumit dan melibatkan perhitungan y ang luas, misalnya untuk
memecahkan masalah solusi suatu persamaan tak linear, sistem persamaan yang besar,
dan permasalahan lainnya termasuk dalam teknik dan sosial. Masalah yang sering sulit
atau bahkan tidak mungkin dapat diselesaikan secara analitis dapat diselesaikan dengan
metode numerik.
Pada Metode Newton-Raphson memerlukan syarat wajib yaitu fungsi f(x)
harus memiliki turunan f'(x). Sehingga syarat wajib ini dianggap sulit karena tidak
semua fungsi bisa dengan mudah mencari turunannya. Oleh karena itu muncul ide dari
yaitu mencari persamaan yang ekivalen dengan rumus turunan fungsi. Ide ini lebih
dikenal dengan nama Metode Secant. Ide dari metode ini yaitu menggunakan gradien
garis yang melalui titik (x0, f(x0)) dan (x1, f(x1)).

1.2.Tujuan
Adapun tujuan dari penulisan makalah ini adalah
1. Untuk mengetahui tentang metode secant
2. Untuk mengetahui algoritma metode secant
3. Untuk mengetahui implementasi metode secant dalam bahasa pemrograman

1.3.Manfaat
Dengan adanya makalah ini dapat menambah wawasan mahasiswa mengenai metode
secant, serta menambah referensi mahasiswa / pelajar tentang metode secant.

BAB II
PEMBAHASAN

2.1. Pengertian
Metode secant merupakan perbaikan dari metode regula-falsi dan newton raphson
dimana kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus
yang melalui satu titik.

Dimana m diperoleh dari:

Bila y = F(x), ny dan xn diketahui maka titik ke n+1 adalah :

Bila titik xn+1 dianggap akar persamaan maka :


yn+1 = 0
sehingga diperoleh :

atau :

Persamaan ini yang menjadi dasar pada proses pendekatan dimana nilai pendekatannya
adalah :

Sehingga untuk menggunakan metode secant ini diperlukan dua titik pendekatan x1. Kedua
titik pendekatan ini diambil pada titik-titik yang dekat agar konvergensinya dapat dijamin.
Prosedur Metode Secant :
Ambil dua titik awal, misal x0 dan x1. Ingat bahwa pengambilan titik awal tidak disyaratkan
alias pengambilan secara sebarang. Setelah itu hitung x2 menggunakan rumus diatas. Kemudian
pada iterasi selanjutnya ambil x1 dan x2 sebagai titik awal dan hitung x3. Kemudian ambil x2
dan x3 sebagai titik awal dan hitung x4. Begitu seterusnya sampai iterasi yang diingankan atau
sampai mencapai error yang cukup kecil.

2.2. Algoritma Metode Secant :


1. Definisikan fungsi F(x)
2. Definisikan torelansi error (e) dan iterasi maksimum (n)
3. Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1,
sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya
adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
4. Hitung F(x0) dan F(x1) sebagai y0 dan y1
5. Untuk iterasi I = 1 s/d n atau |F(xi)| e

hitung yi+1 = F(xi+1)


6. Akar persamaan adalah nilai x yang terakhir

2.3. Contoh Soal dan Pembahasan


Contoh Soal 1 :
Selesaikan persamaan : x2 (x + 1)e-x = 0
Untuk dapat menyelesaikan persamaan ini terlebih dahulu digambarkan grafik atau
digunakan metode tabel untuk mengetahui range atau 2 nilai pendekatan awal yang baik.

Gambar 3.9. Fungsi y=x2 - (x+1).e-x untuk range [-1,1]

ambil x0 = 0,8 dan x1 = 0,9 maka dapat dihitung

Iterasi Metode Secant adalah sebagai berikut :


Iterasi Metode Secant adalah sebagai berikut :
Iterasi 1 :

= 881815,0

y2 = 00153,0

Iterasi 2 :

=882528,0
y3 = 1,3.10-5

Iterasi 3 :

= 882534,0
y4 = 4,91.10-9

Diperoleh akar x = 0,882534

Contoh Soal 2:
Tentukan salah satu akar dari 4x3 15x2 + 17x 6 = 0 menggunakan Metode Secant sampai
9 iterasi, Diana diketahui x0 = -1 dan x1 = 3.
Penyelesaian :
f(x) = 4x3 15x2 + 17x 6
iterasi 1 :
ambil x0 = -1 dan x1 = 3
f(-1) = 4(-1)3 15(-1)2 + 17(-1) 6 = -42
f(3) = 4(3)3 15(3)2 + 17(3) 6 = 18

x2 = (3)

= 1.8

iterasi 2 :
ambil x1 = 3 dan x2 = 1.8
f(1.8) = 4(1.8)3 15(1.8)2 + 17(1.8) 6 = -0.672

x3 = (1.8)

= 1.84319

iterasi 3 :
ambil x2 = 1.8 dan x3 = 1.84319
f(1.84319) = 4(1.84319)3 15(1.84319)2 + 17(1.84319) 6 = -0.57817

x4 = (1.84319)

= 2.10932

iterasi 4 :
ambil x3 = 1.84319 dan x4 = 2.10932
f(2.10932) = 4(2.10932)3 15(2.10932)2 + 17(2.10932) 6 = 0.65939

x5 = (2.10932)

= 1.96752

iterasi 5 :
ambil x4 = 2.10932 dan x5 = 1.96752
f(1.96752) = 4(1.96752)3 15(1.96752)2 + 17(1.96752) 6 = -0.15303

x6 = (1.96752)
iterasi 6 :

= 1.99423

ambil x5 = 1.96752 dan x6 = 1.99423


f(1.99423) = 4(1.99423)3 15(1.99423)2 + 17(1.99423) 6 = -0.02854

x7 = (1.99423)

= 2.00036

iterasi 7 :
ambil x6 = 1.99423 dan x7 = 2.00036
f(2.00036) = 4(2.00036)3 15(2.00036)2 + 17(2.00036) 6 = 0.00178

x8 = (2.00036)

= 2.00000

iterasi 8 :
ambil x7 = 2.00036 dan x8 = 1.999996
f(1.999996) = 4(1.999996)3 15(1.999996)2 + 17(1.999996) 6 = -0.0002

x9 = (1.999996)

= 2.0000

iterasi 9 :
ambil x8 = 1.999996 dan x9 = 2.00000
f(2.00000) = 4(2.00000)3 15(2.00000)2 + 17(2.00000) 6 = 0.00000

x10 = (2.00000)

= 0.00000

xn-1

xn

xn+1

f(xn-1)

f(xn)

f(xn+1)

-1

1.8

-42

18

-0.672

1.8

1.84319

18

-0.672

-0.57817

1.8

1.84319 2.10932

-0.672

-0.57817

0.65939

4 1.84319 2.10932 1.96752 -0.57817

0.65939

-0.15303

5 2.10932 1.96752 1.99423

-0.15303 -0.02854

0.65939

6 1.96752 1.99423 2.00036 -0.15303 -0.02854

0.00178

7 1.99423 2.00036 2.00000 -0.02854

0.00178

-0.00002

8 2.00036 2.00000 2.00000

0.00178

-0.00002

0.00000

9 2.00000 2.00000 2.00000 -0.00002

0.00000

0.00000

Jadi salah satu akar dari 4x3 15x2 + 17x 6 = 0 adalah 2


2.4. Implementasi Program dalam bahasa C++
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
#include <stdlib.h>
main()
{
int n, k, p, a, b, z;
float koefisien[15];
int pangkat[15];
float x0, x1, x2, fx0, fx1, fx2;
char lagi;
atas:
clrscr();
cout<<"
===Sistem Persamaan Non Linier===\n";
cout<<"
==========Metode Secant==========\n\n";
cout<<"\n Input nilai pangkat tertinggi dari fungsi : ";
cin>>n;
cout<<"\n Input nilai koefisien !\n";
for (k=0; k<=n; k++)
{
cout<<" Koefisien X^"<<n-k<<" : ";
cin>>koefisien[k];
}
for (p=0; p<=n; p++)
{
pangkat[p]=n-p;
}
cout<<"\n\n F(X) = ";
for (a=0; a<=n; a++)
{
if (pangkat[a]==n && n!=1 && koefisien[a]>1)

{cout<<koefisien[a]<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]==1)
{cout<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]==-1)
{cout<<"-X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]<-1)
{cout<<"-"<<-1*koefisien[a]<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n==1 && koefisien[a]>1)
{cout<<koefisien[a]<<"X";}
else if (pangkat[a]==n && n==1 && koefisien[a]==1)
{cout<<"X";}
else if (pangkat[a]==n && n==1 && koefisien[a]==-1)
{cout<<"-X";}
else if (pangkat[a]==n && n==1 && koefisien[a]<-1)
{cout<<"-"<<-1*koefisien[a]<<"X";}
else if (pangkat[a]==1 && koefisien[a]>1)
{cout<<" + "<<koefisien[a]<<"X";}
else if (pangkat[a]==1 && koefisien[a]==1)
{cout<<" + "<<"X";}
else if (pangkat[a]==1 && koefisien[a]==-1)
{cout<<" - X";}
else if (pangkat[a]==1 && koefisien[a]<-1)
{cout<<" - "<<-1*koefisien[a]<<"X";}
else if (pangkat[a]==0 && koefisien[a]>0)
{cout<<" + "<<koefisien[a]<<" = 0";}
else if (pangkat[a]==0 && koefisien[a]<0)
{cout<<" - "<<-1*koefisien[a]<<" = 0";}
else if (pangkat[a]==0 && koefisien[a]==0)
{cout<<" = 0";}
else if (pangkat[a]!=0 && koefisien[a]==0)
{cout<<"";}
else if (pangkat[a]>1 && pangkat[a]!=n && koefisien[a]==1)
{cout<<" + "<<"X^"<<pangkat[a];}
else if (pangkat[a]>1 && pangkat[a]!=n && koefisien[a]==-1)
{cout<<" - "<<"X^"<<pangkat[a];}
else if (pangkat[a]<n && koefisien[a]<0)
{cout<<" - "<<-1*koefisien[a]<<"X^"<<pangkat[a];}
else
{cout<<" + "<<koefisien[a]<<"X^"<<pangkat[a];}
}
cout<<"\n\n Input 2 nilai tebakan awal (X0 dan X1): \n";
cout<<" X0 : ";
cin>>x0;
cout<<" X1 : ";
cin>>x1;
clrscr();
cout<<endl<<endl;
cout<<"------------------------------------------------------------------------------\n";
cout<<"| Ke | X0 | X1 | X2 | F(X0) | F(X1) | F(X2) |\n";
cout<<"==========================================================================
====\n";
for (z=1; z<100; z++)
{
fx0=0;
for (b=0; b<=n; b++)
{fx0 = fx0 + (koefisien[b] * pow(x0,pangkat[b]));}
fx1=0;
for (b=0; b<=n; b++)
{fx1 = fx1 + (koefisien[b] * pow(x1,pangkat[b]));}

x2=x1-(fx1*(x1-x0)/(fx1-fx0));
fx2=0;
for (b=0; b<=n; b++)
{fx2 = fx2 + (koefisien[b] * pow(x2,pangkat[b]));}

cout<<"| "<<setw(3)<<setiosflags(ios::left)<<z;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<x0;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<x1;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<x2;
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<fx0;
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<fx1;
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<fx2<<"|\n";
cout<<"------------------------------------------------------------------------------\n";
x0=x1;
x1=x2;
if (fx1==fx2)
{break;}
else
{continue;}
}
cout<<"\n\n Tekan [1] untuk menghitung lagi atau tekan [2] untuk menutup program.";
lagi=getche();
if (lagi=='1')
{goto atas;}
else
{exit(0);}
getch();
}

BAB III
PENUTUP
3.1. Kesimpulan
Adapun kesimpulan yang dapat diambil dari makalah ini adalah :
1. Metode secant merupakan perbaikan dari metode regula-falsi dan newton raphson dimana
kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus yang
melalui satu titik.
2. Rumus umum yang digunakan dalam metode secant :

3.2. Saran
Penulis meminta kritik dan saran guna perbaikan dari makalah ini kedepannya.

DAFTAR PUSTAKA

http://cttnkuliah117.wordpress.com/2010/04/01/metode-secant-sekan/
http://aimprof08.wordpress.com/2012/09/01/metode-secant-secant-method/
http://hs32tiuntan.blogspot.com/2013/01/metode-secant-dengan-c.html