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
Recommended