Praktikum ini mempelajari tiga metode untuk menemukan akar persamaan nonlinier, yaitu metode biseksi, iterasi titik tetap, dan Newton-Raphson. Keempat metode ini diimplementasikan dalam program C untuk menyelesaikan empat persamaan nonlinier yang berbeda.
13. printf("i. x1 |x2 -x1|n");
printf("%d %.3f -n",i,a);
if(df(a) == 0)
{
printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
getch();
return 0;
}
else
{
do
{
b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d %.3ft%.3fn",i+1,b,error);
a=b;
i++;
}while( error > toleransi );
printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}
c. xcosx-2x2+3x-1=0
#include <stdio.h>
#include <math.h>
#include <conio.h>
14. float f(float x)
{
float d;
d=(x*cos(x))-(2*x*x)+(3*x)-1;
return d;
}
float df(float x)
{
float d;
d=cos(x)-(x*sin(x))-(4*x)+3 ;
return d;
}
main()
{
float a,b,error,toleransi;
int i=0;
printf("Titik awal (x1) = "); scanf("%f",&a);
printf("Toleransi = "); scanf("%f",&toleransi);
printf("i. x1 |x2 -x1|n");
printf("%d %.3f -n",i,a);
if(df(a) == 0)
{
printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
getch();
return 0;
}
else
{
do
{
b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d %.3ft%.3fn",i+1,b,error);
a=b;
i++;
}while( error > toleransi );
printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
15. }
d. x2-4x-4-ln x=0
#include <stdio.h>
#include <math.h>
#include <conio.h>
float f(float x)
{
float d;
d=(x*x)-(4*x)-4-log(x);
return d;
}
float df(float x)
{
float d;
d=(2*x)-4-(1/x) ;
return d;
}
main()
{
float a,b,error,toleransi;
int i=0;
printf("Titik awal (x1) = "); scanf("%f",&a);
printf("Toleransi = "); scanf("%f",&toleransi);
printf("i. x1 |x2 -x1|n");
printf("%d %.3f -n",i,a);
if(df(a) == 0)
{
printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
getch();
return 0;
}
16. else
{
do
{
b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d %.3ft%.3fn",i+1,b,error);
a=b;
i++;
}while( error > toleransi );
printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}
17. Tugas Akhir
1. a. Program dengan Metoda secant f(x) = cos(x)- x3 = 0.
#include <stdio.h>
#include <math.h>
double f(double x)
{
return cos(x) - x*x*x;
}
double FalsiMethod(double s, double t, double e, int m)
{
int n,side=0;
double r,fr,fs = f(s),ft = f(t);
for (n = 1; n <= m; n++)
{
r = (fs*t - ft*s) / (fs - ft);
if (fabs(t-s) < e*fabs(t+s)) break;
fr = f(r);
if (fr * ft > 0)
{
t = r; ft = fr;
if (side==-1) fs /= 2;
side = -1;
}
else if (fs * fr > 0)
{
s = r; fs = fr;
if (side==+1) ft /= 2;
side = +1;
}
else break;
}
return r;
}
int main(void)
{
printf("%0.15fn", FalsiMethod(0, 1, 5E-15, 100));
return 0;
}
b. Metoda regula falsi
18. Analisis
Pada praktikum kali ini, praktikan diharuskan untuk mencari solusi akar persamaan
nonlinier menggunakan minimal 3 metode, yaitu metode bisection, metode iterasi titik
tetap, dan metode Newton-Raphson.
Pada metode bisection, terlebih dahulu kita harus menentukan 2 titik sebagai acuan
pencarian akar persamaan tersebut. Diharapkan, akar-akar persamaan tersebut berada di
antara kedua titik yang kita tentukan tersebut. Saat kita menentukan titik, misalkan a dan b,
kita harus memperhatikan syarat dari metode bisection ini yaitu, f ( a) × f (b) < 0 , bila
syarat tersebut tidak terpenuhi maka kita harus menentukan titik yang lain karena pada
kedua titik pertama tersebut tidak terdapat solusi akar dari persamaan nonlinier. Setelah
kita menentukan kedua titik tersebut dan syarat di atas terpenuhi, lalu kita menentukan
toleransi. Toleransi ini adalah batas kita melakukan penghitungan atau iterasi. Program
akan melakukan iterasi sampai dengan selisih antara akar sebenarnya dengan akar yang
mendekati mencapai suatu nilai, nilai ini yang disebut dengan toleransi. Program akan
berhenti bila toleransi telah terpenuhi dan program tidak akan melakukan penghitungan bila
tidak terdapat akar di antara kedua titik yang kita tentukan seperti pada kasus di atas. Pada
praktikum kali ini tidak ditemukan kesulitan dan kesalahan yang berarti pada pencarian
akar persamaan nonlinier menggunakan metode bisection ini.
Pada pencarian akar-akar persamaan nonlinier menggunakan metode iterasi titik
tetap, kita tidak memerlukan 2 titik untuk menentukan akar yang mungkin terdapat di
antara kedua titik tersebut. Yang diperlukan adalah sebuah tebakan awal akar atau dua buah
tebakan yang tidak memerlukan 2 titik yang mengurung akar persamaan tersebut. Metode
ini mengubah fungsi f (x ) menjadi g (x) dengan syarat g ′( x) < 1 dimana x adalah titik
yang ditentukan pada saat melakukan iterasi. Pada praktikum menggunakan metode iterasi
titik tetap ini, ditemukan kesalahan dalam pencarian akar persamaan x 2 − 4 x − 4 − ln x = 0
dan x cos x − 2 x 2 + 3x − 1 = 0 . Hal ini mungkin disebabkan karena kasalahan dalam
menentukan fungsi g (x) nya. Kesalahan ini menyebabkan hasil pencarian akar pada kedua
persamaan ini tidak sesuai dengan yang diharapkan semula.
19. Selanjutnya menggunakan metode Newton-Raphson. Metode ini adalah metode
yang paling handal untuk menentukan akar dari persamaan-persamaan nonlinier. Metode
ini menyelesaikan persamaan non linear f (x) dengan pendekatan garis singgung dengan
f ( x0 )
menggunakan persamaan: x = x 0 − , f ′( x) ≠ 0 . Seperti pada metode iterasi titik
f ′( x0 )
tetap, metode ini hanya memerlukan satu buah titik tebakan. Pada pencarian akar-akar
persamaan menggunakan metode Newton-Raphson dalam praktikum ini, didapatkan
kesalahan pada hasil akar pada persamaan x 2 − 4 x − 4 − ln x = 0 . Hal ini mungkin
disebabkan oleh kesalahan pada menentukan turunan atau diferensial dari fungsi tersebut
sehingga hasil akar dari persamaan tersebut tidak seperti yang diharapkan.
20. Kesimpulan
Dengan menggunakan metode bisection, iterasi titik tetap, dan Newton-Raphson
kita dapat menentukan akar dari persamaan-persamaan nonlinier. Setiap metode memiliki
kekurangan dan kelebihan dibandingkan metode yang lainnya.
Berikut adalah beberapa kekurangan dan kelebihan masing-masing metode
dibandingkan dengan yang lainnya.
Metode Bisection:
- Bila dalam selang [a,b] terdapat lebih dari satu akar (banyaknya akar ganjil), hanya
satu buah akar yang dapat ditemukan.
- Metode ini tidak berhasil menemukan akar ganda. Hal ini karena tidak terdapat
perbedaan tanda di ujung-ujung selang yang baru.
- Hampiran akar yang didapatkan mendekati akar sejati (konvergen).
- Memiliki tingkat kesalahan yang kecil.
- Dibutuhkan waktu yang lama dalam pencarian akar menggunakan metode ini.
Metode Iterasi Titik Tetap:
- Tidak memerlukan dua titik sebagai pembatas untuk mencari akar.
- Tidak berlaku untuk semua fungsi, sehingga perlu untuk memeriksa bentuk fungsi.
- Lambat dalam proses penghitungan.
Metode Newton-Raphson:
- Tidak dapat digunakan ketika titik pendekatannya berada pada titik ekstrim atau
titik puncak, karena pada titik ini nilai f ′( x ) = 0 . Bila titik pendekatan berada pada
titik puncak, maka titik selanjutnya akan berada di tak hingga.
- Bila titik pendekatannya berada di antara dua titik stasioner akan dapat
mengakibatkan hilangnya penyelesaian (Divergen).