Professional Documents
Culture Documents
Bab 4 Persamaan Differensial Biasa 2
Bab 4 Persamaan Differensial Biasa 2
PERSAMAAN
DIFFERENSIAL BIASA
(PDB) DAN OPTIMASI
DEFINISI PDB
KLASIFIKASI PDB
Berdasarkan Orde
dy
Orde 1 y kx
dx
d2y dy
Orde 2 2
y kx
dx dx
3 2 2
Orde 3 d y d y dy
3
a 2 b kx
dx dx dx
CONTOH 4.1
TRANSFORMASI KANONIKAL PDB LINIER
HOMOGEN
d 4z d 3z d 2z dz
5 2 6 3z 0
dt 4 dt 3 dt 2 dt
z y1
dz dy1 dy1
y2 y2
dt dt dt
d 2 z dy2 dy2
y3 y3
dt 2
dt dt
d 3 z dy3 dy3
y4 y4
dt 3
dt dt
dy4
d 4 z dy4 3 y1 6 y2 2 y3 5 y4
4
dt
dt dt
dy1
y2
dt
dy1
0 1 0 0 y1
dy2
dt
0 y
y3
dy2
0 1 0 2
dt
dt
dy3
0 0 0 1 y3
dy3
dt
y4
dy4
dt 3 6 2 5 y4
dt atau
dy4 y' Ay
3 y1 6 y2 2 y3 5 y4
dt
CONTOH 4.2
TRANSFORMASI KANONIKAL PDB LINIER NON
HOMOGEN
d 4z d 3z d 2z dz t
5 2 6 3 z e
dt 4 dt 3 dt 2 dt
dy1
y2
dt
dy2
y5 e t y3
dt
dy5 dy3
e t y5 y4
dt dt
dy4
3 y1 6 y2 2 y3 5 y4 y5
dt
dy5
y5
dt
dy1
y2
dt
dy2
y3 0 1 0 0 0
dt 0 0 1 0 0
dy3
y4 A 0 0 0 1 0
dt
3 2 5 1
dy4 6
3 y1 6 y2 2 y3 5 y4 y5
dt 0 0 0 0 1
dy5
y5
dt
CONTOH 4.3
TRANSFORMASI KANONIKAL PDB NON LINIER
3
d 3z 2
2 d z dz
3
z 2
2z 0
dx dx dx
z y1
dz dy1 dy1
y2 y2
dx dx dx
2
d z dy2 dy2
y3 y3
dx 2
dx dx
3 dy3
d z dy3 2 y1 y23 y12 y3
3
dx
dx dx
Metode nilai-vektor eigen
e At Ve Dt V 1
Sehingga solusi PDB linier menjadi. y Ve Dt V 1 y0
dy y 0 y0
ay nilai awal:
dt
0
integrasi
y
ln at
y0
y e at y0
2 2 3 3
A t A t
e At I At ...
2! 3!
Fungsi matriks
eksponensial
Kasus 7
Berikut ini adalah PDB linier orde 2.
d 2x dx
2
3 10 x 0
dt dt x(0) 3
Dengan nilai awal pada t = 0, sbb: dx
0 15
dt
Selesaikan PDB tercetak menggunakan
metode nilai-vektor eigen dalam interval 0 ≤ t
≤ 1.0 (Langkah integrasi 0.1)
d 2x dx
2
3 10 x 0 dy1
dt dt dt 0 1 y1
x y1 y
2dy 1 3 2
dx dy1 dt
y2
dt dt
d 2 x dy2 y’ A y
2
3 y2 y1
dt dt
>> A=[0 1
Nilai awal
1 3]
A=
x(0) y1 (0) 3
0 1
dx
1 3
0 y2 (0) 15
dt
>> [V,D]=eig(A)
V=
-0.9571 0.2898
0.2898 0.9571
D=
0.9571 0.2898 0.3028 0
-0.3028 0 V dan D
0.2898 0.9571 0 3.3028
0 3.3028
clear x =zeros(length(t),a);
clc for i = 1 : length(t)
A = [0 1 y = (V*diag(exp(diag(D)*t(i)))*inv(V))*yo;
1 3]; x(i,:) = y;
% Nilai awal end
yo = [3;15]; x
a=length(yo); % kurva t-x
plot(t,x(:,1))
% Vektor dan Nilai eigen xlabel('t')
[V,D]=eig(A); ylabel('x')
% Rentang integrasi grid on
t=[0:0.1:1]’
Eksekusi program kasus7.m (lanjutan)
Hasil di Command Window :
>>kasus7 x=
t= 3.0000 15.0000
4.7688 20.6902
0 7.2122 28.6127
0.1000 10.5945 39.6409
0.2000 15.2839 54.9901
0.3000 21.7922 76.3512
0.4000 30.8319 106.0768
0.5000 43.3941 147.4403
0.6000 60.8578 204.9959
0.7000 85.1416 285.0806
0.8000 118.9150 396.5110
0.9000
1.0000
Eksekusi program kasus7.m (lanjutan)
Hasil di Command Window :
120
100
80
60
x
40
20
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t
SUBRUTIN ODE23 MATLAB
Subrutin dalam MATLAB untuk solusi PDB bernilai awal
Pada bagian ini akan dijelaskan subrutin ode23
dalam MATLAB untuk menyelesaikan PDB bernilai
awal dengan karakter linier, taklinier, tunggal
maupun jamak (sistem).
dy1 y1
k1 y1 1
dt k2
dy2
k3 y1 k4 y2
dt
Dengan k1 = 0.03120; k2 = 47.70; k3 = 3.374 ;k4 =
0.01268 serta nilai pada t = 0, y1=5, y2=0.
Evaluasi harga y1 dan y2 dalam interval waktu 0 s.d 10
jam setiap jamnya!.
fermen.m Pemrograman MATLAB
dydt = zeros(2,1);
dydt(1) = k1*y(1)*(1-y(1)/k2);
dydt(2) = k3*y(1)-k4*y(2);
kasus8.m Pemrograman MATLAB
clear
clc
tspan = [0:1:10];
yo = [5 0];
[t,y]=ode23('fermen',tspan,yo)
Eksekusi program kasus8.m
Hasil di Command Window :
>>kasus8
t= y=
0 5.0000 0
1 5.1414 17.0000
2 5.2863 34.2657
3 5.4347 51.8056
4 5.5868 69.6282
5 5.7425 87.7422
6 5.9020 106.1564
7 6.0652 124.8796
8 6.2323 143.9206
9 6.4033 163.2886
10 6.5783 182.9924
1. Selesaikan persamaan dibawah ini dengan nilai awal interval t= 0-2
dimana y(0)= 1.
Tunjukkan hasil dalam visualisasi grafik.
[x,fval,exitflag] = fminsearch(fun,x0)
keterangan:
x0 = Tebakan awal
f=x^2-2*x-3;
m-file 1
function f=cobalagi(x)
f=x^2-2*x-3;
m-file 2
[x,fval]=fminsearch('cobalagi',0)
x=
1.0000
fval =
-4
OPTIMASI VARIABEL JAMAK
Carilah titik minimum dari persamaan multivariabel berikut ini.
y ( x1 3) 2 0.5( x2 4) 2 3
Jawaban
%multivaribel.m
function y = multivariabel(x);
y = (x(1)-3)^2 + 0.5*(x(2)-4)^2 + 3;
[x,fval,exitflag] = fminsearch('multivariabel',[1,16])
x =
3.0000 4.0000
fval =
3.0000
exitflag =