METODE NEWTON RAPHSON
Diposkan oleh youhanez.blogspot.com di 21:50Algoritma Metode Newton Raphson:
- Definisikan fungsi f(x) dan f1(x)
- Tentukan toleransi error (e) dan iterasi maksimum (n)
- Tentukan nilai pendekatan awal x0
- Hitung f(x0) dan f’(x0)
- Untuk iterasi I = 1 s/d n atau |f(xi)|> e
R Hitung f(xi) dan f1(xi)
R Akar persamaan adalah nilai xi yang terakhir diperoleh.
1. Program menghitung nilai x dari persamaan f(x) : x2 + 3x – 10 dengan menggunakan metode Newton Rapshon.
Deksripsi :
Metode Newton Rapshon menggunakan formula atau algoritma untuk mendapatkan nilai x maka :
*. x[n+1] = x[n] – f(x)/f`(x)
*. Parameter awal x diinput dan nilai e = 0.0005
*. f(x) = fungsi persamaan x2 + 3x – 10 = 0, maka x = 2 atau x = -5, jadi kita menginputkan bilangan x awal apabila mendekati 2 maka hasil x akhir = 3, dan apabila mendekati = -5 maka hasil x akhir = 5
*. f`(x) = fungsi turunan pertama f(x) 2x + 3
*. nilai e = 0.0005
*. kondisi dimana perulangan berhenti nilai mutlak (Absolute) |x[n+1] – x[n]| < e, dimana hasil x[n] = x.
a. Listing Program
#include <stdio.h>
#include <math.h>
#include <conio.h>
float Fungsi(float x);
float FungsiTurunan(float x);
main()
{
int n=0;
float x[100];
float e = 0.0005;
printf(" Program Newton Rapshon \n");
printf(" ====================== \n\n");
printf("Persamaan Fungsi f(x) : \n");
printf(" x*x + 3x - 10 \n\n");
printf("x(n+1) : \n");
printf(" x(n)-(f(xn)/f'(xn)) \n\n");
printf("Nilai e = 0.0005\n\n");
printf("Masukkan nilai x Awal : "); scanf("%f",&x[0]);
printf("==================================================================\n");
printf("! n ! xn ! f(xn) ! f'(xn) ! f(xn)/f'(xn) ! x(n+1) !\n");
printf("==================================================================\n");
do
{
x[n+1] = x[n] - (Fungsi(x[n])/FungsiTurunan(x[n]));
printf("! %d ! %2.4f ! %2.4f ! %2.4f ! %2.4f ! %2.4f !\n", n, x[n],Fungsi(x[n]), FungsiTurunan(x[n]),Fungsi(x[n])/FungsiTurunan(x[n]),x[n+1]);
n++;
}while(abs(x[n-1]-x[n-2])>e);
printf("! %d ! %2.4f ! %2.4f ! %2.4f ! %2.4f ! %2.4f !\n", n, x[n],Fungsi(x[n]), FungsiTurunan(x[n]),Fungsi(x[n])/FungsiTurunan(x[n]),x[n+1]);
printf("==================================================================\n\n");
printf("Jadi, Hasil yang memenuhi dari persamaan tersebut x = %2.4f", x[n]);
getch();
}
float Fungsi(float x)
{
return pow(x,2)+(3*x)-10;
}
float FungsiTurunan(float x)
{
return 2*x+3;
}
b. Output Program
Jika x awal = 2.5
Jika x awal = -5.5
0 komentar:
Posting Komentar