LAP 4 Metode Newton Raphson
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