Professional Documents
Culture Documents
Nomor 6 Bab 7: 'Fun' 'Dfun' 'Metode Newton Gagal!'
Nomor 6 Bab 7: 'Fun' 'Dfun' 'Metode Newton Gagal!'
function [akar,langkah]=newton_sistem12(p0,tol)
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
akar=[p0];
langkah=0;
while norm(fp)>tol
langkah=langkah+1;
q0=jf\fp;
p=p0-q0;
akar=[akar p];
p0=p;
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode newton gagal!')
end
end
%fungsi yang diketahui
function y=fun(x)
y=zeros(3,1);
y(1)=x(1)^3+x(1)^2*x(2)-x(1)*x(3)+6;
y(2)=exp(x(1))+exp(x(2))-x(3);
y(3)=x(2)^2-2*x(1)*x(3)-4;
%jacobiannya
function dy=dfun(x)
dy=zeros(3,3);
dy(1,1)=3*x(1)^2+2*x(1)*x(2)-x(3);
dy(1,2)=x(1)^2;
dy(1,3)=-x(1);
dy(2,1)=exp(x(1));
dy(2,2)=exp(x(2));
dy(2,3)=-1;
dy(3,1)=-2*x(3);
dy(3,2)=2*x(2);
dy(3,3)=-2*x(1);
>> [akar,langkah]=newton_sistem(p0,1e-6)
akar =
langkah =
function[akar,langkah]=chord_modif(p0,tol,m)
%m:period memperbarui nilai awal jacobian
fp=feval('fun',p0);
jf=feval('dfun',p0);%jacobian di titik awal
q0=jf\fp;
p1=p0-q0;
akar=[p0];
langkah=0;
d1=1; d2=m;
while norm(p1-p0)>tol
for k=d1:d2
langkah=langkah+1;
akar=[akar p1];
p0=p1;
fp=feval('fun',p0);
q0=jf\fp;
p1=p0-q0;
end
%updating nilai awal jacobian
d1=m+1; d2=d2+m;
pu=akar(:,d1);
jf=feval('dfun',pu);
end
%fungsi yang diketahui
function y=fun(x)
y=zeros(3,1);
y(1)=x(1)^3+x(1)^2*x(2)-x(1)*x(3)+6;
y(2)=exp(x(1))+exp(x(2))-x(3);
y(3)=x(2)^2-2*x(1)*x(3)-4;
%derivatifnya
function dy=dfun(x)
dy=zeros(3,3);
dy(1,1)=3*x(1)^2+2*x(1)*x(2)-x(3);
dy(1,2)=x(1)^2;
dy(1,3)=-x(1);
dy(2,1)=exp(x(1));
dy(2,2)=exp(x(2));
dy(2,3)=-1;
dy(3,1)=-2*x(3);
dy(3,2)=2*x(2);
dy(3,3)=-2*x(1);
>> [akar,langkah]=chord_modif(p0,1e-6,3)
akar =
Columns 1 through 7
Columns 8 through 13
langkah =
12