PENDAHULUAN
Operasi Penjumlahan
» 4+6-7
ans =
3
Perkalian dan pembagian
» 4*10
ans =
40
» 100/4
ans =
25
» sqrt(-10)
ans =
0+3.1623i
» 2^3
ans =
8
» 8^(1/3)
ans =
2.0000
FUNGSI TRIGONOMETRI
» cos(0)
ans =
1
» cos(pi/3)
ans =
0.5000
» sin(pi/2)
ans =
1
» cos(pi/3)+sin(pi/2)
ans =
1.3660
1.2 Matrik
» B=[2;3;5]
B=
2
3
5
» A*B
ans =
23
29
43
» inv(A)
ans =
3.5000 1.0000 -2.5000
-9.5000 -2.0000 6.5000
5.5000 1.0000 -3.5000
» det(A)
ans =
2
» 2+3i
ans =
2.0000 + 3.0000i
» 2+4j
ans =
2.0000 + 4.0000j
Imajiner
4j
Real
2
Sedangkan sudut (argumen) bilangan kompleks tersebut dapat dicari sebagai berikut:
» angle(2+4j)
ans =
1.1071
» angle(2+4j)*180/pi
ans =
63.4349
» abs(2+4j)
ans =
4.4721
1.4 Grafik
Pernyataan berikut ini menyatakan matriks yang terdiri dari 11 kolom mulai dari 0
hingga 10
» x = 0:1:10
x=
0 1 2 4 5 6 7 8 9 10
Jika x tidak ingin ditampilkan maka tambahkan ‘;’ misalkan
» x = 0:1:10;
f(x) = 3 * x2 – 10x
maka jika kita perhatikan suku 3 * x^2 terlihat bahwa angka 3 merupakan matriks
dengan satu kolom dan satu baris, begitu pula dengan angka 2 maka perkalian 3
dengan x^2 merupakan perkalian array karena (perkalian matriks 1 X 1 dengan
matriks m X n), hal yang sama dengan pangkat dua dengan suku persamaan tersebut.
Sehingga dalam MATLAB fungsi tersebut dituliskan ( * diganti .*) sebagai berikut:
» f=3.*.^2-10.*x;
»x
x=
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 14
0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000
Columns 15 through 21
1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000
Columns 22 through 28
2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000
Columns 29 through 35
2.8000 2.9000 3.0000 3.1000 3.2000 3.3000 3.4000
Columns 36 through 42
3.5000 3.6000 3.7000 3.8000 3.9000 4.0000 4.1000
Columns 43 through 49
4.2000 4.3000 4.4000 4.5000 4.6000 4.7000 4.8000
Columns 50 through 56
4.9000 5.0000 5.1000 5.2000 5.3000 5.4000 5.5000
Columns 57 through 63
5.6000 5.7000 5.8000 5.9000 6.0000 6.1000 6.2000
Columns 64 through 70
6.3000 6.4000 6.5000 6.6000 6.7000 6.8000 6.9000
Columns 71 through 77
7.0000 7.1000 7.2000 7.3000 7.4000 7.5000 7.6000
Columns 78 through 84
7.7000 7.8000 7.9000 8.0000 8.1000 8.2000 8.3000
Columns 85 through 91
8.4000 8.5000 8.6000 8.7000 8.8000 8.9000 9.0000
Columns 92 through 98
9.1000 9.2000 9.3000 9.4000 9.5000 9.6000 9.7000
» plot(x,f)
<gambar grafik>
» t = 0:0.1:3*pi;
» y = sin(t);
» plot(t,y)
» title(‘contoh 1’)
» ylabel(‘amplitude y’)
» xlabel(‘t’)
» grid
<gambar grafik>
INTEGRAL
Integrasi atau luas area di bawah suatu persamaan garis (fungsi) dapat dihitung
dengan menggunakan trapz, quad dan quad8, funsi trapz adalah integrasi dengan
pendekatan luas dibagi-bagi dalam bentuk trapesium:
<gambar>
» x = 0:0.2:5;
» y = 2.* x;
» trapz(x,y)
ans =
25.0000
Matriks adlah array dua dimensi dari bilangan riil maupun bilangan kompleks. Aljabar
linear adalah persamaan-persamaan matematika yang dapat diselesaikan dengan
menggunakan operasi matirks. Sebagai contoh perhatikan persamaan berikut:
5x – 10y + z = 24
x+y+z=5
3x + 2y + 3z = 16
5 -10 1 x 24
1 1 1 y = 5
3 2 3 z 16
A. d = b
maka d = A-1 b.
dengan menggunakan MATLAB:
» b = [24;5;16]
b=
24
5
16
» A\b
ans =
2.0000
-1.0000
4.0000
atau dapat juga menggunakan perintah berikut:
» d = inv(A) * b
d=
2.0000
-1.0000
4.0000
Maka didapatkan:
x = 2; y = -1; z = 4;
» A = [2;3]
A=
2
3
» B = [2;3;4]
B=
2
3
4
»A*B
??? Error using => *
Inner matrix dimensions must agree
AX = I dan XA = I
Dimana I adalah matriks identitas, maka X disebut matriks invers dari matriks A atau
lebih sering disebut A-1. Dalam MATLAB ooperasi yang digunakan adalah inv.
Determinan dari sebuah matriks sangat berguna dalam beberapa komputasi teknik. Dalam
MATLAB operasi yang digunakan adalah det.
Contoh:
» G=[3 4 2;2 3 4;4 5 6]
G=
3 4 2
2 3 4
4 5 6
» det(G)
ans =
6
» inv(G)
ans =
-0.3333 -2.3333 1.6667
0.6667 1.6667 -1.3333
-0.3333 0.1667 0.1667
DOT PRODUCT
A = a1 i + a2 j + a3 k
B = b 1 i + b2 j + b3 k
a = 3I + 2j – 3k
b = 2I + k
» a = [3 2 -3]
a=
3 2 -3
» b = [2 0 1]
b=
2 0 1
» a.*b
ans =
6 0 3
TRANSPOS
Operasi transpos adalah operasi tukar tempat aij dan aji misalkan:
» A = [2 3 4 5 6 1 2]
A=
2 3 4 5 6 1 2
Maka [A]T adalah:
» A’
ans =
2
3
4
5
6
1
2
atau jika
» B = [1 2 3;4 5 6]
B=
1 2 3
4 5 6
»B
ans =
1 2
2 5
3 6
LATIHAN
1. Selesaikan persamaan-persamaan di bawah ini dengan menggunakan MATLAB:
a. 5x1 + 4x2 + 4x3 + 2x4 = 57
b. 3x1 + 2x2 + 4x3 + 1x4 = 34
c. 7x1 + 4x2 + 2x4 = 55
d. 5x1 + 5x3 + 2x4 = 57
OPERASI ARRAY
Matlab dapat dapat membuat array secara berurutan sesuai kehendak kita, mislakan:
» t = 0:1:8
t=
0 1 2 3 4 5 6 7 8
atau
» t = 0:0.1:2
t=
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 14
0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000
Columns 15 through 21
1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000
MATLAB dapat membuat matriks dengan ukuran yang kita inginkan yang seluruh
elemennya nol atau satu misalkan:
A = zeros(7)
A=
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
» A = ones(7)
A=
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
» A = ones(2,7)
A=
1 1 1 1 1 1 1
1 1 1 1 1 1 1
» A = ones(4,3)
A=
1 1 1
1 1 1
1 1 1
1 1 1
A(2,2) = 5;
» A(4,2) = 7;
» A(1,3) = 10;
Jika pada A hendak dicari elemen yang mempunyai nila > 5 pada baris 1 maka:
» B = find(A(1,:)>5)
B=
3
artinya nilai A > 5 pada A(1,3)
» A = (1,3)
ans =
10
» find(A(2,:)>5)
ans =
[]
artinya pada baris 2 tidak ada elemen A > 5
» find(A(4,:)>5)
ans =
2
» A(4,2)
ans =
7
III. PEMROGRAMAN M – FILE
A. Quick Start
M-File adalah file-file yang memuat bahasa pemrograman MATLAB, M-File
dapat berupa fungsi (function) yang dapat menerima argument input dan menghasilkan
output, atau dapat berupa script yang mengeksekusi pernyataan-pernyataan MATLAB.
Contoh akar persamaan untuk persamaan kuadrat:
−b±√ b2 −4∗a∗c
x 1,2=
2∗a
x2 =
-0.7500 - 1.1990i
x2 =
-0.7500 - 1.1990i
LATIHAN
1. Buatlah program untuk mencari luas lingkaran dengan menggunakan M-File dengan:
a. Bentuk M-File script
b. bentuk M-File Function
2. Buatlah program untuk mencari volume silinder dengan menggunakan M-File dengan:
a. Bentuk M-File script
b. bentuk M-File Function
3. Buatlah Tabel antara input dan output fungsi transfer seperti berikut ini dengan harga
ω berfariasi dari mulai 0 s/d 100:
2
H ( ω )=
10−ω 2 + j∗5∗ω
Dalam MATLAB operasi relasi dan perbandingan terlihat dari tabel berikut:
Operator Deskripsi
< Lebih kecil dari
<= Lebih kecil dari atau sama dengan
> Lebih besar dari
>= Lebih besar dari atau sama dengan
= Sama dengan
~= Tidak sama dengan
Contoh program:
» D = [2 3 4 2 1 3 4 12 4 5 6 7]
D=
2 3 4 2 1 3 4 12 4 5 6 7
» C = D>3
C=
0 0 1 0 0 0 1 1 1 1 1 1
Perhatikan bedanya dengan statemen berikut:
» B = find(D>3)
B=
3 7 8 9 10 11 12
artinya
D(3), D(7), D(8), D(9), D(10), D(11) dan D(12)>3
B=
3 7 8 9 10 11 12
» D(3)
ans =
4
» D(7)
ans =
4
» D(8)
ans =
12
» D(9)
ans =
4
for x = array
commands ……..
end
Contoh 4.1:
for i = 1:10
r = input(‘Jari-jari :’)
V = 4*pi*r^3/3
End
» p4
Jari-jari : 2
r=2
V = 33.5103
Jari-jari : 3
r=3
V = 113.0973
Jari-jari = 4
r=4
V = 268.0826
Jika V tidak dinyatakan dalam bentuk V(i) maka hanya harga terakhir saja yang direkam.
Latihan:
Ubahlah program di atas agar anda hanya cukup sekali mengeksekusi tanpa memasukan
harga r 10 kali :
a. harga r mulai dari 1 hingga 10
b. harga r mulai dari 5 hingga 9
c. bandingkan jika V diganti V(i)
While expression
commands ……
end
if expression
commands
end
if pernyataan 1
commands…..
elseif pernyataan 2
commnads…..
elseif pernyataan 3
commands…..
end
Contoh:
Buatlah persamaan garis berikut:
10 20 30 40 50
5 untuk 0 ≤ x ≤ 10
f(x) =
1 otherwise
for i=1:30
k=i
if k>=0 & k<=10
x(i)=5;
elseif k>=10 & k<=20
x(i)=0;
elseif k>=20 & k<=30
x(i)=5;
end
end
plot(x)
axis([0 34 -1 6])
grid
<grafik>
Latihan:
1. Ubahlah tersebut untuk n jumlah gelombang
f(x) =
0 otherwise
2. Buatlah program untuk menggambarkan gelombang segitiga seperti pada gambar
5 10 15 20 25
V. POLINOMIAL
5 3 2
P ( x )=x +4 +3 x +10
dalam bentuk
p = [1 0 4 3 10]
» p=[1 0 4 3 10]
p=
1 0 4 3 10
» roots(p)
ans =
0.8052 + 1.8920i
0.8052 – 1.8902i
-0.8052 + 1.3103i
-0.8052 – 1.3103i
» g = [1 7 12]
g=
1 7 12
» roots(g)
ans =
-4
-3
» conv(p,g)
ans =
1 7 16 31 79 106 120
misalkan:
p1(x) = x-5
p2(x) = x+4
» p1 = [1 -5]
» p2 = [1 4]
» p = conv(p1,p2)
p=
1 -1 -20
» deconv(p,[1 -5])
ans =
1 4
P (x ) K1 K2 Kn
= + +. .. . .. .+
Q ( x ) ( x−p 1 ) ( x− p2 ) ( x− pn )
MATLAB dapat mencari koefisien pecahan parsial tersebut berikut ‘pole dan zero’ nya
sebagai berikut:
P (x ) x+7
= 2
Q ( x ) x + 8 x +15
N=x+7
Denumerator
D = x2 + 8x + 15
p=
-5
-3
k=
[]
Koefisien tersebut adalah –1 dan 2, atau secara matematik:
P (x ) −1 2
=c= +
Q (x) ( x+5 ) ( x+3 )
» syms x
»f = x + 7
f=
x+7
» int(f)
ans =
½ * x^2 + 7
Respon suatu sistem pegas, massa dan peredam yang digetarkan dengan gaya F:
m f=F
k = 500 N/m
m = 5 kg c k
c = 2 N s/m
m ẍ +c ( ẋ )+k (x )=F (t )
Lalu dengan menggunakan transformasi laplace:
( ms 2 + cs+ k ) X=F ( s )
1
2
F(s) ms +cs +k X(s)
1
K ( ω )=
k-m ω2 + ic ω
F( ω)∗H (ω)=X ( ω)
F
X ( ω )=
k −mω2 +ic ω
omeg=0:0.1:20;
f=5;
k=500; m=5; c=2;
j=sqrt(-1);
x=f./((k-m.*omeg.^2)+j.*c.*omeg);
plot(omeg,abs(x))
<grafik>
Latihan:
Buatlah program seperti di atas dengan menggunakan for loops
ω = 2*
Maka :
0. 5 1
2
an =
1 (∫ 0
2 cos ( nω t ) dt− ∫ 2cos ( nω t ) dt
0. 5
)
0. 5 1
2 2 2
a1 = ( 1 ω
sin ( ω t )| − sin ( ω t )|
0 ω )
0 .5
0. 5 1
2 2 2
a = ( sin ( ω t )| − sin ( ω t )| )
1
1 2π 2π 0 0 .5
0 .5 1
2
a = (sin (2 πt )| − sin ( 2 πt )| )=0
1
π 0 0. 5
0. 5 1
2
bn =
t (∫ 0
2 sin ( nω t ) dt− ∫ 2 sin ( nω t ) dt
0. 5
)
0 .5 1
2 2 2
1 2π (
b1 = − cos ( ω t )| + cos ( ω t )|
0 2π 0. 5 )
0.5 1
2
π (
b1 = − cos ( 2 πt )| +cos ( 2πt )|
0 0 .5
)
8
b1 =
π
b2 =0
8
b3 =
3π
b 4 =0
8
b5 =
5π
Dengan bantuan Matlab (fft) maka koefisien fourier didapatkan sebagai berikut:
<grafik>
Maka masing-masing bentuk gelombang pada deret Fourier:
f (t )=a0 +a1 cos ω t+ a2 cos2 ω t +. .. .. . ..+a n cos nω t+b 1 sin ω t+b2 sin 2 ω t+bn sin nω t
4 4 4
f (t )= sin2 πt+ sin 6 πt + sin10 πt+. . .. .. . .. ..
π 3π 5π
<grafik>
Atau dalam bentuk tiga dimensi yang terdiri dari domain waktu dan domainfrekwensi
adalah:
Amplitudo
Frequency
<grafik>
Kesimpulan:
Semakin banyaknya siku-siku pada deret yang digunakan maka bentuk sinyal atau
gelombang akan semakin menyerupai bentuk segi empat.
e inωt +e−in ωt
sin nω t=
2i
Lalu dengan mensubstitusikan ekspresi tersebut pada persamaan maka deret fourier
menjadi:
1 ∞
x (t )=a0 + ∑ [ ( a n − jbn ) exp ( jnω t ) + ( an + jb n ) exp (− jnω t ) ]
t n=1
Dan dapat disederhanakan dengan substitusi berikut:
c 0 =a0
( a n − jb n )
c n=
2
( an + jb n )
c−n =
2
Maka dalam bentuk yan sederhana:
∞
x(t )= ∑ c n exp ( jnω 0 t )
n=−1
t +T
0
1
c n= ∫ x(t )exp(− jnω t ) dt
t t0
Suatu sinyal yang terdiri dari beberapa buah gelombang sebagai berikut:
<grafik_1>
18
12
6
for i=1:13
t(i)=i-1;
if i<=7
x(i)=t(i)/3;
else if i>7
x(i)=-(t(i)/3)+4
end
end
» plot(t,x)
<grafik>
clear
n=input (‘Jumlah Perioda : ‘)
for j=1:n;
for I=1:13
t(i)=12*(n-1)+i-1;
if I<=7
x(i)=(t(i)/3)-4*(n-1);
else if i>7
x(i)=-t(i)/3+4*((n-1)+1);
end
end
plot(t,x)
axis([0 12*n+1 -0.5 2.5])
grid
hold on
end
T
2
an = ∫ x(t )cos(nω t ) dt
T 0
T
2
bn = x(t )sin(nω t ) dt
T∫0
T = Perioda
ω = 2 π /t= Frekwensi dalam rad/s
f = 1/T = Frekwensi dalam Hz
Koefisien cosinus an dan koefisien sinus bn dapat dicari dengan menggunakan MATLAB:
an =
w an
0 2
2* π 2
4* π 2
6* π 2
bn =
w bn
2* π 1.6667
4* π 1.6667
4* π 1.6667
1 ∞
x (t )=a0 + ∑ [ (a − jbn)exp( jnω t )+(an + jbn )exp(− jn ω t )]
T n=1 n
c 0 =a0
( a − jb n )
c n= n
2
( an + jb n )
c−n =
2
t=0:0.01:10;
y=2*sin(3*pi*t)+4*sin(5*pi*t)+3*cos(4*pi*t)-2*cos(2*pi*t);
f=conj(fft(y))/(length(t)/2);
figure(1)
subplot(211)
% Karena (“.fft”)pada dasarnya menganggap jumlah data (integer) sebanyak
(length(t)) data maka harus dibagi
% suatu faktor length(f)*0.01, kalau hasilnya dengan sumbu x 1000
% (simetris) atau 500 tidak simetris
plot([0:length(t)/2-1]/(length(f)*0.01,real(f(1:length(f)/2)))
axis([0 6 -3 5])
grid
subplot(212)
plot([0:length(t)/2-1]/(length(f)*0.01,imag(f(1:length(f)/2)))
axis([0 6 -3 5])
grid
figure(2)
plot(y)
grid
clf
clear all
for n=1:220;
w=(n-1)/20;
t=0:0.01:20;
y=5*sin(2*t)+cos(3*t)+5*cos(10*t)+4*sin(5*t);
A=trapz(t,y);
k=exp(-i*w.*t).*y;
cn(n)=(trapz(t,k));
ww(n)=w;
end
an=(cn+conj(cn))./20;
bn=(imag(conj(cn)_(cn))./20;
disp([ an’ bn’])
cc=find(2*abs(cn)/50>=1)
subplot(311)
plot(ww,an)
subplot(312)
plot(ww,bn)
subplot(313)
plot(t,y)
size(t)
x=zeros(size(t));
z1=ones(size(t));
z2=2*ones(size(t));
z3=3*ones(size(t));
y1=sin(t);
y2=sin(5*t);
y3=sin(7*t);
figure(2)
subplot(111)
plot3(t,z1,y1,z2,y2,z3,y3,t,z,y1+y2+y3)
view(30,30)
grid
clf
clear all
for n=1:140;
w=(n-1)/2;
t=0:0.01:20;
y=5*sin(20*t)+7*cos(30*t)+5*cos(10*t)+4*sin(50*t);
A=trapz(t,y);
k1=cos(w.*t).*y;
k2=sin(w.*t).*y;
an(n)=2*(trapz(t,k1))/20;
bn(n)=2*(trapz(t,k1))/20;
ww(n)=w;
end
disp([ an’ bn’]);
figure(1)
subplot(311)
plot(ww,an)
subplot(312)
plot(ww,bn)
subplot(313)
plot(t,y)
%size(t)
z=zeros(size(t));
z1=ones(size(t));
z2=2.*ones(size(t));
z3=3.*ones(size(t));
y1=sin(t);
y2=sin(5*t);
figure(2)
subplot(111)
plot3(t,z1,y1,t,z2,y2,tz3,y3,t,z,y1+y2+y3)
biew(30,30)
grid
c1=find(2*abs(an)>=2);
c2=find(2*abs(bn)>=2);
AA=an(c1)*sin(ww(c1)’*t);
AA(1,:)
AA(:,2)
Igure(3)
Plot(t,AA(1,:)+AA(:,2))
Axis([0 10 -15 20])
PENGGUNAAN SIMULINK
Simulink dapat digunakan dengan mudah untuk menyelesaikan sistem linear dari matlab
lakukan perintah:
»simulink
<gambar>
Lalu dengan ‘click” dua kali pada source akan muncul gambar berikut :
<gambar>
Lalu ‘click and drag Band Limited White Noise’ lalu masukan dalam file kemudian
‘click’ dua kali pada sink
<gambar>
kemudian ‘click and drag scope dan simout lalu masukan pada file
hal yang sama dilakukan : ‘click’ dua kali pada linear
<gambar>
<gambar>
Kasus 1
Respon suatu sistem pegas, massa peredam yang digetarkan dengan gaya periodik
f(t) = 2*cos(2*pi*t1):
m
2 f=
F
c k
2 2
m
1
c k
1 1
<grafik>
Kasus 2
Respon suatu sistem pegas, massa dan peredam yang digetarkan dengan gaya random
f(t)=random:
m2
f=
F
c k2
2
m1
c k1
1
%Program MATLAB untuk mencari kurva FRF dengan menggunakan Metoda Runge
%Kutta pada sistem dengan 2 derajat kebebasan dimana input berupa
%sinyal periodik
clf
clear
n=3000;
x=zeros(2,1);
v=zeros(2,1);
dt=0.02*pi;
dn=dt*n;
k1=30;
k2=20;
c1=0.02;
c2=0.02;
m1=1;
m2=2;
K=[k1+k2, -k2, -k2, k2];
C=[c1+c2, -c1, -c2, c2];
M=[m1, 0, 0, m2];
t=0.0;
for i = 1:n;
t1=t;
x1=x;
v1=v;
f1=inv(M)*([2*cos(2*pi*t1);0]-C*v1-K*x1);
%
t2=t+dt/2;
x2=x+v1.*dt/2;
v2=v+f1*dt/2;
f2=inv(M)*([2*cos(2*pi*t2);0]-C*v2-K*x2);
%
t3=t+dt/2;
x3=x+v2.*dt/2;
v3=v+f2*dt/2;
f3=inv(M)*([2*cos(2*pi*t3);0]-C*v3-K*x3);
%
t4=t+dt/2;
x4=x+v3.*dt/2;
v4=v+f3*dt/2;
f4=inv(M)*([2*cos(2*pi*t3);0]-C*v3-K*x3);
t=t+dt;
v=v+dt/6.*(f1+2.*f2+2.*f3+f4);
x=x+dt/6.*(v1+2.*v2+2.*v3+v4);
a= inv(M)*([2*cos(2*pi*t);0]-C*v-K*x);
tt(i)=t;
f=[2*cos(2*pi*t);0];
ff1(i)=f(1,1);
vv1(i)=v(1,1);
vv2(i)=v(2,1);
xx1(i)=x(1,1);
xx2(i)=x(2,1);
aa1(i)=a(1,1);
aa2(i)=a(2,1);
end
%program MATLAB untuk mencari kurva FRF dengan menggunakan metoda Runge
%Kutta pada sistem dengan 2 derajat kebebasan dimana input berupa
%sinyal random
clf
clear
n=input(‘Jumlah data random’);
gy=rand(1,n+1);
for i=1:n;
f=([gy(i);0]/2+[gy(i+1);0]/2);
ff1(i)=f(1,1);
ff2(i)=f(2,1);
end
ff=[ff1;ff2];
x=zeros(2,1);
v=zeros(2,1);
dt=0.02*pi;
dn=dt*n;
k1=30;
k2=20;
c1=0.02;
c2=0.02;
m1=1;
m2=2;
K=[k1+k2’ –k2; -k2,k2];
C=[c1+c2, -c2; -c2, c2];
M=[m1, 0; 0, m2];
T=0.0;
For i = 1:n;
t1=t;
x1=x;
v1=v;
f1=inv(M)*([gy(i);0]-C*v1-K*x1);
%
t2=t+dt/2;
x2=x+v1.*dt/2;
v2=v+f1.*dt/2;
f2=inv(M)*([ff1(i);0]-C*v2-K*x2);
%
t3=t+dt/2;
x3=x+v2.*dt/2;
v3=v+f2*dt/2;
f3=inv(M)*([ff1(i);0]-C*v3-K*x3);
%
t4=t+dt;
x4=x+v3.*dt/2;
v4=v+f3*dt/2;
f4=inv(M)*([ff1(i);0]-C*v4-K*x4);
t=t+td;
v=v+dt/6.*(f1+2.*f2+2.*f3+f4);
x=x+dt/6.*(v1+2.*v2+2.*v3+v4);
a=inv(M)*([gy(i);0]-C*v-K*x);
tt(i)=t;
vv1(i)=v(1,1);
vv2(i)=v(2,1);
xx1(i)=v(1,1);
xx2(i)=v(2,1);
aa1(i)=v(1,1);
aa2(i)=v(2,1);
end
grid
subplot(312)
plot(tt, vv2)
axis([0 40 1.5*min(vv2) 2.5*max(vv2)])
xlabel(‘waktu(s)’)
ylabel(‘Kecepatan’)
gtext(‘Kecepatan untuk massa 2’)
grid
subplot(313)
plot(tt, aa2)
axis([0 40 1.5*min(aa2) 2.5*max(aa2)])
xlabel(‘waktu(s)’)
ylabel(‘Percepatan’)
gtext(‘Percepatan untuk massa 2’)
grid
<grafik>
x1=0:90;
x=x1*pi/180;
m=sin(x)
w=pi.*(m.^2);
a=(2*x)-sin(2*x);
b=sin(x);
c=b.^2;
d=c*pi;
f=a./d
figure(1)
plot(w,f)
<grafik>