You are on page 1of 19

Laporan Metode Numerik

Penyusun:
Muzaki Kurniawan (1110121014) Prodi Teknik Elektronika D4

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2013

A.Metode mencari akar nonlinear 1.Metode Biseksi


a a1 a2 b2 b1 c1 c3 c2 c0 b

Langkah mencari akar dengan metode biseksi: 1. Input a dan b 2. syarat jika f(a)*f(b)<0,maka ada akar 3. c=(a+b)/2 |f(c)|<tol Jika(if) instruksi ya,maka nilai akar=c Jika(if) instruksi tidak,maka f(a)f(c)<0 b=c else a=c Flowchart metode biseksi: Start f(x)----

input a,b?

f(a)*f(b)>0

Input tol

c=(a+b)/2

c=(a+b)/2

c=(a+b)/2

|f(c)|>tol

|f(c)|>tol

Cetak akar

Stop

Penyelesaian melalui program #include<stdio.h> #include<math.h> float f (float x) { return(x*x-7); } void main() { float a,b,c,tol; do { printf("masukkan nilai a: "); scanf("%f",&a); printf("masukkan nilai b: "); scanf("%f",&b); } while((f(a)*f(b))>0); printf("masukkan nilai toleransi :"); scanf("%d",&tol); c=(a+b)/2; while(f(c)>tol); { if(f(a)*f(c)<0) { b=c; } else { a=c; } c=(a+b)/2; } printf("%f",c); }

2.Newton Raphson
a a1 a2 b2 b1 c1 c3 c2 c0 b

Langkah mencari akar dengan metode newton raphson: Persamaan garis singgung/slope/gradient Tg =(y0-0)/(x0-x1) f(x0,y0)=y0/(x0-x1) (x0-x1)=y0/f(x0,y0) x1=x0-(f(x0,y0)/f(x0,y0) Didapatkan rumus: xi+1=xi-(f(xi,yi)/f(xi,yi) Flowchart metode newton raphson: Start f(x)----

input x0,tol?

xi+1=xi(f(xi,yi)/f(xi,yi)

c=xi+1

|f(c)|>tol

Cetak akar

Stop

PROGRAM #include<stdio.h> #include<math.h> float f (float x) { return(x*x-9); } float f2 (float x) { return(x*2); } void main() { int i=0; float x[100],tol,c; printf("masukkan nilai x0 : "); scanf("%f",&x[0]); printf("masukkan nilai toleransi : "); scanf("%f",&tol);

do { x[i+1]=x[i]-(f(x[i])/f2(x[i])); printf("ke-%d : %f",i,x[i]); c=x[i+1]; printf("\n"); i++; } while(fabs (f(c)>tol)); { printf("akarnya adalah : %f",c); printf("\n"); }

3.Metode Secant
y0 y2=0 x2 x0 x1 y1 f(x)

Metoda secant merupakan salah satu metoda yang digunakan untuk mencari nilai akar dari persamaan y=f(x). Metoda ini dapat dipahami dengan menggunakan bantuan model segitiga dalam penyelesainnya seperti berikut, dengan X0 dan X1 merupakan batas yang dijadikan acuan awal untuk mencari nilai X yang sebenarnya.
Langkah mencari akar dengan metode secant: Interpolasi X X0 X1 X2 Y Y0 Y1 Y2=0

(x2-x1)/(x0-x1)=(0-y1)/(y0-y1) (x2-x1)=- y1(x0-x1) /(y0-y1) x2=x1- y1(x0-x1) /(y0-y1) Sehingga diperoleh: xi+1=xi-f(xi)(xi-1-xi)/f(xi-1)-f(xi) Atau xi+1=xi-f(xi)( xi- xi-1)/ f(xi)-f(xi-1)

Dari rumus di atas bisa kita lihat bahwa yang dicari adalah Xi+1,( Xi+1) ini merupakan nilai X yang dicari sebagai pendekatan terhadap nilai X yang sebenarnya. Jika perhitungan terus dilakukan dengan bebrapa iterasi nilai Xi+1, maka pada akhirnya akan di dapat nilai X yang paling mendekati dengan jumlah eror dan iterasi yang bisa kita tentukan sesuai dengan flowchart algoritma di bawah.

Flowchart metode secant: Start f(x)----

input x0,x1,tol?

i=1

xi+1=xi-(f(xi)(xi-xi-1)/f(xi)-f(xi-1)) i++

|f(xi+1)|<tol

Cetak akar

Stop

Penyelesaian melalui program #include<stdio.h> #include<math.h> float f (float x) { return(x*x-9); } void main() { int i=0; float x[100],tol; printf("masukkan nilai x0 : "); scanf("%f",&x[0]); printf("masukkan nilai x1 : "); scanf("%f",&x[1]); printf("masukkan nilai toleransi : "); scanf("%f",&tol); do { i++; x[i+1]=x[i]-(f(x[i])*(x[i]-(x[i-1]))/(f(x[i])-f(x[i-1]))); printf("ke-%d : %f",i,x[i+1]); printf("\n"); } while(fabs (f(x[i+1]))>tol); { printf("akarnya adalah : %f",x[i+1]); printf("\n"); } }

4.Metode False position


f(b) m1 a f(a) c m2 x b

Metode Regula Falsi yang berarti metode posisi palsu atau false position method merupakan suatu metode yang memanfaatkan nilai f(a) dan nilai f(b). Metode regula falsi adalah metode pencarian akar persamaan dengan memanfaatkan kemiringan (gradien) dan selisih tinggi dari dua titik batas range. Seperti halnya metode biseksi, metode ini bekerja secara iterasi dengan melakukan update range. Dengan metode ini, dibuat suatu garis lurus yang menghubungkan titik (a,f(a)) dan (b,f(b)). Perpotongan garis tersebut dengan sumbu x merupakan taksiran akar. Garis lurus tersebut seolah-olah berlaku menggantikan kurva f(x) dan memberikan posisi palsu dari akar. Prinsip : di sekitar akar fungsi yang diperkirakan, anggap fungsi merupakan garis lurus itu memotong garis nol ditentukan sebagai akar fungsi.
Langkah mencari akar dengan metode false position: m1=f(b)-0/(b-c) m2=0-f(a) /(c-a) m2=m1 -f(a)/(c-a)=f(b)/(b-c) -(b-c)f(a)=(c-a)f(b) -bf(a)+cf(a)=cf(b)-af(b) cf(a)-cf(b)=bf(a) -af(b) c(f(a)-f(b))=bf(a) -af(b) Sehingga diperoleh: c=(bf(a)-af(b))/f(a)-f(b) c=(bf(a)-af(b))/f(a)-f(b) atau c=( af(b)-bf(a))/ f(b)-f(a)

Flowchart metode false position: Start f(x)----

input a,b?

f(a)*f(b)>0

Input tol

c=(a+b)/2

c=(a+b)/2

c=(a+b)/2

|f(c)|>tol

|f(c)|>tol

Cetak akar

Stop

Penyelesaian melalui program #include<stdio.h> #include<math.h> float f (float x) { return(x*x-7); } void main() { float a,b,c,tol; do { printf("masukkan nilai a: "); scanf("%f",&a); printf("masukkan nilai b: "); scanf("%f",&b); } while((f(a)*f(b))>0); printf("masukkan nilai toleransi :"); scanf("%d",&tol); c=(a+b)/2; while(f(c)>tol); { if(f(a)*f(c)<0) { b=c; } else { a=c; } c=(a+b)/2; } printf("%f",c); }

5.Metode Tabel
a a1 a2 b2 b1 c1 c3 c2 c0 b

Langkah mencari akar dengan metode tabel: 1. Input a dan b 2. syarat jika f(a)*f(b)<0,maka ada akar 3. c=(a+b)/2 |f(c)|<tol Jika(if) instruksi ya,maka nilai akar=c Jika(if) instruksi tidak,maka f(a)f(c)<0 b=c else a=c Flowchart metode tabel: Start f(x)----

input a,b?

f(a)*f(b)<0

Input n, tol

h=(b-a)/n

i=1

|f(a+(i-1)*h)|<tol

i=i+1

akar=a+(i-1)*h

Cetak akar

Stop Penyelesaian melalui program #include<stdio.h> #include<math.h> float f (float x) { return(x*x-7); } void main() { float a,b,c,tol; do { printf("masukkan nilai a: "); scanf("%f",&a); printf("masukkan nilai b: "); scanf("%f",&b); } while((f(a)*f(b))>0); printf("masukkan nilai toleransi :"); scanf("%d",&tol); c=(a+b)/2; while(f(c)>tol); { if(f(a)*f(c)<0) { b=c; } else {

a=c; } c=(a+b)/2; } printf("%f",c); }

B.Integrasi Numerik 1.Trapezoidal


f(b) f(x) f(a) b h L=1/2(b-a){f(a)+f(b)} L=1/2(h)(f(a)f(b)) =h(1/2(f(a))+1/2(f(b)) f(x) f(x) L1 L3 L2 L4 a b L=0 L=L+L1 L1=1/2(h){f(a)+f(a+h)}
L2=1/2(h){f(a+h)+f(a+2h)} L3=1/2(h){f(a+2h)+f(a+3h)} L4=1/2(h){f(a+3h)+f(a+4h)} Sehingga diperoleh rumus: Li=1/2(h){f(a+(i-1)h)+f(a+ih)} Flowchart Trapezoidal: Start f(x)----

n=4 h=(b-a)/n

input a,b,n?

h=(b-a)/n

L=0

for(i=1;i<=n;i++

L+= 1/2(h){f(a+(i-1)h)+f(a+ih)}

Cetak L

Stop Penyelesaian Program trapezoidal #include<stdio.h> #include<math.h> float f (float x) { return((x*x)-7); }

void main() { int n,i; float h,l,a,b; printf("masukkan nilai a: "); scanf("%f",&a); printf("\n"); printf("masukkan nilai b: "); scanf("%f",&b); printf("\n"); printf("masukkan nilai n: "); scanf("%d",&n); printf("\n"); h=(b-a)/n; printf("h=%f",h);

printf("\n"); l=0; for(i=1;i<=n;i++) { l+=0.5*h*(f(a+(i-1)*h)+f(a+(i*h))); } printf("%f",l); printf("\n"); }

2.Simpson 1/3
f(b) f(x) f(a) b h L=1/2(b-a){f(a)+f(b)} L=1/2(h)(f(a)f(b)) =h(1/2(f(a))+1/2(f(b)) f(x) f(x) L1 L3 L2 L4 a b L=0 L=L+L1 L1=1/2(h){f(a)+f(a+h)}
L2=1/2(h){f(a+h)+f(a+2h)} L3=1/2(h){f(a+2h)+f(a+3h)} L4=1/2(h){f(a+3h)+f(a+4h)} Sehingga diperoleh rumus: Li=1/2(h){f(a+(i-1)h)+f(a+ih)}

n=4 h=(b-a)/n

Flowchart Trapezoidal: Start f(x)----

input a,c?

b=(c+a)/2

h=b-a

l=(h/3)*(f(a)+(4*f(b))+f(c))

printf("%f",l);

Stop

Penyelesaian Program simpson 1/3 #include<stdio.h> #include<math.h> float f (float x) { return((x*x*x)-2*x+11); } void main() { float h,l,a,b,c; printf("masukkan nilai a: "); scanf("%f",&a); printf("\n"); printf("masukkan nilai c: "); scanf("%f",&c); printf("\n"); b=(c+a)/2; h=b-a;

printf("h=%f",h); printf("\n"); l=(h/3)*(f(a)+(4*f(b))+f(c)); printf("%f",l); printf("\n"); }

You might also like