Anda di halaman 1dari 31

Penyelesaian Persamaan Diferensial:

Masalah Syarat Batas

TK2106 Komputasi Teknik Kimia


2014

Syarat Penyelesaian PD
Untuk n-buah persamaan diferensial,
dibutuhkan n-buah syarat awal/batas.
dy
2y
y (0) 3
Contoh:
dx
Penyelesaian umum : y ( x) c e 2 x

Subsitusi y(0) = 3 ke penyelesaian umum diperoleh:

y ( x) 3 e 2 x

Contoh: y(x)=5y-6y

dengan y(0) = 0 dan y(0) = -1

Diperoleh penyelesaian khusus :


y(x) = e3x e2x

Review: Metoda Euler


dy
Turunan fungsi: y ' ( x)
dx

x xn

yn 1 yn

xn 1 xn

sehingga pdb : y' ( x) f ( x, y)

yn1 yn h f ( x, y)
dimana:

h xn1 xn besar langkah integrasi


Penyelesaian persamaan diferensial
dengan metoda Euler, Runge-Kutta dls.
memerlukan syarat awal.

Bagaimana menyelesaikan persoalan yang tidak


memiliki syarat awal?
Tinjau sebuah bahan bakar nuklir bulat
dengan radius R(F) dan cangkang
aluminium dengan radius R(C). Di dalam
bahan bakar terjadi reaksi yang
menghasilkan energi panas. Panas yang
dihasilkan (Sn) tidak seragam dan paling
kecil terjadi di pusat bahan.

Apabila temperatur dinding


cangkang T0 dapat diukur, dapatkah
ditentukan temperatur pusat bahan
untuk mencegah terjadinya runaway
reaction (reaksi yang tak dapat
dikendalikan) ?
Sumber: Bird et.al. Transport Phenomena 2nd ed., John Wiley & Sons, 2002.

Penyelesaian PD dengan syarat batas


Metoda yang lazim digunakan:
Shooting method
Mencari syarat awal sedemikian sehingga
penyelesaian PD menghasilkan jawaban yang
sama dengan syarat batas
Finite-difference method
Persamaan integrasi setiap langkah disusun dan
diselesaikan menggunakan penyelesaian
persamaan aljabar (tak) linier.

Shooting Method
Tinjau persamaan diferensial berikut:

d2y
2 yx
dx

y * (0) 0 dan y * (1) 0

Bentuk kanonikalnya:

dy1
y2
dx
dy2
y1 x
dx

y1 (0) 0 dan y1* (1) 0


y2 (0) ??

Algoritma shooting method


1. Tebak suatu nilai y2(0) misalnya
2. Integrasi PDB bernilai awal dengan y1(0) = 0
dan y2(0) = ; dari x = 0 s/d x = 1 sehingga
didapat y1(1).
3. Jika () = y1(1) - y1*(1) 0; perbaharui nilai
tebakan ; dan kembali ke langkah no. 2.
4. Jika () = 0; maka hasil integrasi adalah
penyelesaian numerik dari PDB bernilai batas
semula.

MS Excel
Integrasi dengan metoda Euler
Cara manual:
Ubah nilai y2(0) (sel C2)
sedemikian rupa hingga
nilai y1(1) (sel B12)
mendekati nilai y1*(1) = 0.
Cara Otomatis:
Gunakan GoalSeek pada
Excel: Data Tools > What-If
Analysis > GoalSeek

0.06
0.05
0.04
0.03

y1

0.02

0.01
0
0

0.2

0.4

0.6

0.8

1.2

Perhitungan dengan Excel cukup mudah dan sederhana; namun


perhitungan akan menjadi kompleks apabila menangani sistem
persamaan diferensial yang rumit.

Matlab
Program
Utama

0
*

Subrutin
Penyelesaian
Persamaan Aljabar
Non-linier

Fungsi Objektif
Menghitung Y1(1)
Menghitung Fungsi
Objektif:
() = Y1(1) Y1*(1)

Penyetengahan interval;
Newton (-Raphson)

ODE (non-stiff/stiff)
Y2(0) =

Y1(1)

Penyelesaian
Persamaan
Diferensial

FURUKA

Strategi penyusunan program


1. Bentuk fungsi ruas kanan persamaan diferensial.
function shooting1;
y0 = [0 0.1];
% test furuka
dydx = furuka(0,y0)

function dydx = furuka(x,y)


dydx = zeros(2,1);
dydx(1) = y(2);
dydx(2) = y(1)-x;

2. Bentuk fungsi objektif yang mengevaluasi fungsi


persamaan diferensial
function shooting1;
%test fobj;
phi = fobj(0.1)

function phi = fobj(y20)


% fungsi objektif: menerima masukan berupa tebakan y2(0)
% melaporkan nilai y1(1)

y0 = [0 y20];
[X,Y] = ode23(@furuka,[0 1],y0);
% menghitung selisih antara y1(1) hasil perhitungan
% dengan syarat batas

Y1end = Y(length(Y),1);
phi = Y1end-0;
function dydx = furuka(x,y)
.

2. Bentuk fungsi penghitung nilai y2(0) yang meng-nol-kan


fungsi objektif fobj.
function shooting1;

Y20_guess = 0.1; %tebakan awal;


Y20_star = fzero(@fobj,Y20_guess)
function phi = fobj(y20)
% fungsi objektif: menerima masukan berupa tebakan y2(0)
%
melaporkan nilai y1(1)
y0 = [0 y20];
[X,Y] = ode23(@furuka,[0 1],y0);
plot(X,Y(:,1));
pause(0.1);
% menghitung selisih antara y1(1) hasil perhitungan dengan
syarat batas
Y1end = Y(length(Y),1);
phi =(Y1end-0)
function dydx = furuka(x,y)
.

0.06

0.05

0.04

0.03

0.02

0.01

-0.01

0.1

0.2

0.3

Nilai y2*(0) = 0.1491

0.4

0.5

0.6

0.7

0.8

0.9

PERTANYAAN??

Kelemahan shooting method


Sederhana dan mudah secara konsep.
Tak efisien untuk sistem berorde tinggi dengan
kondisi batas yang banyak.
Mungkin tidak konvergen untuk masalahmasalah tak-linier
Dapat menuju kepada tebakan kondisi awal
yang buruk.

Finite-difference Method
Stabil
Penyelesaian langsung (tidak iteratif)
Membutuhkan penyelesaian persamaan
aljabar linier simultan
Lebih kompleks

Hampiran Selisih Terhingga


Finite-difference approximation

ui

u= f(x)
ui = f(xi)

xi-2

xi-1

xi

xi+1

xi+2

Berdasarkan deret Taylor:


Hampiran selisih maju
df
f ( x0 h) f ( x0 ) h
dx
df
dx

x0

O(h 2 )
x0

f ( x0 h) f ( x0 )
ui 1 ui
2

O(h )
h
h

Hampiran selisih mundur:


df
f ( x0 h) f ( x0 ) (h)
dx
df
dx

x0

O(h 2 )
x0

f ( x0 ) f ( x0 h)
ui ui 1
2

O(h )
h
h

Hampiran selisih terpusat: (merupakan gabungan


dari selisih maju dan selisih mundur
df
f ( x0 h) f ( x0 h) (2h)
dx
df
dx

x0

O(h 3 )
x0

f ( x0 h) f ( x0 h)
ui 1 ui 1
3

O(h )
2h
2h

Catatan: Orde galat lebih tinggi --> lebih teliti !!

Penyelisihan mana yang dipilih (maju, mundur ataupun


terpusat) bergantung kepada fenomenologi/fisik dari
masalah yang dihadapi.

Hampiran turunan kedua (selisih maju)


ui 2

du
ui 2 h
dx

du
ui 1 ui h
dx

xi

xi

4h 2 d 2 u

2 dx 2

h 2 d 2u

2 dx 2

2
d
u
2
ui 2 2ui 1 ui h
dx 2

d 2u
dx 2

xi

O1 (h 3 )
xi

O2 (h 3 )

(2)

xi

O( h 3 )
xi

ui 2 2ui 1 ui

h2

Hampiran turunan kedua (selisih mundur)


d 2u
dx 2

xi

ui 2ui 1 ui 2

h2

Hampiran turunan kedua (selisih terpusat)


d 2u
dx 2

xi

ui 1 2ui ui 1

h2

Contoh:
Tinjau persamaan diferensial berikut:

d2y
2 yx
dx

y * (0) 0 dan y * (1) 0

1. Tentukan x dan bagi rentang integrasi dengan x


Misalkan x = 0.1
2. Ubah turunan menjadi bentuk diskretisasi:

d2y
dx 2

xi

yi 1 2 yi yi 1

yi xi
2
x

yi 1 (2 x 2 ) yi yi 1 xi x 2

3. Susun semua persamaan:

y2 (2 0.12 ) y1 (0.1) (0.1) 2 y0


y3 (2 0.12 ) y2 y1 (0.2) (0.1) 2
y4 (2 0.12 ) y3 y2 (0.3) (0.1) 2
.....
y9 (2 0.12 ) y8 y7 (0.8) (0.1) 2
(2 0.12 ) y9 y8 (0.9) (0.1) 2 y10

3. Dalam bentuk matriks:


1
0
0
0
0
0
0
0 y1 (0.1) (0.1) 2 y0
2.01

1
y
2

2
.
01
1
0
0
0
0
0
0

(
0
.
2
)

(
0
.
1
)
2

0
1
2.01
1
0
0
0
0
0 y3 (0.3) (0.1)


2
y
0
0
1

2
.
01
1
0
0
0
0

(
0
.
4
)

(
0
.
1
)

4
2

0
0
0
1
2.01
1
0
0
0 y5 (0.5) (0.1)


2
y
0
0
0
0
1

2
.
01
1
0
0

(
0
.
6
)

(
0
.
1
)

6
0
0
0
0
0
1
2.01
1
0 y7 (0.7) (0.1) 2


2
y
0
0
0
0
0
0
1

2
.
01
1

8 (0.8) (0.1)

0
0
0
0
0
0
0
1
2.01 y9 (0.9) (0.1) 2 y10

4. Selesaikan sistem persamaan aljabar linier: A.x = b

Program Matlab:

x
x
D
A

=
=
=
=

0:0.1:1;
x';
2+0.1.^2;
[-D 1 0 0 0 0 0 0 0;
1 -D 1 0 0 0 0 0 0;
0 1 -D 1 0 0 0 0 0;
0 0 1 -D 1 0 0 0 0;
0 0 0 1 -D 1 0 0 0;
0 0 0 0 1 -D 1 0 0;
0 0 0 0 0 1 -D 1 0;
0 0 0 0 0 0 1 -D 1;
0 0 0 0 0 0 0 1 -D];

B = [-x(2)*0.1.^2-0;
-x(3)*0.1.^2;
-x(4)*0.1.^2;
-x(5)*0.1.^2;
-x(6)*0.1.^2;
-x(7)*0.1.^2;
-x(8)*0.1.^2;
-x(9)*0.1.^2;
-x(10)*0.1.^2-0];
y = A\B;
y = [0; y; 0]
plot(x,y,'-o')

0.06

0.05

0.04

0.03

0.02

0.01

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

function finite2;
h
x
x
n

=
=
=
=

0.1;
0:h:1;
x';
length(x)-2;

Dengan sedikit pemrograman, pemilihan h


dapat lebih fleksibel!!

b = zeros(n,1);
A = zeros(n,n);

A(1,1)=-2.01; A(1,2)=1;
b(1) = -(x(1)+h)*h.^2-0;
for i=2:n-1
A(i,i-1)=1; A(i,i)=-2.01; A(i,i+1)=1;
b(i) = -(x(1)+i*h)*h.^2;
end
A(n,n-1)=1; A(n,n)=-2.01;
b(n) = -(x(1)+n*h)*h.^2-0;
y = A\b;
y = [0; y; 0]

plot(x,y)

0.06

0.06

0.05

0.05

0.04

0.04

0.03

0.03

0.02

0.02

0.01

0.01

0.5

0.5

PERTANYAAN??

Anda mungkin juga menyukai