LAP 4 Metode Newton Raphson

Post on 26-Jun-2015

117 views 2 download

Transcript of LAP 4 Metode Newton Raphson

I. TUJUANMempelajari bagaimana cara menyelesaikan akar persamaan dengan metode Newton

II. DASAR TEORI

Waktu pencarian akarnya relatif lebih cepat dibandingkan metode lainnya.

Memanfaatkan turunan fungsi f(x) pada suatu titik P [x1, f(x1)]

Membuat garis singgung pada titik P tsb yg memotong sumbu x didapat xi+1 .Sampai

ditemukan akarnya (sesuai batas toleransi/error yg diberikan).

Persamaan garis singgung melalui P [X1, f(X1)] adalah: y – f(X1) = f ’(X1) . (X – X1)

dgn f ’(X1) : gradien garis singgung

Persamaan tsb memotong sumbun x di titik (X2, 0) maka akan diperoleh:

0 - f(X1) = f’(X1). (X2– X1)

X2 .f’(X1) - X1.f’(X1) = - f’(X1)

X2 = X1 - f(X1)/ f’(X1)

Secara Rekurens, persamaan tsb dinyatakan menjadi:

Xi+1= Xi - f(X1)/ f’(X1)

Utk i = 1, 2, 3, …

f’(Xi): turunan pertama f(X) pada x = xi.

1

Flowchart Metode Newton Raphson :

2

START

Definisi Fungsi F(x) dan FT(x)

Input :• Pendekatan awal (x0)• Toleransi Error (e)• Iterasi Maksimum (N)

x=x0

Dapatkan y1=F(x) dan y2=FT(x)

(x)

Inisialisasi :• iterasi = 0

|F(x)|>= e && iterasi <= N

iterasi=iterasi+1Dapatkan :

xi +1 = xi- atau (x1=x-(y1/y2) )

y1=F(x1), y2=FT(x1) , x=x1

Tampilkan :akar x dan F(x)

Akar Terletak di xDengan nilai F(x)

END

Contoh:F(x)=x2-5» x=linspace(-4,4,100);» y=x.^2-5;» plot(x,y);grid

p=input('Masukkan koefisien p(x): ');x0=input('Masukkan nilai awal: ');q=polyder(p); %menghitung turunan dari p(x)x1=x0-polyval(p,x0)/polyval(q,x0);fprintf('\n'); fprintf('Aproksimasi berikutnya: %9.6f \n', x1)fprintf('\n'); fprintf('Runningkan program untuk aproksimasi berikutnya \n');

Setelah dijalankan programnya:» Masukkan koefisien p(x): [1 0 -5]Masukkan nilai awal: 2

Aproksimasi berikutnya: 2.250000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 -5]Masukkan nilai awal: 2.25

Aproksimasi berikutnya: 2.236111

3

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 -5]Masukkan nilai awal: 2.236

Aproksimasi berikutnya: 2.236068

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 -5]Masukkan nilai awal: 2.236

Aproksimasi berikutnya: 2.236068

Selanjutnya coba anda kerjakan program berikut:function [fx,dfx]=fungsi2(a,x)n=size(a,2);b(1)=a(1);c(1)=b(1);for k=2:n-1 b(k)=x*b(k-1)+a(k); c(k)=x*c(k-1)+b(k);end;b(n)=x*b(n-1)+a(k);fx=b(n);dfx=c(n-1);

Berikan nama file : fungsi2Lanjutkan dengan:koef=input('masukkan vektor koefisien f(x)=');x=input('masukkan nilai taksiran awal x=');[fx,dfx]=fungsi2(koef,x);k=1;hasil1=[];hasil1(k,1)=x;hasil1(k,2)=fx;hasil1(k,3)=-log10(abs(fx));while abs(fx)>0.000001; x=x-fx/dfx; [fx,dfx]=fungsi2(koef,x); k=k+1; hasil1(k,1)=x; hasil1(k,2)=fx; hasil1(k,3)=-log10(abs(fx));end;disp(' x fx -log10(abs(fx))');for u=1:k fprintf('%12.7e %12.7e %12.7e\n',hasil1(u,1)), hasil1(u,2),hasil1(u,3);end;plot(hasil1(:,3),'g');xlabel('laju konvergensi f(x)=0')ylabel('-log10(abs(fx)=0')hold on;grid on;

4

Hasil programnya:masukkan vektor koefisien f(x)=[1 0 -5]masukkan nilai taksiran awal x=2 x fx -log10(abs(fx))2.0000000e+000 ans =

4

1.0000000e+000 ans =

1

5.0000000e-001 ans =

0.2500

2.5000000e-001 ans =

0.0625

1.2500000e-001 ans =

0.0156

6.2500000e-002 ans =

0.0039

3.1250000e-002 ans =

9.7656e-004

1.5625000e-002 ans =

2.4414e-004

7.8125000e-003 ans =

6.1035e-005

3.9062500e-003 ans =

1.5259e-005

5

1.9531250e-003 ans =

3.8147e-006

9.7656250e-004 ans =

9.5367e-007

Soal latihan1. X2

2. X4-4x+1

Program dan penyelesaiannya1. X2

Penyelesaiannya:» x=linspace(-4,4,100);» y=x.^2;» plot(x,y);grid

6

p=input('Masukkan koefisien p(x): ');x0=input('Masukkan nilai awal: ');q=polyder(p); %menghitung turunan dari p(x)x1=x0-polyval(p,x0)/polyval(q,x0);fprintf('\n'); fprintf('Aproksimasi berikutnya: %9.6f \n', x1)fprintf('\n'); fprintf('Runningkan program untuk aproksimasi berikutnya \n');

Setelah dijalankan programnya:» Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 1

Aproksimasi berikutnya: 0.500000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.5

Aproksimasi berikutnya: 0.250000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.25

Aproksimasi berikutnya: 0.125000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.125

Aproksimasi berikutnya: 0.062500

7

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.063

Aproksimasi berikutnya: 0.031500

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.302

Aproksimasi berikutnya: 0.151000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.151

Aproksimasi berikutnya: 0.075500

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.076

Aproksimasi berikutnya: 0.038000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.038

Aproksimasi berikutnya: 0.019000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.019

Aproksimasi berikutnya: 0.009500

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.010

Aproksimasi berikutnya: 0.005000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.005

Aproksimasi berikutnya: 0.002500

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.003

Aproksimasi berikutnya: 0.001500

8

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.002

Aproksimasi berikutnya: 0.001000

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0]Masukkan nilai awal: 0.001

Aproksimasi berikutnya: 0.000500

Program berikutnya:function [fx,dfx]=fungsi2(a,x)n=size(a,2);b(1)=a(1);c(1)=b(1);for k=2:n-1 b(k)=x*b(k-1)+a(k); c(k)=x*c(k-1)+b(k);end;b(n)=x*b(n-1)+a(k);fx=b(n);dfx=c(n-1);

Berikan nama file : fungsi2Lanjutkan dengan:koef=input('masukkan vektor koefisien f(x)=');x=input('masukkan nilai taksiran awal x=');[fx,dfx]=fungsi2(koef,x);k=1;hasil1=[];hasil1(k,1)=x;hasil1(k,2)=fx;hasil1(k,3)=-log10(abs(fx));while abs(fx)>0.000001; x=x-fx/dfx; [fx,dfx]=fungsi2(koef,x); k=k+1; hasil1(k,1)=x; hasil1(k,2)=fx; hasil1(k,3)=-log10(abs(fx));end;disp(' x fx -log10(abs(fx))');for u=1:k fprintf('%12.7e %12.7e %12.7e\n',hasil1(u,1)), hasil1(u,2),hasil1(u,3);end;plot(hasil1(:,3),'g');xlabel('laju konvergensi f(x)=0')ylabel('-log10(abs(fx)=0')hold on;grid on;

9

Berikan nama file : latihan1Hasil:» masukkan vektor koefisien f(x)=[1 0 0]masukkan nilai taksiran awal x=1 x fx -log10(abs(fx))1.0000000e+000 ans =

1

5.0000000e-001 ans =

0.2500

2.5000000e-001 ans =

0.0625

1.2500000e-001 ans =

0.0156

6.2500000e-002 ans =

0.0039

3.1250000e-002 ans =

9.7656e-004

1.5625000e-002 ans =

2.4414e-004

7.8125000e-003 ans =

6.1035e-005

3.9062500e-003 ans =

1.5259e-005

1.9531250e-003 ans =

3.8147e-006

10

9.7656250e-004 ans =

9.5367e-007

2. x4-4x+1

Penyelesaiannya:» x=linspace(-4,4,100);» y=x.^4-4*x+1;» plot(x,y);grid

11

p=input('Masukkan koefisien p(x): ');x0=input('Masukkan nilai awal: ');q=polyder(p); %menghitung turunan dari p(x)x1=x0-polyval(p,x0)/polyval(q,x0);fprintf('\n'); fprintf('Aproksimasi berikutnya: %9.6f \n', x1)fprintf('\n'); fprintf('Runningkan program untuk aproksimasi berikutnya \n');

Setelah dijalankan programnya:Masukkan koefisien p(x): [1 0 0 -4 1]Masukkan nilai awal: 0

Aproksimasi berikutnya: 0.250000

Runningkan program untuk aproksimasi berikutnya

» Masukkan koefisien p(x): [1 0 0 -4 1]Masukkan nilai awal: 0.25

Aproksimasi berikutnya: 0.250992

Runningkan program untuk aproksimasi berikutnya Masukkan koefisien p(x): [1 0 0 -4 1]Masukkan nilai awal: 0.250

Aproksimasi berikutnya: 0.250992

12

Program berikutnya:function [fx,dfx]=fungsi2(a,x)n=size(a,2);b(1)=a(1);c(1)=b(1);for k=2:n-1 b(k)=x*b(k-1)+a(k); c(k)=x*c(k-1)+b(k);end;b(n)=x*b(n-1)+a(k);fx=b(n);dfx=c(n-1);

Berikan nama file : fungsi2Lanjutkan dengan:koef=input('masukkan vektor koefisien f(x)=');x=input('masukkan nilai taksiran awal x=');[fx,dfx]=fungsi2(koef,x);k=1;hasil1=[];hasil1(k,1)=x;hasil1(k,2)=fx;hasil1(k,3)=-log10(abs(fx));while abs(fx)>0.000001; x=x-fx/dfx; [fx,dfx]=fungsi2(koef,x); k=k+1; hasil1(k,1)=x; hasil1(k,2)=fx; hasil1(k,3)=-log10(abs(fx));end;disp(' x fx -log10(abs(fx))');for u=1:k fprintf('%12.7e %12.7e %12.7e\n',hasil1(u,1)), hasil1(u,2),hasil1(u,3);end;plot(hasil1(:,3),'g');xlabel('laju konvergensi f(x)=0')ylabel('-log10(abs(fx)=0')hold on;grid on;

Berikan nama file : latihan1Hasil :» masukkan vektor koefisien f(x)=[1 0 0 -4 1]masukkan nilai taksiran awal x=0 x fx -log10(abs(fx))0.0000000e+000 ans =

-4

-1.0000000e+000 ans =

1

13

-8.7500000e-001 ans =

0.0862

-8.6209795e-001 ans =

7.5720e-004

-8.6198258e-001 ans =

5.9355e-008

14

III. ANALISA

15

IV. KESIMPULAN

16

DAFTAR PUSTAKA

metode-numerik.blogspot.com

Surbakti,irfan.2006.Metode Numerik.Ed.ke-2.Surabaya:Grafindo

www.google.com

www.informatika.org

www.wikipedia.com

17