PRAKTIKUM 6
Penyelesaian Persamaan Non Linier
Metode Newton Raphson Dengan Modifikasi Tabel
Tujuan :
Dasar Teori :
F( )x
penyebut dari F1( )x sama dengan nol, secara grafis dapat dilihat sebagai
berikut:
titik puncak
akar persamaan
Titik pendekatan
titik puncak
akar persamaan
Bila titik pendekatan berada pada dua tiitik puncak akan dapat mengakibatkan hilangnya
penyelesaian (divergensi). Hal ini disebabkan titik selanjutnya berada pada salah satu
titik puncak atau arah pendekatannya berbeda.
Untuk dapat menyelesaikan kedua permasalahan pada metode newton raphson ini, maka
metode newton raphson perlu dimodifikasi dengan :
1. Bila titik pendekatan berada pada titik puncak maka titik pendekatan tersebut
harus di geser sedikit, xi = xi ±δ dimanaδadalah konstanta yang ditentukan
dengan demikian F1(xi )≠0 dan metode newton raphson tetap dapat berjalan.
2. Untuk menghindari titik-titik pendekatan yang berada jauh, sebaiknya pemakaian
metode newton raphson ini didahului oleh metode tabel, sehingga dapat di jamin
konvergensi dari metode newton raphson.
6. ( (
Bila F abs F1(x0 ) ))<e maka pendekatan awal x digeser sebesar dx
0
(dimasukkan)
x 0 = x0 + dx
hitung F(x0) dan F1(x0)
F(xi−1 )
x1 = xi-1- F1(xi−1 )
Tugas Pendahuluan
Tuliskan dasar-dasar komputasi dari metode newton raphson dengan modifikasi table
untuk menyelesaikan persamaan non linier, sebagai berikut :
1. Judul : METODE NEWTON RAPHSON DENGAN MODIFIKASI TABEL
2. Dasar teori dari metode Newton Raphson Dengan Modifikasi Tabel
3. Algoritma dan Flowchart
Prosedur Percobaan
1. Didefinisikan persoalan dari persamaan non linier dengan fungsi sebagai berikut :
F(x)= x*e-x+cos(2*x)
2. Pengamatan awal
a. Gunakan Gnu Plot untuk mendapatkan kurva fungsi persamaan.
b. Amati perpotongan kurva fungsi dengan sumbu x, itu adalah nilai akar
yang dicari, dapat lebih dari satu.
c. Definisikan dulu fungsi turunannya f i (x)= (1-x)*e-x-2*sin(2*x)
d. Tambahkan input untuk metode table : batas bawah (=a), batas atas(=b),
jumlah pembagi(=p)
e. Lakukan pergeseran titik puncak bila |F (x i)| < e maka xi =
xi + dx
3. Penulisan hasil
a. Dapatkan semua nilai akar xi pada setiap range yang ditemukan ada akar
(f(xi)*f(xi+1)<0)
b. Pada setiap range yang ditemukan ada akar hitunglah xi tiap iterasi
dengan memasukkan nilai xi sebelumnya pada :
)
xi+1 = xi − ff1(( )xxii
float x[100],x0;
float n, e;
int i;
void input();
void newton();
double f(double);
double fa(double);
main()
{
char jawab;
do{
input();
newton();
fflush(stdin);
printf("\nMau menghitung lagi ? ");
scanf("%c", &jawab);
} while(jawab=='y' || jawab=='Y');
void input()
{
printf("\nMasukkan tebakan awal : ");
scanf("%f", &x0);
printf("Masukkan jumlah iterasi maksimal : ");
scanf("%f", &n);
printf("Masukkan error : ");
scanf("%f", &e);
}
double f(double x)
{
return x*exp(-x)+cos(2*x);
}
double fa(double x)
{
return (1-x)*exp(-x)-2*sin(2*x);
}
void newton()
{
i=0;
x[0]=x0;
printf("i\t x\t\t f(x)\t\tf'(x)\n");
printf("\n%d\t%f\t%lg\t%lg\n", i+1, x[0],f(x[0]),fa(x[0]));
while(fabs(f(x[i]))>=e && i<=n)
{
i++;
x[i]=x[i-1]-f(x[i-1])/fa(x[i-1]);
printf("\n%d\t%f\t%lg\t%lg\n", i+1, x[i], f(x[i]), fa(x[i]));
}
printf("\n\nAkar terletak di x = %f\n", x[i]);
}
Pengamatan awal
1. Gambar kurva fungsi dengan Gnu Plot