6.
Source Code Program dengan Metode Newton Rhapson
public class NewtonRhapson
{ public static void main (String[]args)
{double x=2; double y,t; int iterasi=10;
for(int i=1;i<=iterasi;i++)
{ y=Math.pow(x,2)-3; //f(x)=x^2-3
t=2*x; //turunannya f(x)
x-=y/t; //x=x-y/t
System.out.println("Iterasi ke-"+i+"\tx: "+x); } }}
3.
Source Code Program dengan Metode Secant
public class Secant
{ public static void main(String[]args)
{double x1=0,x2=6,x3;double y1,y2,y3;int iterasi=12;
for(int i=1;i<=iterasi;i++)
{ y1=Math.pow(x1,2)-3; y2=Math.pow(x2,2)-3;
if(y1==y2)
{ break;}
x3=x2-y2*(x2-x1)/(y2-y1);y3=Math.pow(x3,2)-3;x1=x2;x2=x3;
System.out.println("Iterasi ke-"+i+"\tx: "+x3);
2.
Source Code Program dengan Metode Regula Falsi
public class RegulaFalsi
{ public static void main(String[]args)
{double x1=0, x2=6, xt; double y1,y2,yt; int iterasi=32;
for(int i=1;i<=iterasi;i++)
{y1=Math.pow(x1,2)-3;y2=Math.pow(x2,2)-3;xt=x2-y2*(x2-x1)/(y2-y1);yt=Math.pow(xt,2)-3;
if(y1*yt<0)
{ x1=x1;x2=xt;}
else if(y2*yt<0)
{ x1=xt;x2=x2;}
System.out.println("Iterasi ke="+i+"\tx: "+xt);
}
}
1.
Source Code Program dengan Metode Biseksi
public class Biseksi
{ public static void main(String[]args)
{ double x1=0, x2=6, xt; double y1,y2,yt; int iterasi=32;
for(int i=1;i<=iterasi;i++)
{ y1=Math.pow(x1,2)-3; y2=Math.pow(x2,2)-3; xt=(x1+x2)/2; yt=Math.pow(xt,2)-3;
if(y1*yt<0)
{ x1=x1; x2=xt; }
else if(y2*yt<0)
{ x1=xt; x2=x2; }
System.out.println("Iterasi ke="+i+"\tx: "+xt);}
}
source code java penerapan metode Secant public class demoSecant{ public static void main(String[] args){ double e, x1, x2, x0, fx1,fx2,fx0; x0=1.0; x1=2.0; e=0.001; System.out.println("\t\tProgram System.out.println("\t\t Program Demo Metode Secant"); System.out.println("\t\t\tOleh System.out.println("\t\t \tOleh Waskita"); System.out.println("\t\t\tVersi System.out.println("\t\t \tVersi 1.0"); System.out.println(); for(int i=1;i<=4;i++) i=1;i<=4;i++){{ fx0 = (x0*x0*x0) + 2*(x0*x0) -3* x0 - 3; fx1 = (x1*x1*x1) + 2*(x1*x1) -3* x1 - 3; x2 = x1 - ( fx1 *((x0 - x1)/(fx0 - fx1))); fx2 = (x2*x2*x2) + 2*(x2*x2) - 3*x2 - 3; System.out.println("iterasi System.out.println("ite rasi ke-"+i); System.out.println("nilaii x0 = "+x0); System.out.println("nila System.out.println("nilaii x1 = "+x1); System.out.println("nila System.out.println("nilaii x2 = "+x2); System.out.println("nila System.out.println("nilaii fx0 = "+fx0); System.out.println("nila System.out.println("nilaii fx1 = "+fx1); System.out.println("nila System.out.println("nilaii fx2 = "+fx2); System.out.println("nila System.out.println(); if(fx2<0){ fx2=-1*fx2; if(fx2<=e){ System.out.println("akar System.out.println("a kar telah ditemukan"); break; }else { x0 = x1; x1 = x2; } if(fx2<=e){ System.out.println("akar System.out.println("a kar telah ditemukan"); break; } else { x0 = x1; x1 = x2; } } }
} }
Algoritma Newton-Raphson: 1. Menentukan suatau persamaan non-linier / f(X). 2. memberikan nilai error toleransi(e) dan batasan pengulangan(ulang) 3. Memberikan nilai terkaan awal(X0) 4. mencari turunan dari persamaan non-linier tersebut / f(X)'. 5. mulai dari awal perulangan( j=1 sampai ulang lakukan : a. hitung nilai f(Xj) jika nilai f(Xj) < e maka Xj merupaka merupakan n solusi akar persamaan non-linier tersebut b. jika nilai f(Xj) > e maka maka hitung : Xj+1 = Xj - f(Xj) / f(Xj)'. b.1 hitung nilai f(Xj+1) b.2 jika nilai f(Xj+1) < e maka maka Xj+1 merupakan merupakan solusi solusi akar persamaan persamaan cotoh soal. carilah solusi penyelesaian sistem persamaan non-linier berikut f(x) = X^3 + X^2 - 10 dengan nilai terkaan awal x = 1 dan e = 0,00001 jawab: langkah 1 : f(x) = X^3 + X^2 - 10; langkah 2 : e = 0,00001; langkah 3 : nilai terkaan awal x = 1; langkah 4 : mencari turunan dari persamaan persamaan non-linier tersebut / f(X)' = f(x)' = 3X^2 + 2X; langkah 5 a: f(1) = 1 + 1 - 10 = -8; b: tidak memenuh memenuhii nilai e, x1 = x - ( f(x) / f(x)' ) = 1 - -8/(3*(1) + 2*(1)) = 1 - 8/5 = -3/5 hasil untuk penyelesaian ini saya sajikan dalam bentuk tabel x(ke-) x f(x) f(x)' 0 1 1 5 1 2,6 14,336 25,48 2 2,03736263736 2,0373626373 6 2,60762612 16,52726482 3 1,8795854 0,17311821 14,35769467 4 1,867527882 0,0009641 14, 1980 jadi akar penyeles penyelesaian aian dari persama persamaan an non-linier tersebut tersebut adalah adalah x = 1,867527882. catatan: membandingkan nilai f(x) terhadap nilai e (error toleransi ) bukan berarti membandingkan besar kecil tetapi berapa angka dibelakang koma untuk mendekati anggka nol.
Metode Secant Merupakan kombinasi antara Regula falsi dan Newton serta tidak perlu menghitung turuna fungsi Algoritma 1.tentukan persamaan non-linier yang akan diselesaikan 2. tentukan nilai awal x0 dan x1 3. tentukan nilai error toleransi dan batas pengulangan 4. hitung nilai f(x0) dan f(x1) 5. cari nilai x2 dengan rumus x2 = x1 - f(x1) * ( (x1 -x0) / ( f(x1) - f(x0) ) 6. hitung nilai f(x2) 7. jika nilai f(x2) mendekati nilai error toleransi(e) atau mencapai batas akhir perulangan 7a. jika ya x2 adalah dari persamaan non-linier tersebut 7b. jika tidak x0 = x1 dan x1 = x2 ulangi dari langkah ke 4. Contoh soal. Tentukan salah satu akar dari persamaan non-linier f(x) = x^3 + x^2 - 3x - 3 = 0 dengan x0 = 1 , x1 = 2 dan error toleransi(e) = 0,001 jawab f(x) = x^3 + x^2 - 3x - 3 = 0 x0 = 1, x1 = 2 f(x0) = (1)^3 + (1)^2 - 3(1)^2 - 3 = -4 f(x1) = (2)^3 + (2)^2 - 3(2)^2 - 3 = 3 x2 = x1 - f(x1)*( f(x1)*( (x1 - x0) / (f(x1) - f(x0) )) = 2 - 3* ((2-1)/(f(3 - -4)) = 1,7142 f(x2) = (1,7142)^3 + (1,7142)^2 - 3(1,7142)^2 - 3 = - 0,16659 nilai f(x2) belum memenuhi nilai error toleransi x0 = x1 = 2; x1 = x2 = 1,7142 f(x0) = 3; f(x1) = -0,16659 x2 = x1 - f(x1)*( f(x1)*( (x1 - x0) / (f(x1) - f(x0) )) = 1,7142 - -0,16659* ((2 - 1,7142)/(f( -0.16659 - 3)) = 1,6992 f(x2) = (1,6992)^3 + (1,6992)^2 - 3(1,6992)^2 - 3 = - 0,304253 nilai f(x2) belum memenuhi nilai error toleransi x0 = x1 = 1,7142; x1 = x2 = 1,6992 f(x0) = -0,16659; f(x1) = -0,304253 x2 = x1 - f(x1)*( f(x1)*( (x1 - x0) / (f(x1) - f(x0) )) = 1,6992 - -0,304253* ((1,6992 - 1,7142)/(( -0.304253 - -0,16992)) = -1,7323516 f(x2) =(1,7323516)^3 + (1,7323516)^2 - 3(1,7323516)^2 - 3 = - 0,0004785 nilai f(x2) memenuhi nilai error toleransi; jadi salah satu akar penyelesaian penyelesaian dari persamaan non-linier non-linier tersebut adalah adalah -1,7323516
source code java penerapan metode Regula Falsi public class demoRegulaFalsi{ public static void main(String[] args){ int i; double xatas, xbawah, x, fxatas, fxbawah, e, fx, fxcoba; e=0.001; xatas=2; xbawah=1; fxatas=(xatas * xatas * xatas)+(xatas*xatas)-(3*xatas)-3; fxbawah=(xbawah*xbawah*xbawah)+(x fxbawah=(xbawah*x bawah*xbawah)+(xbawah*xbawah)-(3*xba bawah*xbawah)-(3*xbawah)-3; wah)-3; outerloop:for(i=1;i<=1000;i++){ x = xatas - ( (fxatas*xbawah)- ( fxbawah*xatas) ) /(fxatas - fxbawah); fx = (x*x*x)+(x*x)-(3*x)-3; if(fx<0){ fxcoba=-(fx); if(fxcoba<=e){ System.out.println("nilai System.out.println("n ilai f(x)= "+fx); System.out.println("akar System.out.println("a kar dari persamaan non-linier tersebut adalah "+x); break; }else{ System.out.println("iterasi System.out.println("it erasi ke-"+i); System.out.println("nilai System.out.println("n ilai dari x("+i+")"+x); System.out.println("nilai System.out.println("n ilai dari fx("+i+")"+fx) fx("+i+")"+fx);; System.out.println("nilai System.out.println("n ilai dari xa("+i+")"+xatas); System.out.println("nilai System.out.println("n ilai dari xb("+i+")"+xbaw xb("+i+")"+xbawah); ah); System.out.println("nilai System.out.println("n ilai dari f(xa) ke-"+i +fxatas); System.out.println("nilai System.out.println("n ilai dari f(xb) ke-"+i +fxbawah); if ((fx*fxbawah)<0 ){ xatas=x; fxatas=fx; continue outerloop; } else { xbawah=x; fxbawah=fx; continue outerloop; } } } else { if(fx<=e){ System.out.println("nilai System.out.println("n ilai f(x)= "+fx);
System.out.println("akar System.out.println("a kar dari persamaan non-linier tersebut adalah "+x); break; }else{ System.out.println("iterasi System.out.println("it erasi ke-"+i); System.out.println("nilai System.out.println("n ilai dari x("+i+")"+x); System.out.println("nilai System.out.println("n ilai dari fx("+i+")"+fx) fx("+i+")"+fx);; System.out.println("nilai System.out.println("n ilai dari xa("+i+")"+xatas); System.out.println("nilai System.out.println("n ilai dari xb("+i+")"+xbawah) xb("+i+")"+xbawah);; System.out.println("nilai System.out.println("n ilai dari f(xa) ke-"+i +fxatas); System.out.println("nilai System.out.println("n ilai dari f(xb) ke-"+i +fxbawah); if ((fx*fxbawah)<0 ){ xatas=x; fxatas=fx; continue outerloop; } else { xbawah=x; fxbawah=fx; continue outerloop; } }
} } } }
source code java penerapan metode Newton-Rahpson public class newtonraphson{ public static void main (String[] args){ double a,x; double fa,fat,e; int i; // memasukkan nilai terkaan awal a=1; //memasukkan nilai error toleransi e=0.001; System.out.println("\t\t\tProgram System.out.println("\t\t \tProgram Newton- Raphson"); System.out.println("\t\t\t\tV System.out.println("\t\t \t\tV 1.0"); //melakukan dengan batas 100 kali perulangan for ( i=0;i<=1000;i++){
fa= (a*a*a)+(a*a)-10 (a*a*a)+(a*a)-10;; //menghitung nilai turunan fat=(3*a*a)+(2*a); System.out.println("Nilaii dari X("+i+") \t= "+a); System.out.println("Nila a = a-(fa/fat); System.out.println("Nilaii dari fx \t\t= "+fa); System.out.println("Nila System.out.println("Nilaii dari fx aksen \t= "+fat); System.out.println("Nila if (fa<0 ){ fa=(-fa); if (fa<=e){ break; } } else{ if(fa<=e){ break; } } System.out.println(""); } } }