macro
persentil x
mconstant n i j k a l p q sisa persentil
mcolumn x
let n=count(x)
#Mengurutkan data
do i=1:n
do j=1:n
if i > j and x(i) < x(j)
let x(i)=x(j)
let x(j)=a
endif
enddo
enddo
#letak persentil
do k=1:99
let l=k*(n+1)/100
let p=floor(l,0)
let q=p+1
let sisa=l-p
let persentil=x(p)+(sisa*(x(q)-x(p)))
print k persentil
enddo
endmacro
歓迎
ブログのアーカイブ
About Ekatsuki
- Eka Purnama
- Ƹ̵̡Ӝ̵̨̄Ʒ~✿~Ƹ̵̡Ӝ̵̨̄Ʒ~✿~Ƹ̵̡Ӝ̵̨̄Ʒ (`'·.¸ (`'·.¸*¤* ¸.·'´) ¸.·'´) لا إله إلا اللـه محمد رسول اللـه (¸.·'´ (¸.·'´*¤* `'·.¸) `'·.¸) Ƹ̵̡Ӝ̵̨̄Ʒ~✿~Ƹ̵̡Ӝ̵̨̄Ʒ~✿~Ƹ̵̡
Blog teman-temanQ
Situs Baca
macro
desil x
mconstant n i j k a l p q sisa desil
mcolumn x
let n=count(x)
#Mengurutkan data
do i=1:n
do j=1:n
if i > j and x(i) < x(j)
let x(i)=x(j)
let x(j)=a
endif
enddo
enddo
print x
#letak desil
do k=1:9
let l=k*(n+1)/10
let p=floor(l,0)
let q=p+1
let sisa=l-p
let desil=x(p)+(sisa*(x(q)-x(p)))
print k desil
enddo
endmacro
macro
kuartil x
mconstant n i j k a l p q sisa kuartil
mcolumn x
let n=count(x)
#Mengurutkan data
do i=1:n
do j=1:n
if i > j and x(i) < x(j)
let x(i)=x(j)
let x(j)=a
endif
enddo
enddo
print x
#letak kuartil
do k=1:3
let l=k*(n+1)/4
let p=floor(l,0)
let q=p+1
let sisa=l-p
let kuartil=x(p)+(sisa*(x(q)-x(p)))
print k kuartil
enddo
endmacro
macro
median x
mconstant n i j a d1 d2 median
mcolumn x
let n=count(x)
#Mengurutkan data
do i=1:n
do j=1:n
if i>j and x(i)
let x(i)=x(j)
let x(j)=a
endif
enddo
enddo
print x
if mod(n,2)=0
#data genap
let d1=n/2
let d2=d1+1
let median =(x(d1)+x(d2))/2
else
#data ganjil
let d1=n/2
let d2=round(d1)
let median=x(d2)
endif
print median
endmacro
macro
modus x
mconstant i j n bykx modus
mcolumn x y
let n=count(x)
do i=1:n
let y(i)=0
do j=1:n
if x(i)=x(j)
let y(i)=1+y(i)
else
let y(i)=y(i)
endif
enddo
enddo
print x(i) y(i)
let bykx=y(1)
do i=2:n
if bykx>y(i)
let bykx=bykx
else
let bykx=y(i)
let modus=x(i)
endif
enddo
print modus bykx
endmacro
macro
mean_matrix x
mconstant n mean sigma sigma2 variansi sb
mcolumn x i xmsq
mmatrix mx mi mit mxmsq
#menghitung rerata
copy x mx
let n=count(x)
let i=x-x+1
copy i mi
transpose mi mit
multiply mit mx sigma
let mean=sigma/n
print mean
#menghitung variansi
let xmsq=(x-mean)**2
copy xmsq mxmsq
multiply mit mxmsq sigma2
let var=sigma2/(n-1)
print variansi
#menghitung simpangan baku
let sb=sqrt(variansi)
print sb
endmacro
macro
rerata x
mconstant n i sigma mean sigma2 variansi sb
mcolumn x
#menghiutng rerata
let n=count(x)
let sigma=0
do i=1:n
let sigma=sigma+x(i)
enddo
let mean=sigma/n
print mean
#menghitung variansi
let sigma2=0
do i=1:n
let sigma2=sigma2+(x(i)-mean)**2
enddo
let var=sigma2/(n-1)
print variansi
#menghitung simpangan baku
let sb=sqrt(variansi)
print sb
endmacro
macro
mean_matrix x
mconstant n mean sigma
mcolumn x i
mmatrix mx mi mit
copy x mx
let n=count(x)
let i=x-x+1
copy i mi
transpose mi mit
multiply mit mx sigma
let mean=sigma/n
print mean
endmacro
macro
rata x
mconstant n i sigma mean
mcolumn x
let n=count(x)
let sigma=0
do i=1:n
let sigma=sigma+x(i)
enddo
let mean=sigma/n
print mean
endmacro
macro
kombinasi y x
mconstant n k i j fak1 fak2 fak3 kom
mcolumn x y
#mencari n!
let n = x
if n<0
print 'Masukkan kembali nilai n >= 0'
elseif n=0
print '0! = 1'
else
let fak1=1
do i=1:n
let fak1=fak1*i
enddo
endif
#mencari (n-k)!
let k = y
if n
elseif k<0
print 'Masukkan kembali k>0'
elseif k=n
let kom=fak1
else
let fak2=1
do j=1:n-k
let fak2=fak2*j
enddo
#menghitung k!
let fak3=1
do i=1:k
let fak3=fak3*i
enddo
let kom=fak1/(fak2*fak3)
print fak1 fak2 fak3 kom
endmacro
macro
permutasi y x
mconstant n k i j fak1 fak2 per
mcolumn x y
#mencari n!
let n = x
if n<0
print 'Masukkan kembali nilai n >= 0'
elseif n=0
print '0! = 1'
else
let fak1=1
do i=1:n
let fak1=fak1*i
enddo
endif
#mencari (n-k)!
let k = y
if n
elseif k<0
print 'Masukkan kembali k>0'
elseif k=n
let per=fak1
else
let fak2=1
do j=1:n-k
let fak2=fak2*j
enddo
#menghitung perrmutasi
let per=fak1/fak2
endif
print per
endmacro
Berikut contoh penggunaan macro untuk menghitung nilai faktorial suatu bilangan
macro
faktorial x
mconstant n i fak
mcolumn x
let n = x
if n<0
print 'Masukkan kembali nilai n >= 0'
elseif n=0
print '0! = 1'
else
let fak=1
do i=1:n
let fak=fak*i
enddo
print fak
endif
endmacro
Metode Gauss dan Gauss-Jordan banyak digunakan untuk menyelesaikan sistem persamaan linear
contoh:
Selesaikan sistem persamaan lanjar berikut dengan meetode eliminasi
x + y + 2z = 9
2x+4y - 3z = 1
3x+6y - 5z = 0
Kita bisa menyelesaikannya menggunakan matlab
clc;
clear;
disp('Solusi dari persamaan: x + y + 2z = 9')
disp(' 2x+4y - 3z = 1')
disp(' 3x+6y - 5z = 0')
disp('Menggunakan Metode Eliminasi Gauss')
A=[1 1 2 9;2 4 -3 1;3 6 -5 0]
disp('Baris 2 = -2 kali Baris 1 + Baris 2')
A(2,:)=-2*A(1,:)+A(2,:)
disp('Baris 3 = -3 kali Baris 1 + Baris 3')
A(3,:)=-3*A(1,:)+A(3,:)
disp('Baris 2 = Baris 2 bagi 2')
A(2,:)=A(2,:)/2
disp('Baris 3 = -3 Baris 2 + Baris 3')
A(3,:)=-3*A(2,:)+A(3,:)
disp('Baris 3 = -2 kali Baris 3')
A(3,:)=-2*A(3,:)
z=A(3,4)
y=A(2,4)-z*A(2,3)
x=A(1,4)-(A(1,2)*y+A(1,3)*z)
kalo pake metode Gauss-Jordan, programnya
clc;
clear;
disp('Solusi dari persamaan: x + y + 2z = 9')
disp(' 2x+4y - 3z = 1')
disp(' 3x+6y - 5z = 0')
disp('Menggunakan Metode Eliminasi Gauss-Jordan')
A=[1 1 2 9;2 4 -3 1;3 6 -5 0]
disp('Baris 2 = -2 kali Baris 1 + Baris 2')
A(2,:)=-2*A(1,:)+A(2,:)
disp('Baris 3 = -3 kali Baris 1 + Baris 3')
A(3,:)=-3*A(1,:)+A(3,:)
disp('Baris 2 = Baris 2 bagi 2')
A(2,:)=A(2,:)/2
disp('Baris 3 = -3 Baris 2 + Baris 3')
A(3,:)=-3*A(2,:)+A(3,:)
disp('Baris 3 = -2 kali Baris 3')
A(3,:)=-2*A(3,:)
disp('Baris 1 = -1 kali Baris 2 + Baris 1')
A(1,:)=-1*A(2,:)+A(1,:)
disp('Baris 1 = -11/2 kali Baris 3 + Baris 1')
A(1,:)=(-11/2)*A(3,:)+A(1,:)
disp('Baris 2 = 7/2 kali Baris 3 + Baris 2')
A(2,:)=(7/2)*A(3,:)+A(2,:)
clc;
clear;
x0=1.5;
y0=3.5;
disp('Solusi Persamaan Nirlanjar f(x,y)=x^2+xy-10=0');
disp(' f(x,y)=y+3xy^2-57=0');
disp('Dengan Metode Newton-Raphson');
disp('iterasi akar1 akar2');
for iterasi=0:50;
u=x0^2+x0*y0-10;
v=y0+3*x0*y0^2-57;
x=x0-((u*(1+6*x0*y0)+ v*x0)/((2*x0+y0)*(1+6*x0*y0)-x0*3*y0^2));
y=y0+((u*(3*y0^2)- v*(2*x0+y0))/((2*x0+y0)*(1+6*x0*y0)-x0*3*y0^2));
fprintf(' %3g %10.6f %10.6f\n', iterasi, x, y);
if (abs(x-x0)<0.000001) || (abs(y-y0)<0.000001);
end;
x0=x;
y0=y;
end;
fprintf('Jumlah iterasi = %g\n',iterasi);
fprintf('Akar akarnya adalah %10.6f dan %10.6f\n',x, y);
clc;
clear;
x0=1.5;
y0=3.5;
epsilon=0.000001;
disp('Solusi Persamaan Nirlanjar f(x,y)=x^2+xy-10=0');
disp(' f(x,y)=y+3xy^2-57=0');
disp('Dengan Metode Titik Tetap');
disp('r x y |x(r+1)-x(r)| |y(r+1)-x\y(r)|');
for iterasi=1:50;
x=10/(x0+y0);
y=50/(1+3*x*y0);
fprintf('%3g %12.7f %12.7f %12.7f %12.7f\n', iterasi, x, y, abs(x-x0),abs(y-y0));
if (abs(x-x0)
end;
x0=x;
y0=y;
end;
akar1=x;
akar2=y;
fprintf('Akar 1 adalah %10.7f\n',x);
fprintf('Akar 2 adalah %10.7f\n',y);
fprintf('Jumlah iterasi = %3g\n', iterasi);
clc;
clear;
disp('Akar-akar Persamaan polinomial 10x^7-17x^6+9x^4-2x^2+3x-15')
p=[10 -17 0 9 0 -2 3 15];
r=roots(p)
clc;
clear;
x0=1;
x1=2;
y0=4;
y1=5;
epsilon=0.000001;
disp('Metode Secant untuk persamaan exp(x)-9*x')
disp('iterasi akar1 akar2')
for k=1:17;
x=x1-(exp(x1)-9*x1)*(x1-x0)/(exp(x1)-9*x1-exp(x0)+9*x0);
y=y1-(exp(y1)-9*y1)*(y1-y0)/(exp(y1)-9*y1-exp(y0)+9*y0);
fprintf(' %3g %10.7f %10.7f\n', k, x, y);
if(abs(x-x1)<epsilon)&(abs(y-y1)<epsilon);
break;
end;
x0=x1;
x1=x;
y0=y1;
y1=y;
end;
akar1=x;
akar2=y;
fprintf('Akar akarnya adalah %10.7f dan %10.7f\n',akar1, akar2);
fprintf('Jumlah iterasi = %g\n',k);
clc;
clear;
x0=-5;
y0=5;
epsilon=0.000001;
disp('Metode Newton Rapshon untuk persamaan exp(x)-9*x');
disp('iterasi akar1 akar2');
for iterasi=1:15;
x=(exp(x0)*(x0-1))/(exp(x0)-9);
y=(exp(y0)*(y0-1))/(exp(y0)-9);
fprintf(' %3g %10.7f %10.7f\n', iterasi, x, y);
if (abs(x-x0))<epsilon & (abs(y-y0))<epsilon
break;
end;
x0=x;
y0=y;
end;
akar1=x;
akar2=y;
fprintf('Akar akarnya adalah %10.7f dan %10.7f\n',akar1, akar2);
fprintf('Jumlah iterasi = %g\n',iterasi);
clc;
clear;
%f(x) = exp(x) - 9*x=0
x0=0;
x=exp(x0)/9;
epsilon = 0.0000001;
iterasi=0;
disp('METODE TITIK TETAP untuk persamaan f(x)=exp(x)-9*x');
disp('x=0, epsilon=0.0000001');
disp('iterasi akar');
while abs(x-x0)>epsilon
x0=exp(x0)/9;
fprintf(' %3g %10.7f\n',iterasi, x);
iterasi=iterasi+1;
end;
akar = x;
fprintf('Akarnya adalah = %8.7f\n', akar);
fprintf('Jumlah Iterasi = %3g\n', iterasi);
clc;
clear;
%f(x) = exp(x) - 9*x
a=0;
b=1;
epsilon= 0.0000001;
iterasi=0;
disp('METODE REGULA FALSI untuk persamaan f(x)=exp(x)-9*x');
disp('a=0, b=1, epsilon=0.0000001');
disp('Iterasi a b c f(a) f(b) f(c) selang baru lebar');
while abs(b-a) > epsilon
fa=exp(a)-9*a;
fb=exp(b)-9*b;
c=b-(fb*(b-a)/(fb-fa));
fc=exp(c)-9*c;
fprintf(' %3g %5.4f %5.4f %5.4f %10.7f %10.7f %10.7f ',iterasi,a,b,c,fa,fb,fc);
if abs(fc)<epsilon;
a=c;
b=c;
elseif fa*fc<0
b=c;
selang = '[a,c]';
else
a=c;
selang='[c,b]';
end;
fprintf(' %8s %9.8f\n',selang,abs(b-a));
iterasi=iterasi+1;
end;
akar = c;
fprintf('Akarnya adalah = %8.7f\n', akar);
fprintf('Jumlah Iterasi = %g\n', iterasi);