_Tugas 3 - Analisis Sumber Daya Air oleh Taruma S.M. (25017046)_

# Tugas 3 - Analisis Sumber Daya Air

> Suatu saluran persegiempat mempunyai lebar $2.5\ meter$ dan mempunyai kemiringan dasar saluran sama dengan $1:400$. 
Jika konstanta Chezy adalah 30 dalam satuan SI, tentukan kedalaman normal jika debit aliran adalah $0.80\ m^3/detik$. Tentukan solusi dengan menggunakan **Metoda Interval Halving, Newton Rhapson, dan Secant**. 

> Petunjuk: $Q = AC\sqrt{RS},\ A=by_n, \text{dan}\ \large{y_{n1} = y_{n0}-\frac{f(y_{n0})}{f'(y_{n0})}}$, untuk harga awal $y_{n0}$ ditentukan dengan asumsi kecepatan aliran $v = 1 m/detik$.


```python
# Ignore this block code.
# Define Function for printing result
def cetak(name, val, unit = ""):
    print('| {:>15s} = {:>10.5f} {:<{n}s}|'.format(name, val, unit, n = pad-15-10-7))
    
def new_line(pad = 50):
    print('='*pad)
    
pad = 50
```

***
## Penurunan dan Penentuan Nilai Awal
### Fungsi dan Turunannya

Fungsi $f(y)$ diperoleh dari:

$$\begin{aligned} 
Q &= A C \sqrt{R S} &\leftrightarrow 0 = A C \sqrt{R S} - Q \\
f(y) &= A C \sqrt{R S} - Q = 0 & 
\end{aligned}$$

Turunan dari fungsi $f(y)$:

$$\begin{aligned}f(y) &= C b y \sqrt{\frac{b s y}{b + 2 y}} - Q \\
f'(y) &= C b \sqrt{\frac{b s y}{b + 2 y}} + \frac{C}{s} \sqrt{\frac{b s y}{b + 2 y}} \left(b + 2 y\right) \left(- \frac{b s y}{\left(b + 2 y\right)^{2}} + \frac{b s}{2 \left(b + 2 y\right)}\right) \end{aligned}$$
Disederhanakan, $f'(y)$ menjadi:
$$\begin{aligned} f'(y) &= \frac{C b \sqrt{\frac{b s y}{b + 2 y}}}{2 \left(b + 2 y\right)} \left(3 b + 4 y\right) \end{aligned}$$

> Catatan : Hasil turunan diperoleh dari kode dibawah menggunakan _sympy_.


```python
# Mencari turunan fungsi menggunakan library sympy
from sympy import symbols, simplify, sqrt, latex

sb, sy, sC, sS, sQ = symbols('b, y, C, s, Q')
sA = sb * sy
sP = sb + 2* sy
sR = sA/sP
sfy = sA*sC*sqrt(sR*sS) - sQ

# Mencari Turunan f(y)
print('Persamaan Q: \n\tf(y)=', sfy, '\n==\n In Latex:', latex(sfy), '\n')
sfy_d = sfy.diff(sy)
print('Turunan Persamaan Q terhadap y : \n\tf\'(y)=', sfy_d, '\n==\n In Latex:', latex(sfy_d), '\n')
print('Bentuk sederhana : \n\tf\'(y)=', simplify(sfy_d), '\n==\n In Latex:', latex(simplify(sfy_d)), '\n')

# Mendefinisikan fungsi dalam python
def f(y):
    return float(sfy.subs({sS: S, sC: C, sb: b, sy: y, sQ: Q}))

def fd(y):
    return float(sfy_d.subs({sS: S, sC: C, sb: b, sy: y}))

```

    Persamaan Q: 
    	f(y)= C*b*y*sqrt(b*s*y/(b + 2*y)) - Q 
    ==
     In Latex: C b y \sqrt{\frac{b s y}{b + 2 y}} - Q 
    
    Turunan Persamaan Q terhadap y : 
    	f'(y)= C*b*sqrt(b*s*y/(b + 2*y)) + C*sqrt(b*s*y/(b + 2*y))*(b + 2*y)*(-b*s*y/(b + 2*y)**2 + b*s/(2*(b + 2*y)))/s 
    ==
     In Latex: C b \sqrt{\frac{b s y}{b + 2 y}} + \frac{C}{s} \sqrt{\frac{b s y}{b + 2 y}} \left(b + 2 y\right) \left(- \frac{b s y}{\left(b + 2 y\right)^{2}} + \frac{b s}{2 \left(b + 2 y\right)}\right) 
    
    Bentuk sederhana : 
    	f'(y)= C*b*sqrt(b*s*y/(b + 2*y))*(3*b + 4*y)/(2*(b + 2*y)) 
    ==
     In Latex: \frac{C b \sqrt{\frac{b s y}{b + 2 y}}}{2 \left(b + 2 y\right)} \left(3 b + 4 y\right) 
    


***
### Menentukan nilai awal $y_{n0}$ dan $y_{n1}$


#### Nilai $y_{n0}$

Dengan mengasumsikan kecepatan aliran $v = 1\ m/det$, $y_{n0}$ dapat dicari dari persamaan $Q = VA$:

$$Q = VA \leftrightarrow Q = V\ (by_{n0})$$

Dimasukkan nilai $V = 1\ m/det$, $b = 2.5\ m$ dan $Q = 0.8\ m^3/det$, maka diperoleh nilai $y_{n0}$ sebesar:

$$\begin{aligned} V = 1\ m/det, b = 2.5\ m, Q = 0.8\ m^3/det &\rightarrow& Q &= V\ (b\ y_{n0}) \\
&& 0.8 &= 1\ (2.5\ y_{n0}) \\
&& y_{n0} &= \frac{0.8}{2.5} = 0.32\ m
\end{aligned}$$

#### Nilai $y_{n1}$

Nilai $y_{n1}$ diperoleh dari persamaan yang diberikan di petunjuk yaitu $y_{n1} = y_{n0}-\frac{f(y_{n0})}{f'(y_{n0})}$:

$$\begin{aligned} y_{n0} = 0.32\ m, f(y_{n0}) = -0.1942946, f'(y_{n0}) = 2.646344 &\rightarrow& y_{n1} &= y_{n0}-\frac{f(y_{n0})}{f'(y_{n0})} \\
&& y_{n1} &= 0.32 - \frac{-0.1942946}{2.646344} \\
&& y_{n1} &= 0.39342\ m
\end{aligned}$$

### Nilai $y_{n0}$ dan $y_{n1}$

Disimpulkan bahwa nilai $y_{n0} = 0.32\ m$ dan $y_{n1} = 0.39342\ m$. Dengan catatan:
-  Untuk Metoda Interval Halving, nilai batas kiri: $x_a = y_{n0}$ dan batas kanan: $x_b = y_{n1}$.
-  Untuk Metoda Newton-Rhapson, nilai awal: $x_k = y_{n1}$.
-  Untuk Metoda Secant, nilai $x_n = y_{n1}$ dan $x_{n-1} = y_{n0}$.

Catatan: Hasil diatas diperoleh dari perhitungan melalui python dibawah ini.


```python
# Diketahui:
b = 2.5 # (m) - Lebar Saluran
S = 1/400 # (m/m) - Kemiringan dasar Saluran
C = 30 # (..) - Chezy
Q = 0.80 # (m3/det) - Debit Aliran

# Asumsikan
V = 1 # (m3/det)

new_line(pad)
print('|{:^{n}s}|'.format('Diketahui', n=pad-2))
new_line(pad)
cetak('b', b, 'm')
cetak('S', S, 'm/m')
cetak('C', C)
cetak('Q', Q, 'm^3/det')
new_line(pad)

# Menentukan harga awal
# Q = V.A -> Q = V.b.y -> y = Q/(V.b)
yn0 = Q/(V*b)
fy, fdy = f(yn0), fd(yn0)
yn1 = yn0 - fy/fdy

print()
new_line(pad)
print('|{:^{n}s}|'.format('Mencari nilai y_{n0} dan y_{n1}', n=pad-2))
new_line(pad)
cetak('y_{n0}', yn0, 'm')
cetak('f(y_{n0})',fy)
cetak('f\'(y_{n0})',fdy)
cetak('y_{n1}', yn1, 'm')
new_line(pad)
```

    ==================================================
    |                   Diketahui                    |
    ==================================================
    |               b =    2.50000 m                 |
    |               S =    0.00250 m/m               |
    |               C =   30.00000                   |
    |               Q =    0.80000 m^3/det           |
    ==================================================
    
    ==================================================
    |        Mencari nilai y_{n0} dan y_{n1}         |
    ==================================================
    |          y_{n0} =    0.32000 m                 |
    |       f(y_{n0}) =   -0.19429                   |
    |      f'(y_{n0}) =    2.64634                   |
    |          y_{n1} =    0.39342 m                 |
    ==================================================


*******
## Penyelesaian Numerik (Interval Halving, Newton, Secant)

Kode diperoleh dari Latihan Soal Notebook [Interval-Halving, Newton-Rhapson, Secant (Minggu 15)](https://github.com/taruma/belajar-tsa/blob/master/ansis/Interval-Halving%2C%20Newton-Rhapson%2C%20Secant%20(Minggu%2015).ipynb) atau dapat dilihat dengan nbviewer [Interval-Halving, Newton-Rhapson, Secant (Minggu 15)](https://nbviewer.jupyter.org/github/taruma/belajar-tsa/blob/master/ansis/Interval-Halving%2C%20Newton-Rhapson%2C%20Secant%20%28Minggu%2015%29.ipynb). Dan dimodifikasi sesuai kebutuhan.

***
### Metode Interval Halving

#### Langkah Pengerjaan

Solusi menggunakan metode _Interval Halving_ dengan langkah sebagai berikut:
-  Nilai batas kiri dan kanan yang digunakan diperoleh dari perhitungan sebelumnya untuk mendapatkan nilai $y_{n0}$ dan $y_{n1}$.

$$\begin{aligned} &\text{Batas bawah/kiri: }& x_a &= y_{n0} &\text{Batas atas/kanan: }& x_b &=&\ y_{n1} \\
&& x_a &= 0.32\ m && x_b &=&\ 0.39342\ m \end{aligned}$$

-  Periksa nilai $f(x_a)$ dan $f(x_b)$ lebih kecil dari $0$. Langkah ini memastikan bahwa akar persamaannya berada di antara $x_a$ dan $x_b$. Dan diperoleh bahwa nilai akar-akarnya berada di antara $x_a$ dan $x_b$

$$\begin{aligned} f(x_a) &=\ -0.19429 ; f(x_b) &=\ 0.00704 \\
f(x_a)f(x_b) &< 0 &\rightarrow \text{OK} \end{aligned}$$

-  Cari nilai tengah $(x_h)$ yang merupakan titik tengah dari $x_a$ dan $x_b$:

$$x_h = \frac{x_a + x_b}{2}$$

-  Tentukan batas atas/bawah berikutnya. Nilai $x_h$ sebagai batas atas ketika $f(x_a)f(x_h)<0$ dan sebaliknya menjadi batas bawah ketika $f(x_b)f(x_h)<0$.

$$\begin{aligned} x_b \leftarrow x_h &: \text{if } f(x_a)f(x_h)<0 \text{ TRUE} \\
x_a \leftarrow x_h &: \text{if } f(x_h)f(x_b)<0 \text{ TRUE}
\end{aligned}$$



```python
x1, x2 = yn0, yn1
iterasi = 20
xa, xb = x1, x2

pad = 70
new_line(pad)
print('Periksa nilai akarnya berada diantara xa dan xb')
if f(xa)*f(xb) < 0:
    print('f(x_a) x f(x_b) < 0 === OK \n\tdengan nilai f(x_a) = {fxa:12.5f} dan f(x_b) = {fxb:12.5f}'.format(
        fxa=f(xa), fxb=f(xb)))
else:
    print('f(x_a) x f(x_b) < 0 === NOT OK \n\ttidak akan ditemukan akarnya diantara {xa} dan {xb}\n\tdengan nilai f(x_a) = {fxa} dan f(x_b) = {fxb}'.format(
        xa=xa, xb=xb, fxa=f(xa), fxb=f(xb)))
new_line(pad)
print('\n')

lebar_text = 12*7 + 8
print('='*lebar_text)
print('|{:^{n:d}s}|'.format('Solusi Numerik Metoda Interval Halving', n=lebar_text-2))
print('='*lebar_text)
print('| {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} |'.format(
    'n', 'x_a', 'x_b', 'f(x_a)', 'f(x_b)', 'x_h', 'f(x_h)', n=10))
print('='*lebar_text)

for i in range(1, iterasi+1):
    fxa, fxb = f(xa), f(xb)
    xh = (xa+xb)/2
    fxh = f(xh)

    print('| {:^{n:d}d} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} |'.format(
        i, xa, xb, f(xa), f(xb), xh, f(xh), n=10, f1=10, f2=7))
    if fxa*fxh < 0:
        xb = xh
    elif fxb*fxh < 0:
        xa = xh
print('='*lebar_text)
print('Maka diperoleh nilai akar-akarnya = {:10.6f} dengan hasil f(x_h) = {:15.10f}'.format(xh, f(xh)))
```

    ======================================================================
    Periksa nilai akarnya berada diantara xa dan xb
    f(x_a) x f(x_b) < 0 === OK 
    	dengan nilai f(x_a) =     -0.19429 dan f(x_b) =      0.00704
    ======================================================================
    
    
    ============================================================================================
    |                          Solusi Numerik Metoda Interval Halving                          |
    ============================================================================================
    |     n      |    x_a     |    x_b     |   f(x_a)   |   f(x_b)   |    x_h     |   f(x_h)   |
    ============================================================================================
    |     1      |  0.3200000 |  0.3934200 | -0.1942946 |  0.0070430 |  0.3567100 | -0.0953224 |
    |     2      |  0.3567100 |  0.3934200 | -0.0953224 |  0.0070430 |  0.3750650 | -0.0445413 |
    |     3      |  0.3750650 |  0.3934200 | -0.0445413 |  0.0070430 |  0.3842425 | -0.0188469 |
    |     4      |  0.3842425 |  0.3934200 | -0.0188469 |  0.0070430 |  0.3888313 | -0.0059261 |
    |     5      |  0.3888313 |  0.3934200 | -0.0059261 |  0.0070430 |  0.3911256 |  0.0005525 |
    |     6      |  0.3888313 |  0.3911256 | -0.0059261 |  0.0005525 |  0.3899785 | -0.0026883 |
    |     7      |  0.3899785 |  0.3911256 | -0.0026883 |  0.0005525 |  0.3905521 | -0.0010683 |
    |     8      |  0.3905521 |  0.3911256 | -0.0010683 |  0.0005525 |  0.3908389 | -0.0002580 |
    |     9      |  0.3908389 |  0.3911256 | -0.0002580 |  0.0005525 |  0.3909822 |  0.0001472 |
    |     10     |  0.3908389 |  0.3909822 | -0.0002580 |  0.0001472 |  0.3909105 | -0.0000554 |
    |     11     |  0.3909105 |  0.3909822 | -0.0000554 |  0.0001472 |  0.3909464 |  0.0000459 |
    |     12     |  0.3909105 |  0.3909464 | -0.0000554 |  0.0000459 |  0.3909285 | -0.0000048 |
    |     13     |  0.3909285 |  0.3909464 | -0.0000048 |  0.0000459 |  0.3909374 |  0.0000206 |
    |     14     |  0.3909285 |  0.3909374 | -0.0000048 |  0.0000206 |  0.3909330 |  0.0000079 |
    |     15     |  0.3909285 |  0.3909330 | -0.0000048 |  0.0000079 |  0.3909307 |  0.0000016 |
    |     16     |  0.3909285 |  0.3909307 | -0.0000048 |  0.0000016 |  0.3909296 | -0.0000016 |
    |     17     |  0.3909296 |  0.3909307 | -0.0000016 |  0.0000016 |  0.3909302 | -0.0000000 |
    |     18     |  0.3909302 |  0.3909307 | -0.0000000 |  0.0000016 |  0.3909304 |  0.0000008 |
    |     19     |  0.3909302 |  0.3909304 | -0.0000000 |  0.0000008 |  0.3909303 |  0.0000004 |
    |     20     |  0.3909302 |  0.3909303 | -0.0000000 |  0.0000004 |  0.3909302 |  0.0000002 |
    ============================================================================================
    Maka diperoleh nilai akar-akarnya =   0.390930 dengan hasil f(x_h) =    0.0000001907


#### Solusi Numerik Metoda Interval Halving

Dengan menggunakan prosedur diatas dan dilakukan iterasi sebanyak $20$ kali, diperoleh bahwa nilai $y_n = 0.390930\ m$ dengan nilai $f(x_h) = 0.0000001907$. Dari tabel hasil perhitungan dibawah, dapat dilihat bahwa nilai akarnya sudah dapat ditemukan pada langkah ke $16$ jika error yang ditargetkan $\epsilon = 0.000001$. 

***
### Metoda Newton-Rhapson

#### Langkah Pengerjaan

Solusi Numerik menggunakan metoda _Newton-Rhapson_ dimulai dari:

-  Nilai awal $x_k$ menggunakan nilai $y_{n0}$ maka $x_k = 0.32\ m$

-  Dalam metoda Newton-Rhapson diperlukan turunan dari fungsi $f(y)$. Persamaan yang digunakan:

$$\begin{aligned} f(y) &=& C b y \sqrt{\frac{b s y}{b + 2 y}} - Q \\
f'(y) &=& \frac{C b \sqrt{\frac{b s y}{b + 2 y}}}{2 \left(b + 2 y\right)} \left(3 b + 4 y\right) 
\end{aligned}$$

dengan: $C = 30, b = 2.5\ m, s = \frac{1}{400}\ m/m$

-  Akar persamaan $x_{k+1}$ diperoleh dengan melakukan iterasi sebanyak $k$ dengan menggunakan persamaan:

$$x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}$$



```python
# Defining function

iterasi = 10  # Iteration
xk = yn0  # x_k

lebar_text = 12*5 + 6
print('='*lebar_text)
print('|{:^{n:d}s}|'.format('Solusi Numerik Metoda Newton Rhapson', n=lebar_text-2))
print('='*lebar_text)
print('| {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} | {:^{n:d}s} |'.format(
    'k', 'x_k', 'f(x_k)', 'f\'(x_k)', 'x_{k+1}', n=10))
print('='*lebar_text)

for i in range(1, iterasi+1):
    xk_p1 = xk - f(xk)/fd(xk)
    print('| {:^{n:d}d} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | {:^ {f1:d}.{f2:d}f} | '.format(i,
                                                                                                                           xk, f(xk), fd(xk), xk_p1, n=10, f1=10, f2=6))
    xk = xk_p1
print('='*lebar_text)
print('Maka diperoleh nilai akar-akarnya = {:10.6f} dengan hasil f(x_k) = {:15.10f}'.format(xk, f(xk)))
```

    ==================================================================
    |              Solusi Numerik Metoda Newton Rhapson              |
    ==================================================================
    |     k      |    x_k     |   f(x_k)   |  f'(x_k)   |  x_{k+1}   |
    ==================================================================
    |     1      |  0.320000  | -0.194295  |  2.646344  |  0.393420  | 
    |     2      |  0.393420  |  0.007043  |  2.831491  |  0.390933  | 
    |     3      |  0.390933  |  0.000007  |  2.825843  |  0.390930  | 
    |     4      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     5      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     6      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     7      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     8      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     9      |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    |     10     |  0.390930  |  0.000000  |  2.825838  |  0.390930  | 
    ==================================================================
    Maka diperoleh nilai akar-akarnya =   0.390930 dengan hasil f(x_k) =    0.0000000000


#### Solusi Numerik Metoda Newton Rhapson

Dengan menggunakan prosedur diatas dan dilakukan iterasi sebanyak $10$ kali, diperoleh bahwa nilai $y_n = 0.390930\ m$ dengan nilai $f(x_k) = 0.0000000000$. Dari tabel hasil perhitungan diatas, dapat dilihat bahwa nilai akarnya sudah dapat ditemukan pada langkah ke $4$ jika error yang ditargetkan $\epsilon = 0.000001$. 

***
### Metoda Secant

#### Langkah Pengerjaan

Solusi Numerik menggunakan metoda _Secant_ dimulai dari:

-  Menentukan nilai $x_0 = x_{n-1}$ dan $x_1 = x_n$ dari nilai $y_{n0}$ dan $y_{n1}$:
$$\begin{aligned}x_0 &= x_{n-1} &= y_{n0} &= 0.32\ m \\
x_1 &= x_{n} &= y_{n1} &= 0.39342\ m\end{aligned}$$

-  Dalam metoda _Secant_ hanya diperlukan fungsi $f(y)$. Persamaan yang digunakan:

$$\begin{aligned} f(y) &=& C b y \sqrt{\frac{b s y}{b + 2 y}} - Q \\
\end{aligned}$$

dengan: $C = 30, b = 2.5\ m, s = \frac{1}{400}\ m/m$

-  Akar persamaan $x_{n+1}$ diperoleh dengan melakukan iterasi sebanyak $n$ dengan menggunakan persamaan:

$$x_{n+1} = x_n - f(x_n)\frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})}$$



```python
x0, x1 = yn1, yn0

lebar_text = 10*5+12+2*6+7
print('='*lebar_text)
print('|{:^{n:d}s}|'.format(
    'Solusi Numerik Menggunakan Metoda Secant', n=lebar_text-2))
print('='*(10*5+12+2*6+7))
print('| {:^10s} | {:^10s} | {:^10s} | {:^10s} | {:^10s} | {:^12s} |'.format(
    'n', 'x_{n-1}', 'x_n', 'N_n', 'D_n', 'x_{n+1}-x_n'))
print('='*(10*5+12+2*6+7))

iterasi = 6

xn = x1
xn_m1 = x0
xn_p1 = 0
for n in range(1, iterasi+1):
    Nn = f(xn)*(xn-xn_m1)
    Dn = f(xn)-f(xn_m1)
    xn_p1 = xn - Nn / Dn
    dx = xn_p1-xn

    print('| {:^10d} | {:^ 10.6f} | {:^ 10.6f} | {:^ 10.6f} | {:^ 10.6f} | {:^ 12.6f} |'.format(n, xn_m1, xn, Nn, Dn, dx))

    xn_m1 = xn
    xn = xn_p1

print('='*(10*5+12+2*6+7))
print('Maka diperoleh nilai akar-akarnya = {:10.6f} dengan f(x_{{n+1}}) = {:15.10f}'.format(xn, f(xn)))
```

    =================================================================================
    |                   Solusi Numerik Menggunakan Metoda Secant                    |
    =================================================================================
    |     n      |  x_{n-1}   |    x_n     |    N_n     |    D_n     | x_{n+1}-x_n  |
    =================================================================================
    |     1      |  0.393420  |  0.320000  |  0.014265  | -0.201338  |   0.070852   |
    |     2      |  0.320000  |  0.390852  | -0.000016  |  0.194073  |   0.000081   |
    |     3      |  0.390852  |  0.390933  |  0.000000  |  0.000229  |  -0.000002   |
    |     4      |  0.390933  |  0.390930  |  0.000000  | -0.000007  |   0.000000   |
    |     5      |  0.390930  |  0.390930  | -0.000000  |  0.000000  |   0.000000   |
    |     6      |  0.390930  |  0.390930  |  0.000000  |  0.000000  |   0.000000   |
    =================================================================================
    Maka diperoleh nilai akar-akarnya =   0.390930 dengan f(x_{n+1}) =    0.0000000000


#### Solusi Numerik Metoda _Secant_

Dengan menggunakan prosedur diatas dan dilakukan iterasi sebanyak $6$ kali, diperoleh bahwa nilai $y_n = 0.390930\ m$ dengan nilai $f(x_k) = 0.0000000000$. Dari tabel hasil perhitungan diatas, dapat dilihat bahwa nilai akarnya sudah dapat ditemukan pada langkah ke $4$ jika error yang ditargetkan $\epsilon = 0.000001$. 

***
## Kesimpulan

Ringkasan dari penyelesaian permasalahan dengan 3 metoda yaitu _Interval-Halving, Newton-Rhapson, Secant_:

$$\begin{array}{|l|c|c|c|c|}
\hline
\text{Metoda} & \text{Jumlah Iterasi Coba} & y_{n0} & f(y_{n0}) & \text{Jumlah Iterasi jika } \epsilon = 0.000001 \\
\hline
\text{Interval-Halving} & 20 & 0.390930 & 0.0000001907 & 16 \\
\text{Newton-Rhapson} & 10 & 0.390930 & 0.0000000000 & 4 \\
\text{Secant} & 6 & 0.390930 & 0.0000000000 & 4 \\\hline
\end{array}
$$

Dari ketiga metoda diatas, metoda _Newton-Rhapson_ dan _Secant_ memiliki iterasi yang lebih sedikit dengan $\epsilon = 1\times10^{-6}$, akan tetapi metoda _Newton-Rhapson_ memerlukan persamaan turunan $f'(y)$ yang jika persamaannya akan sulit diturunkan jika dilakukan secara manual. Sedangkan metoda _Secant_ hanya menggunakan persamaan $f(y)$. 

fa1d9b549c7493cc2a4256b75bffae5dfab39619
ipynb
Jupyter Notebook
ansis/Tugas 3 - Taruma S. (25017046).ipynb
taruma/belajar-tsa
ded702846f0453993ba90738a4b6b2401abe9177
MIT
ansis/Tugas 3 - Taruma S. (25017046).ipynb
taruma/belajar-tsa
ded702846f0453993ba90738a4b6b2401abe9177
MIT
ansis/Tugas 3 - Taruma S. (25017046).ipynb
taruma/belajar-tsa
ded702846f0453993ba90738a4b6b2401abe9177
MIT
Qwen/Qwen-72B
1. YES
2. YES