Matlab metode titik tetap digunakan untuk mencari solusi persamaan nonlinier. berikut program matlab yang digunakan dalam matlab :
disp(' ');
disp('====================================================')
disp('- Program Untuk Mencari Solusi Persamaan NonLinear -')
disp('- dengan Metode Titik Tetap -')
disp('----------------------------------------------------')
disp(' ')
x0=0;
iter=1;
fungsi1=input('Silahkan menginput fungsi f(x)= ');
fungsi2=input('Silahkan menginput fungsi g(x)= ');
x=input('Silahkan menginput suku awal= ');
disp('Tabel Iterasinya sebagai berikut :');
disp('====================================================');
disp(' iter x fx error ');
disp('====================================================');
while abs((x-x0)/x)>0.000000001
gx=feval(fungsi2,x);
fx=feval(fungsi1,x);
x0=x;
x=gx;
e=abs((x-x0)/x);
fprintf('%3.0f %10.8f %10.8f %10.8f\n',iter, x, fx, e);
iter=iter+1;
end
disp(' ')
fprintf('Maka akar dari persamaan nonlinear tersebut adalah %10.8f\n', x)
disp(' ')
disp('===================Terima Kasih=====================')
Blog Matematika - Blog ini berisi tentang hal - hal yang berkaitan tentang matematika dan berguna bagi mahasiswa jurusan Pendidikan Matematika
Tuesday, 15 May 2012
Matlab Metode Newton
disp ('mencari akar dengan metode newton');
x=input ('masukan suku awal');
f=input('masukan input');
f1=input('masukan turunan f(x) ');
x0=0;
n=1;
disp('==========================================');
disp(' n fx e');
disp('==========================================');
while abs(x-x0)>0.00000001;
fx=feval(f,x);
f1x=feval(f1,x);
e=abs(x-x0);
fprintf('%3.0f %10.8f %10.8f\n',n ,fx ,e)
x0=x;
x=x0-fx/f1x;
n=n+1;
end
akar=x;
fprintf('akarnya adalah %10.8f\n',akar)
x=input ('masukan suku awal');
f=input('masukan input');
f1=input('masukan turunan f(x) ');
x0=0;
n=1;
disp('==========================================');
disp(' n fx e');
disp('==========================================');
while abs(x-x0)>0.00000001;
fx=feval(f,x);
f1x=feval(f1,x);
e=abs(x-x0);
fprintf('%3.0f %10.8f %10.8f\n',n ,fx ,e)
x0=x;
x=x0-fx/f1x;
n=n+1;
end
akar=x;
fprintf('akarnya adalah %10.8f\n',akar)
Matlab Metode Secant
%Program secant
function ashsecant (filename, xa, xb)
disp (' Program Metode Secant' )
disp ('==================================')
eps=0.00001;
x(1)=xa;
x(2)=xb;
y(1)=feval(filename, x(1));
y(2)=feval(filename,x(2));
max_iter=20;
iter=2;
fprintf ('iter x f\n' );
fprintf ('% 3.0f, %0.6f, %10.6f\n' , 1, x(1), y(1));
fprintf ('% 3.0f, %0.6f, %10.6f\n', 2, x(2), y(2));
while 1
x(iter+1) = x(iter) - y (iter) * (x(iter) - x(iter-1)) / (y(iter) - y(iter-1));
y(iter+1) = feval (filename, x(iter+1));
iter = iter + 1;
fprintf ('% 3.0f, %0.6f, %10.6f\n', iter, x(iter), y(iter));
if (abs (x(iter) - x(iter-1)) <= eps)
fprintf ('Toleransi error terpenuhi \ n'); break
end
if (iter>max_iter)
fprintf ('Maximum iterasi\n'); break
end
end
x(iter)
function ashsecant (filename, xa, xb)
disp (' Program Metode Secant' )
disp ('==================================')
eps=0.00001;
x(1)=xa;
x(2)=xb;
y(1)=feval(filename, x(1));
y(2)=feval(filename,x(2));
max_iter=20;
iter=2;
fprintf ('iter x f\n' );
fprintf ('% 3.0f, %0.6f, %10.6f\n' , 1, x(1), y(1));
fprintf ('% 3.0f, %0.6f, %10.6f\n', 2, x(2), y(2));
while 1
x(iter+1) = x(iter) - y (iter) * (x(iter) - x(iter-1)) / (y(iter) - y(iter-1));
y(iter+1) = feval (filename, x(iter+1));
iter = iter + 1;
fprintf ('% 3.0f, %0.6f, %10.6f\n', iter, x(iter), y(iter));
if (abs (x(iter) - x(iter-1)) <= eps)
fprintf ('Toleransi error terpenuhi \ n'); break
end
if (iter>max_iter)
fprintf ('Maximum iterasi\n'); break
end
end
x(iter)
Monday, 14 May 2012
Matlab Metode Jacobi
disp(' ');
disp('=====================================================')
disp('- Program Menentukan Solusi Sistem Persamaan Linear -')
disp('- dengan Metode Jacobi -')
disp('-----------------------------------------------------')
function [X,g,H]= jacobi(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0;
for k=1:N,
for i = 1:n,
S = b(i)-A(i,[1:i-1,i+1:n])*X0([1:i-1,i+1:n]);
X1(i)=S/A(i,i);
end
g = abs(X1-X0)
err = norm(g);
relerr = err/(norm(X1)+ eps);
X0 = X1
H = [H;X0']
if (err<T)|(relerr<T),break,end
end
disp(' ')
disp('===================Terima Kasih======================')
disp('=====================================================')
disp('- Program Menentukan Solusi Sistem Persamaan Linear -')
disp('- dengan Metode Jacobi -')
disp('-----------------------------------------------------')
function [X,g,H]= jacobi(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0;
for k=1:N,
for i = 1:n,
S = b(i)-A(i,[1:i-1,i+1:n])*X0([1:i-1,i+1:n]);
X1(i)=S/A(i,i);
end
g = abs(X1-X0)
err = norm(g);
relerr = err/(norm(X1)+ eps);
X0 = X1
H = [H;X0']
if (err<T)|(relerr<T),break,end
end
disp(' ')
disp('===================Terima Kasih======================')
Matlab Regula Falsi
%metode regula_falsi
function regula_falsi (fname,xa,xb)
eps=0.00001;
f_a=feval (fname,xa);
f_b=feval (fname,xb);
max_iter=14;
iter=0;
fprintf('iter a b tengah fa fb abs(fb-fa) \n ');
while 1
iter=iter+1;
xtengah=xb-(f_b*(xb-xa))/(f_b-f_a);
f_tengah=feval(fname,xtengah);
fprintf('%3.0f,%8.3f,%12.6f',iter,xa,xb);
fprintf('%13.6f,%13.7f,%13.8f',xtengah,f_a,f_b);
fprintf('%14.3e\n',abs((f_b-f_a)));
if(abs(xb-xa)<=eps)
fprintf('toleransi error terpenuhi.\n');break
end
if(iter>max_iter)
fprintf('maximum iterasi.\n');break
end
if(f_a*f_tengah<=0.0)
xb=xtengah;
f_b=f_tengah;
else
xa=xtengah;
f_a=f_tengah;
end
end
function regula_falsi (fname,xa,xb)
eps=0.00001;
f_a=feval (fname,xa);
f_b=feval (fname,xb);
max_iter=14;
iter=0;
fprintf('iter a b tengah fa fb abs(fb-fa) \n ');
while 1
iter=iter+1;
xtengah=xb-(f_b*(xb-xa))/(f_b-f_a);
f_tengah=feval(fname,xtengah);
fprintf('%3.0f,%8.3f,%12.6f',iter,xa,xb);
fprintf('%13.6f,%13.7f,%13.8f',xtengah,f_a,f_b);
fprintf('%14.3e\n',abs((f_b-f_a)));
if(abs(xb-xa)<=eps)
fprintf('toleransi error terpenuhi.\n');break
end
if(iter>max_iter)
fprintf('maximum iterasi.\n');break
end
if(f_a*f_tengah<=0.0)
xb=xtengah;
f_b=f_tengah;
else
xa=xtengah;
f_a=f_tengah;
end
end
Subscribe to:
Posts (Atom)
