Laporan Metode Numerik Penyelesaian Persamaan Non-Linier Metode Secant
Nama : Mirza Rafdi Rosada NIM : 15665040 Kelas : Teknik Informatika Multimedia 3B
Teknologi Informasi Teknik Informatika Multimedia Politeknik Negeri Samarinda 2016
Algoritma Metode Secant: 1. Definisikan fungsi f(x) 2. Masukkan range: batas bawah (a) dan batas atas (b). 3. Uji nilai range apakah memiliki akar atau tidak. Jika tidak memiliki akar, perbarui nilai a dan b sampai range tersebut memiliki akar. 4. Masukkan toleransi error ( е) dan jumlah maksimum iterasi N 5. Tentukan p0 = a, p1 = b 6. Hitung fp0 = fx(p0) dan fp1 = fx(p1) 7. Untuk iterasi i = 1 s/d N, hitung: p2 = p1 – fp1 * (p1 – p0)/(fp1 – fp0) fp2 = fx(p2). Jika | (p2-p1) | < error, cetak p2 sebagai hampiran akar. Keluar dari looping. Jika tidak, tentukan: p0 = p1. p1 = p2. fp0 = fp1. fp1 = fx(p1). 8. Jika (i > N), hampiran akar tidak ditemukan.
Listing program: #include #include #include #include using namespace std; float FX(float x) { return exp(-x) -x; } int main (void) { float a, b, e, Fp0, Fp1, Fp2,p0,p1,p2; int n, kondisi; cout << "Masukkan NIlai Batas Bawah: "; cin >> a; cout << "Masukkan NIlai Batas Atas: "; cin >> b; cout << "Masukkan NIlai Batas Toleransi Error: "; cin >> e; p0=a; p1=b; Fp0 = FX(p0); Fp1 = FX(p1); if(Fp0*Fp1 < 0) { kondisi = 1; int itr = 0; cout << "+---+------------+-------------+-------------+-------------+-------------+--------------+" << endl; cout << "|Itr| p0 | p1 | p2 | F(p0) | F(p1) | F(p2) |" << endl; cout << "+---+------------+-------------+-------------+-------------+-------------+--------------+" << endl; do{ itr++; p2 = p1-Fp1*(p1-p0)/(Fp1-Fp0); Fp2 = FX(p2);
cout << setiosflags(ios::fixed); cout << setprecision(8) << "|" << setw(3) << itr << "| " << setw(7) << p0 << " | " << setw(7) << p1 << " | " << setw(8) << p2 << " | " << setw(8) << Fp0 << " | " << setw(8) << Fp1 << " | " << setw(9) << Fp2 << " |" << endl; if(fabs(p2-p1)
Grafik dari fungsi f(x) = EXP -x – x : a
0
b
1
error iterasi(i)
0,1 p0
p1
p2
fp0
fp1
fp2
1,00000
0,00000
1,00000
0,61270
1,00000
-0,63212
-0,07081
2,00000
1,00000
0,61270
0,56384
-0,63212
-0,07081
0,00518
Keterangan LANJUT STOP
f(x) = EXP-x - x 1,2 1 0,8 0,6 0,4 0,2 0 -0,2
0
0,2
0,4
0,6
0,8
1
1,2
-0,4 -0,6 -0,8
a
0
b
1
error iterasi(i)
0,01 p0
p1
p2
fp0
fp1
fp2
Keterangan
1,00000
0,00000
1,00000
0,61270
1,00000
-0,63212
-0,07081
LANJUT
2,00000
1,00000
0,61270
0,56384
-0,63212
-0,07081
0,00518
LANJUT
3,00000
0,61270
0,56384
0,56717
-0,07081
0,00518
-0,00004
STOP
f(x) = EXP-x - x 1,2 1 0,8 0,6 0,4 0,2 0 -0,2
0
0,2
0,4
0,6
0,8
1
1,2
-0,4 -0,6 -0,8
a
0
b
1
error iterasi(i)
0,001 p0
p1
p2
fp0
fp1
fp2
Keterangan
1,00000
0,00000
1,00000
0,61270
1,00000
-0,63212
-0,07081
LANJUT
2,00000
1,00000
0,61270
0,56384
-0,63212
-0,07081
0,00518
LANJUT
3,00000
0,61270
0,56384
0,56717
-0,07081
0,00518
-0,00004
LANJUT
4,00000
0,56384
0,56717
0,56714
0,00518
-0,00004
0,00000
f(x) = EXP-x - x 1,2 1 0,8 0,6 0,4 0,2 0 -0,2
0
0,2
0,4
-0,4 -0,6 -0,8
a
0
b
1
error
0,0001
0,6
0,8
1
1,2
STOP
iterasi(i)
p0
p1
p2
fp0
fp1
fp2
Keterangan
1,00000
0,00000
1,00000
0,61270
1,00000
-0,63212
-0,07081
LANJUT
2,00000
1,00000
0,61270
0,56384
-0,63212
-0,07081
0,00518
LANJUT
3,00000
0,61270
0,56384
0,56717
-0,07081
0,00518
-0,00004
LANJUT
4,00000
0,56384
0,56717
0,56714
0,00518
-0,00004
0,00000
STOP
f(x) = EXP-x - x 1,2 1 0,8 0,6 0,4 0,2 0 -0,2
0
0,2
0,4
0,6
0,8
1
1,2
-0,4 -0,6 -0,8
a
0
b
1
error iterasi(i)
0,00001 p0
p1
p2
fp0
fp1
fp2
Keterangan
1,00000
0,00000
1,00000
0,61270
1,00000
-0,63212
-0,07081
LANJUT
2,00000
1,00000
0,61270
0,56384
-0,63212
-0,07081
0,00518
LANJUT
3,00000
0,61270
0,56384
0,56717
-0,07081
0,00518
-0,00004
LANJUT
4,00000
0,56384
0,56717
0,56714
0,00518
-0,00004
0,00000
LANJUT
5,00000
0,56717
0,56714
0,56714
-0,00004
0,00000
0,00000
STOP
f(x) = EXP-x - x 1,2 1 0,8 0,6 0,4 0,2 0 -0,2 -0,4 -0,6 -0,8
0
0,2
0,4
0,6
0,8
1
1,2
Hasil praktikum : a
0
b
1
error
0,1
a
0
b
1
error
0,01
a
0
b
1
error
0,001
a
0
b
1
error
0,0001
a
0
b
1
error
0,00001
Kesimpulan : Dari percobaan yang telah dilakukan, kita dapat menentukan nilai akar xi dari fungsi f(x) = EXP-x - x menggunakan metode Secant. Nilai masukkan yang yang diinput antara lain: Nilai p0, p1, p2. Dengan kesimpulan sebagai berikut: Menentukan jumlah itterasi dengan nilai a=0, b=1 : Nilai Error 0.1 0.01 0.001 0.0001 0.00001
Jumlah itterasi 2 3 4 4 5
Menentukan nilai error dengan jumlah iterasi=4: a
b
Error [ p2-p1 ]
0
1
0.0000270518
0.25
0.75
0.00000066655
0.25
0.6
0.000000004137
0.5
0.6
0.00000000017
Dari percobaan di atas dapat disimpulkan bahwa semakin kecil nilai Error yang diberikan, maka semakin banyak jumlah iterasi yang dihasilkan. Demikian juga jika semakin kecil range di antara nilai atas dan nilai bawah, maka semakin kecil nilai Errornya.