Matlab - Mencari Akar Dari Persamaan f(x) Dengan Metode Newton Rahpson
function[AKAR,M]=newtons(A,x)
jum_iter=0 %jumlah iterasi
bats_er=1 %batas error
N=max(size(A))-1; %mencari nilai orde tertnggi
itermax = 100 %iterasi max
display('Iterasi Nilai Akar Batas Error');
while jum_iter < itermax %batas iterasi max
jum_iter=jum_iter+1;
%menghitung nilai fx
fx=0;
for i=1:N+1
fx=fx+A(i)*(x.^((N+1)-i));
end
fprintf('%3.0f %3.5f %3.5f\n',jum_iter,x,abs(fx));
%menyimpan hasil iterasi ke matriks M
M(jum_iter,1)=jum_iter;
M(jum_iter,2)=x;
M(jum_iter,3)=abs(fx);
%mengecek batas error
bats_er=abs(fx);
if bats_er < 0.000001;
break
else
%menghitung nilai turunan fx
fx1 = 0;
for i=1:N
fx1 = fx1+((N+1)-i)*A(i)*x.^(N-i);
end
%update nilai x baru
if fx1 == 0;
fprintf('Kesalahan: deriv(x) = 0; gak bisa dibagi sama 0 (nol)\n');
break
else
x = x-(fx/fx1);
end
end
end
if jum_iter> itermax
display('iterasi melebihi batas');
else
AKAR = x;
fprintf('\nAkarnya = %8.6f, banyak iterasi = %g \n',x,jum_iter);
%menggambar grafiknya
sumbuX=M(:,1)
sumbuY=M(:,2)
plot(sumbuX,sumbuY)
end
untuk penggunaan, masuk ke matlab ketikkan
[X,M]=newtons2([1 1 -3 -3],1)
[ 1 1 -3 -3] adalah persamaan f(x)= x^3 + x^2 - 3x - 3
dan 1 adalah nilai sembarang x1
Comments
Post a Comment
Please Don't make SPAM HERE !