Matlab - Mencari Akar Dari Persamaan f(x) Dengan Metode Newton Rahpson
Tulisan kali ini akan membahas tentang matlab. bukan tutorial, tapi sedikit contoh program yang sudah saya buat untuk tugas metode numerik. Program berikut ini adalah mencari akar dari persamaan dari f(x) dengan metode newton rapshon. berikut ini source code ditulis dalam m.file dengan nama newtons. berikut source codenya..
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
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 !