Anda di halaman 1dari 5

Soal no.

19 PDB orde-2
19. Gunakan perintah ode23 untuk mencari solusi hampiran dari masalah nilai awal yang diatur
oleh persamaan diferensial homogen tidak linier
−3 +2 = 0≤ ≤2
Dengan syarat awal y(0) = 1 dan y’(0) = -1. Kemudian carilah solusi eksak masalah nilai awal
tersebut dengan perintah dsolve. Selanjutnya buatlah plot dua solusi tersebut dalam satu jendela
gambar untuk melihat perbandingannya.
Solusi:
a. Mengganti y dengan y1 sehingga persamaan diferensial menjadi:
−3 +2 = 0≤ ≤2

Dapat ditulis

−3 +2 = 0≤ ≤2

b. Mengganti persamaan diferensial orde 2 menjadi dua persamaan diferensial orde 1

= +3 −2

c. Membuat fungsi (function) yang berisi dua ruas kanan persamaan differensial orde 1
dari b.

= dalam fungsi dengan kode: y(2)

= +3 −2 dalam fungsi dengan kode: exp(3*x) + 3*y(2) – 2*y(1)

Fungsi yang disimpan:


function ynum = soal_19(x,y)
ynum = [y(2); exp(3*x) + 3*y(2) - 2*y(1)];
d. Mencari solusi numerik dengan perintah ode23

>> [x,y] = ode23('soal_19', [0 2], [1 -1]);


>> x_eksak = x; % variabel x_eksak akan dimanfaatkan untuk plot sol. analitik
>> x_numerik = x; % variabel x_numerik akan dimanfaatkan plot sol. numerik
>> y_numerik = y(:,1); % variabel y_numerik akan dimanfaatkan plot sol. Numerik

Hasil menjalankan perintah di atas adalah variabel terikat berupa interval x (hanya satu
kolom angka) dan y berisi dua kolom angka, kolom pertama (dalam kode y(:,1)) adalah
solusi hampiran y dan kolom ke dua adalah turunan pertama y (dalam kode y(:,2)).
Gunakan perintah size(y) untuk mengetahui ukuran data variable y

e. Untuk melihat perbedaan antara fungsi y dan turunan y, dapat dibuat plot dengan
perintah
>> plot(x,y(:,1),'-k',x,y(:,2),'--k')
>> xlabel('x','FontSize',18)
>> ylabel('y','FontSize',18)
>> title('Plot y dan turunan y','FontSize',18, 'Fontw','Bold')
>> legend('y','turunan y')
y
f. Solusi analitik diperoleh melalui perintah dsolve:
>> syms x y
>> yana = dsolve('D2y - 3*Dy + 2*y = exp(3*x)','y(0) = -1','Dy(0) = -1','x');
>> yana
yana =
exp(3*x)/2 - exp(2*x) - exp(x)/2

Perlu digaris bawahi, yaitu dalam solusi numerik berupa nilai-nilai interval x, fungsi y
dan turunan y, sedangkan solusi analitik menghasilkan fungsi y dalam bentuk variabel
x. Variabel x yang digunakan dalam perintah di iangkah d. sudah tidak, karena diganti
variabel symbolic (syms) x.

g. Untuk mendapatkan perbandingan antara solusi numerik dan analitik maka perlu dibuat
plot kedua solusi tersebut. Untuk solusi numerik sudah selesai dibuat plotnya yaitu
y(:,1), sedangkan solusi analitik masih berupa variabel y dan x (hasil operasi
symbolic, syms).

Supaya dapat membuat plot, maka perlu dibuat fungsi (function) berasal dari hasil
solusi analitik yana pada langkah .f sebagai berikut:

function y = eksak19(x)
y = exp(3*x)/2 - exp(2*x) - exp(x)/2;

h. Mencari nilai solusi eksak pada interval 0 ≤ ≤ 2 berupa x_eksak, dalam pembahasan
ini, interval sudah diperoleh dari langkah d.

Supaya tidak terjadi variabel kembar, maka perlu diadakan variabel baru y_eksak,
untuk meperoleh nilai-nilai solusi analitik, sebagai berikut:
>> y_eksak = eksak19(x_eksak);

i. Hasil plot solusi numerik dan analitik


>> figure % membuka jendela gambar baru
>> plot(x_numerik,y_numerik,'ok',x_eksak,y_eksak,'-k')
>> title('Plot Solusi Numerik dan Analitik','FontSize',16)
>> legend('Solusi Numerik','Solusi Analitik')
Dalam bentuk script M-file jawaban soal no 19 ditulis sebaga berikut.

% Jawaban_Soal_19_PDB_2.m
% adalah jawaban soal nomor 19 PDB orde-2
% 6/6/2023
close all
clear all
% solusi numerik
[x,y] = ode23('soal_19', [0 2], [1 -1]);
x_eksak = x; % variabel x_eksak akan dimanfaatkan untuk
plot sol. analitik
x_numerik = x; % variabel x_numerik akan dimanfaatkan plot
sol. numerik
y_numerik = y(:,1); % variabel y_numerik akan dimanfaatkan
plot sol. numerik
plot(x,y(:,1),'-k',x,y(:,2),'--k')
xlabel('x','FontSize',18)
ylabel('y','FontSize',18)
title('Plot y dan turunan y','FontSize',18, 'Fontw','Bold')
legend('y','turunan y')
% Solusi eksak
syms x y
yana = dsolve('D2y - 3*Dy + 2*y = exp(3*x)','y(0) = -
1','Dy(0) = -1','x');
yana % menampilkan hasil solusi analitik

% membuat plot solusi numerik dan analitik


y_eksak = eksak19(x_eksak);
figure % membuka jendela gambar baru
plot(x_numerik,y_numerik,'ok',x_eksak,y_eksak,'-k')
title('Plot Solusi Numerik dan Analitik','FontSize',16)
legend('Solusi Numerik','Solusi Analitik')

Anda mungkin juga menyukai