Vous êtes sur la page 1sur 6

1.

Program untuk no 2, 3 dan 4


%Program Gabungan Euler-RungeKutta (orde2&3)
%created by LuthfiMufida
symsyt;
dy=input('MasukkanPersamaandiferensialdy/dt = ');
batas=input('Masukkanbatas interval [a,b]= ');
awal=input('Masukkannilaiawal y(0) = ');
h=input('Masukkanukuranlangkah h = ');
solexact=input('Masukkanpenyelesaianeksaknya = ');
disp('')
disp('========================================================================
=======================================');
disp(' i

ti

Euler

RK-2

RK-3

exact

errEuler

errRK-2

errRK-3 ');

disp('========================================================================
=======================================');
%Memulaiperhitungan
y1=awal;
for i=1:(batas(2)-batas(1))/h+1
ti=batas(1)+(i-1)*h;
%Euler
ifti==batas(1)
y2=y1;
else
y2=y1+h*subs(subs(dy,'t',ti-h),'y',y1);
end
exact(i)=subs(solexact,'t',ti);
errEuler=abs(exact(i)-y2);
y1=y2;
%RK-2
ifti==batas(1)
yn(i)=y1;
else
k11=h*subs(subs(dy,'t',ti-h),'y',yn(i-1));
k21=h*subs(subs(dy,'t',ti),'y',yn(i-1)+k11);
yn(i)=yn(i-1)+(1/2)*(k11+k21);
end

exact(i)=subs(solexact,'t',ti);
errRK2=abs(exact(i)-yn(i));
%RK-3
ifti==batas(1)
yn3(i)=y1;
else
k12=h*subs(subs(dy,'t',ti-h),'y',yn3(i-1));
k22=h*subs(subs(dy,'t',ti-h/2),'y',yn3(i-1)+(1/2)*k12);
k32=h*subs(subs(dy,'t',ti),'y',yn3(i-1)-k12+2*k22);
yn3(i)=yn3(i-1)+(1/6)*(k12+4*k22+k32);
end
exact(i)=subs(solexact,'t',ti);
errRK3=abs(exact(i)-yn3(i));
fprintf(' %2.0f %10.3f %12.6f %12.6f %12.6f %12.6f %13.6f %13.6f %13.6f\n',i1,ti,y2,yn(i),yn3(i),exact(i),errEuler,errRK2,errRK3);
end
disp('========================================================================
=======================================');

2.

dsolve('Dy = -0.5*y+4*exp(0.8*t)','y(0)=2')
ans =
40/13*exp(4/5*t)-14/13*exp(-1/2*t)
Hasil :
a)

h = 0.2
MasukkanPersamaandiferensialdy/dt = '-0.5*y+4*exp(0.8*t)'
Masukkanbatas interval [a,b]= [0,1]
Masukkannilaiawaly(0) = 2
Masukkanukuranlangkah h = 0.2
Masukkanpenyelesaianeksaknya = '40/13*exp(4/5*t)-14/13*exp(-1/2*t)'
=========================================================================
itiEuler

RK-2

RK-3

exact

errEulererrRK-2

errRK-3

=========================================================================
0

0.000

2.000000

2.000000

2.000000

2.000000

0.000000

0.000000

0.000000

0.200

2.600000

2.639404

2.636334

2.636362

0.036362

0.003042

0.000029

0.400

3.278809

3.361976

3.355545

3.355606

0.076797

0.006370

0.000061

0.600

4.052630

4.184784

4.174635

4.174732

0.122102

0.010052

0.000097

0.800

4.940227

5.127609

5.113304

5.113443

0.173216

0.014166

0.000139

1.000

5.963389

6.213435

6.194446

6.194631

0.231243

0.018804

0.000185

=========================================================================

b) h = 0.4
MasukkanPersamaandiferensialdy/dt = '-0.5*y+4*exp(0.8*t)'
Masukkanbatas interval [a,b]= [0,1]
Masukkannilaiawaly(0) = 2
Masukkanukuranlangkah h = 0.4
Masukkanpenyelesaianeksaknya = '40/13*exp(4/5*t)-14/13*exp(-1/2*t)'
=========================================================================
iti

Euler

RK-2

RK-3

exact

errEuler

errRK-2

errRK-3

=========================================================================
0

0.000

2.000000

2.000000

2.000000

2.000000

0.000000

0.000000

0.000000

0.400

3.200000

3.381702

3.355138

3.355606

0.155606

0.026096

0.000468

0.800

4.763404

5.171542

5.112376

5.113443

0.350038

0.058100

0.001067

Analisis :
1) Metode Euler
Semakin besar nilai h maka errornya semakin besar dan nilai euler dan iterasinya
semakin kecil.
2) Metode RK-2
Semakin besar nilai h maka errornya semakin besar tetap inilai RK-2 semakin
kecil dan iterasinya semakin kecil.
3) Metode RK-3
Semakin besar nilai h maka errornya semakin besar tetapi nilai RK-3 semakin
kecil dan iterasinya semakin kecil.
Kesimpulan :
Dari ketiga metode, metode RK-3 yang paling efektif di gunakan untuk
menyelesaikan Karen nila iErrornya semakin mendekati 0(nol).

3. Dsolve('Dy=2*y-2*t^2-2*t','y(0)=1')
ans =
t^2+2*t+1
Hasil :

Menggunakanukuranlangkah
a) h=0.2
MasukkanPersamaandiferensialdy/dt = '2*y-2*t^2-2*t'
Masukkanbatas interval [a,b]= [0,1]
Masukkannilaiawaly(0) = 1
Masukkanukuranlangkah h = 0.2
Masukkanpenyelesaianeksaknya= 't^2+2*t+1'
============================================================================
itiEuler

RK-2

RK-3

exact

errEuler errRK-2

errRK-3

============================================================================
0

0.000

1.000000

1.000000

1.000000

1.000000

0.000000

0.000000

0.000000

0.200

1.400000

1.432000

1.439467

1.440000

0.040000

0.008000

0.000533

0.400

1.864000

1.940160

1.958672

1.960000

0.096000

0.019840

0.001328

0.600

2.385600

2.522637

2.557487

2.560000

0.174400

0.037363

0.002513

0.800

2.955840

3.176702

3.235720

3.240000

0.284160

0.063298

0.004280

1.000

3.562176

3.898320

3.993086

4.000000

0.437824

0.101680

0.006914

============================================================================
b) h=0.4
MasukkanPersamaandiferensialdy/dt = '2*y-2*t^2-2*t'
Masukkanbatas interval [a,b]= [0,1]
Masukkannilaiawaly(0) = 1
Masukkanukuranlangkah h = 0.4
Masukkanpenyelesaianeksaknya= 't^2+2*t+1'
============================================================================

iti Euler

RK-2

RK-3

exact

errEuler errRK-2

errRK-3

============================================================================
0

0.000

1.000000

1.000000

1.000000

1.000000

0.000000

0.000000

0.000000

0.400

1.800000

1.896000

1.951467

1.960000

0.160000

0.064000

0.008533

0.800

2.792000

3.040320

3.212648

3.240000

0.448000

0.199680

0.027352

Analisis:
1) Metode Euler
Semakin besar nilai h maka errornya semakin besar dan nilai euler dani terasiny
asemakin kecil.
2) Metode RK-2
Semakin besar nilai h maka errornya semakin besar tetapi nilai RK-2 dan
iterasinya semakin kecil.
3) Metode RK-3
Semakin besarnilai h maka errornya semakin besar tetapi nilai RK-3 dan
iterasinya semakin kecil.
Kesimpulan:
Dari ketiga metode, metode RK-3 yang paling efektif di gunakan untuk
menyelesaikan karena nilai Errornya semakin mendekati 0(nol).

4.

Dsolve('Dy= (y-t*y)/t^2','y(-1)=1')
ans =
-1/exp(1)/exp(1/t)/t

Hasil :
MasukkanPersamaandiferensialdy/dt = '(y-t*y)/t^2'
Masukkanbatas interval [a,b]= [-1,1]
Masukkannilaiawaly(-1) = 1
Masukkanukuranlangkah h = 0.4
Masukkanpenyelesaianeksaknya = '-1/exp(1)/exp(1/t)/t'
============================================================================
itiEuler

RK-2

RK-3

exact

errEulererrRK-2

errRK-3

============================================================================
0

-1.000

1.000000

1.000000

1.000000

1.000000

0.000000

0.000000

0.000000

-0.600

1.800000

3.000000

3.175926

3.246223

1.446223

0.246223

0.070297

-0.200

0.200

5.000000

55.666667

97.159808 272.990750

267.990750

217.324083

65.000000 3284.333333 32697944068373065000000000000000000.000000

175.830942
-0.012394

65.012394 3284.345727 32697944068373065000000000000000000.000000


4

0.600 585.000000 22990.333333 259161482615993940000000000000000000.000000

-0.115806

585.115806 22990.449139 259161482615993940000000000000000000.000000


5

1.000 845.000000 28099.296296 304754706409548420000000000000000000.000000

-0.135335

845.135335 28099.431632 304754706409548420000000000000000000.000000


============================================================================

Vous aimerez peut-être aussi