Implementasi pseudo-code ke dalam Julia
Contents
2. Implementasi pseudo-code ke dalam Julia#
2.1. Contoh 1#
Contoh ini diambil dari Burden, Numerical Analysis 9th Edition
. Suatu Taylor polynomial ke-\(N\) untuk \(f(x)=\ln(x)\) dengan \(x_0=1\) adalah
\[
P_N(x) = \sum_{i=1}^{N} \frac{(-1)^i+1}{i} (x-1)^i,
\]
dan nilai dari \(\ln(1.5)\) dengan delapan digit desimal adalah \(0.40546511\). Konstruksi suatu algoritma untuk melihat berapa iterasi yang dibutuhkan agar mememnuhi kriteria berikut
\[
\lvert \ln(1.5) - P_N(1.5) \rvert < 10^{-5}.
\]
Dari kalkulus kita tahu bahwa jika \(\sum_{n=1}^{\infty} a_n\) adalah alternating series dengan limit \(A\) yang memiliki besaran menurun, maka \(A\) dan deret parsial ke-\(N\) \(A_N = \sum_{m=1}^{N} a_N\) kurang dari besaran suku ke \((N+1)\)nya sehingga
\[
\lvert A - A_N \rvert \leq \lvert a_{N+1} \rvert
\]
INPUT: nilai x, toleransi TOL, iterasi maksimum M.
OUTPUT: polynomial derajat N atau pesan gagal.
Step 1 Set N = 1;
y = x - 1;
SUM = 0;
POWER = y;
TERM = y;
SIGN = -1;
Step 2 While N ≤ M do Step 3-5.
Step 3 Set SIGN = -SIGN;
SUM = SUM + SIGN . TERM;
POWER = POWER . y;
TERM = POWER/(N+1).
Step 4 if |TERM| < TOL then
OUTPUT(N);
STOP.
Step 5 Set N = N + 1.
Step 6 OUTPUT('Method Failed');
STOP.
# Input
x = 1.5
TOL = 1e-5
M = 1000
# set
N = 1
y = x - 1
SUM = 0
POWER = y
TERM = y
SIGN = -1
while N <= M
SIGN = -SIGN
SUM = SUM + SIGN * TERM
POWER = POWER * y
TERM = POWER / (N + 1)
if abs(TERM) < TOL
println(N)
break
end
N = N + 1
end
x = 1.5
TOL = 1e-5
M = 1000
# set
N = 1
y = x - 1
SUM = 0
POWER = y
TERM = y
SIGN = -1
while N <= M
SIGN = -SIGN
SUM = SUM + SIGN * TERM
POWER = POWER * y
TERM = POWER / (N + 1)
if abs(TERM) < TOL
println(N)
println(SUM)
break
end
N = N + 1
end
12
0.40545869196992246
0.40546511
0.40546511