%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)
Blog Matematika - Blog ini berisi tentang hal - hal yang berkaitan tentang matematika dan berguna bagi mahasiswa jurusan Pendidikan Matematika
Tuesday, 15 May 2012
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
Matlab Metode Bisection
%metode bisection
function bisection (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=(xa+xb)/2;
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 bisection (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=(xa+xb)/2;
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
Matlab Invers Matriks
Dalam mencari solusi persamaan linier, selain menggunakan metode eleminasi gauss, dapat juga digunakan metode invers matriks. Berikut program Matlab untuk metode invers matriks :
disp('program solusi SPL dengan invers matriks');
m=input('banyaknya baris adalah ');
n=input('banyaknya kolom adalah ');
for i=1:m
for j=1:n
B(i,j)=input('entry matriks');
end
end
for k=1:n
c(k)=input('entry vektor');
end
B
c=c'
Binv=inv(B)
solusi=Binv*c
Setelah di run menggunakan Matlab, maka hasilnya akan seperti dibawah ini :
disp('program solusi SPL dengan invers matriks');
m=input('banyaknya baris adalah ');
n=input('banyaknya kolom adalah ');
for i=1:m
for j=1:n
B(i,j)=input('entry matriks');
end
end
for k=1:n
c(k)=input('entry vektor');
end
B
c=c'
Binv=inv(B)
solusi=Binv*c
Setelah di run menggunakan Matlab, maka hasilnya akan seperti dibawah ini :
Subscribe to:
Posts (Atom)

