= euler(f, a, b, N, alpha)
function [t, w] = (b - a) / N;
h = zeros(N + 1, 1);
t = zeros(N + 1, 1);
w 1) = a;
t(1) = alpha;
w(
for i = 1 : N
+ 1) = t(i) + h;
t(i = f(t(i), w(i));
m1 + 1) = w(i) + h * m1;
w(i
endfor endfunction
Latihan 1 Praktikum Persamaan Diferensial Biasa: Metode Euler
Soal
Diberikan suatu masalah nilai awal (Initial Value Problem):
\[ \begin{align*} y' &= 1 + \cfrac{y}{t} + \left(\cfrac{y}{t}\right)^2\\ & y(1) = 0 \nonumber \end{align*} \]
Diberikan pada interval \(1\leq t\leq 3\) dengan stepsize \(h = 0.2\)
Diketahui bahwa solusi eksak dari model diberikan oleh
\[ \begin{align*} y(t) = t \tan{(\ln t)} \end{align*} \]
- Buatlah script file
nama_kelas_npm.m
(contoh: Pandu Adjie_C_1234567890.m) berisi penggunaan metode Euler untuk mengaproksimasi solusi dari model secara numerik ! - Tunjukkan solusi aproksimasi anda dalam bentuk plot dan tentukan 1 dari aproksimasi dibandingkan dengan solusi eksak !
Solusi
Pertama, buat function file euler.m
terlebih dahulu pada direktori anda, misalnya seperti pada folder **F:*.
Function file
euler.m
- nama file harus sama dengan nama fungsi
Langkah berikutnya anda membuat script file dengan nama file bebas, berisi instruksi untuk menjalankan metode euler berdasarkan nilai awal yang diketahui sebagai berikut.
% full-setup
= @(t, y) (1 + y/t + (y/t)^2);
f = 1;
a = 3;
b = 10;
N = 0;
alpha
= euler(f, a, b, N, alpha);
[t_euler, w_euler]
= @(t) (t).*tan(log(t));
sln = sln(t_euler);
y_eksak
= abs(y_eksak - w_euler);
err_euler
= sum(err_euler);
err_euler_total
"Tabel aproksimasi w, solusi eksak y, dan error:");
disp(
[t_euler, w_euler, y_eksak, err_euler]
"Error total (norm L1):");
disp(;
disp(err_euler_total)
;
hold on'b');
fplot(sln, [a, b], 'r');
scatter(t_euler, w_euler, 'Solusi eksak', 'Metode Euler');
legend("Metode Euler"); title(
Tabel aproksimasi w, solusi eksak y, dan error:
ans =
1.0000 0 0 0
1.2000 0.2000 0.2212 0.0212
1.4000 0.4389 0.4897 0.0508
1.6000 0.7212 0.8128 0.0915
1.8000 1.0520 1.1994 0.1474
2.0000 1.4373 1.6613 0.2240
2.2000 1.8843 2.2135 0.3292
2.4000 2.4023 2.8766 0.4743
2.6000 3.0028 3.6785 0.6756
2.8000 3.7006 4.6587 0.9581
3.0000 4.5143 5.8741 1.3598
Error total (norm L1):
4.3320