Kamis, 12 Mei 2022

Menghitung Akar Kuadrat Menggunakan Iterasi (Dengan Gambar)

Sedikit Aljabar & Geometri

Bagaimana cara menghitung √10 itu?

Coba lihat gambar berikut:

Pada gambar di atas, luas gabungan dari kotak hitam, merah, dan biru adalah 10, dan luas kotak hitam adalah 9. sedangkan panjang sisi kotak hitam adalah √9 = 3, dan panjang sisi kotak hitam + x adalah √10.

Sekarang, kita perlu menghitung x (karena √10 - √9 = x).
Kita sudah tahu bahwa gabungan dari kotak merah, biru, dan hitam tertumpuk (overlap) dengan kotak hitam, maka total  luas kotak merah dan biru adalah 10 - 9 = 1
luas 1 kotak merah = x ⋅ 3. namun karena jumlah kotak merah adalah 2, maka luas total kotak merah = x ⋅ 3 ⋅ 2.
total luas kotak merah dan biru = x ⋅ 3 ⋅ 2 + x² = 1
1 - x² = x ⋅ 6
x = (1 - x²) ÷ 6
6 = (1 - x ⋅ x) ÷ x
6 = 1 ÷ x - x
x = 1 ÷ (6 + x)

Nah, persamaan ini tidak bisa diselesaikan karena nilai x bergantung dengan angka x itu sendiri(kecuali menggunakan akar-kuadrat. ini tidak bisa karena kita ingin membuat fungsi akar-kuadrat itu sendiri).
 
Maka untuk menghitungnya, kita bisa menggunakan iterasi (iteration).
Kita bisa mensubstitusi sebuah persamaan dengan persamaan itu sendiri.
Coba lihat:
x = 1 ÷ (6 + x)
   = 1 ÷ (6 + (1 ÷ (6 + x)))
   = 1 ÷ (6 + (1 ÷ (6 + (1 ÷ (6 + x)))))
   = 1 ÷ (6 + (1 ÷ (6 + (1 ÷ (6 + (1 ÷ (6 + x)))))))
 

Memprogram iterasi perhitungan √10

Ketika kita menggunakan metode iterasi (untuk menghitung sebuah angka), kita tidak bisa menghitung angka dengan persis, tapi kita bisa menghitung aproksimasi angka. semakin banyak iterasi yang dilakukan, semakin akurat kita dengan angka sebenarnya.
Pada iterasi ke-0, kita bisa mengatur x = 0 (sebagai placeholder):
Iterasi ke-0:
x₀ ≈ 0
Pada iterasi ke-1, baru kita memasukkan persamaan:
Iterasi ke-1:
x₁ ≈ 1 ÷ (6 + x₀) = 1 ÷ 6
Iterasi ke-2:
x₂ ≈ 1 ÷ (6 + x₁) = 1 ÷ (6 + 1 ÷ 6)
Iterasi ke-3:
x₃ ≈ 1 ÷ (6 + x₂) = 1 ÷ (6 + 1 ÷ (6 + 1 ÷ 6))
Perhatikan angka 'kecil'-nya (₀, ₁, ₂, dsb) di variabel x.
Nah sekarang kita bisa membuat program-nya dengan Python.

sqrt_10.py

x = 0 #nilai awal
for i in range(100):
    x = 1/(6+x)

print('√10 ≈', x + 3)


Pada baris ke-1, kita memasukkan nilai 0 ke variabel x.
Pada baris ke-2, kita memulai loop 100-kali, untuk membuat iterasi
Di dalam loop, kita memasukkan nilai 1/(6+x) ke variabel x (lihat persamaan diatas)
Kemudian, kita mencetak hasil x + 3. Mengapa x + 3? Dari gambar kita sudah melihat bahwa √10 - √9 = x. dan √10 =x +  √9 = x + 3. 

Hasilnya adalah 3.1622776601683795

Bonus

Perhitungan ini membuat saya berpikir, mungkin saja dari metode iterasi ini kita bisa gunakan untuk menghitung infinity (∞):

∞ = ∞ +1
    = (∞ + 1) + 1
    = ((∞ + 1) + 1) + 1
 
Iterasi ke-0:
x₀ ≈ 0
Iterasi ke-1:
x₁ ≈ x₀ + 1
Iterasi ke-2:
x₂ ≈ x₁ + 1
Iterasi ke-3:
x₃ ≈ x₂ + 1
Bisa nggak ya? kalau bisa, berapa banyak iterasi yang diperlukan? tulis pendapatmu di kolom komentar!
Apakah si komputer bisa melakukannya? 
 
...
--MNA--

Tidak ada komentar:

Posting Komentar