library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
##
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
##
## count, tally
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
Banyak perhitungan yang dimulai dengan tebakan yang diikuti dengan proses langkah demi langkah untuk menyempurnakan tebakan tersebut. Salah satu contohnya adalah proses menghitung akar kuadrat. Tidak ada rumus operasional untuk suatu fungsi yang mengambil suatu bilangan sebagai masukan dan menghasilkan akar kuadrat dari bilangan tersebut sebagai keluaran. Saat kita menulis kami tidak menjelaskan cara menghitung keluaran, hanya menjelaskan jenis keluaran yang kami cari.
Fungsi yang sering digunakan untuk menghitung adalah better():
Mungkin sama sekali tidak jelas mengapa rumus ini terkait dengan mencari akar kuadrat. Mari kita tunda masalah ini sampai bagian akhir dan konsentrasikan perhatian kita pada cara menggunakannya.
Untuk memulai, mari kita definisikan fungsi komputer:
better <- makeFun((guess + x/guess)/2 ~ guess)
Perhatikan berperan sebagai parameter fungsi, bukan sebagai masukan ke fungsi.
Misalkan kita ingin menerapkan fungsi akar kuadrat pada input 55, yaitu menghitung . Oleh karena itu, nilai yang harus kita berikan adalah 55.
Untuk menghitung lebih baik (menebak) kita tidak hanya perlu tapi nilai untuk tebakan. Berapakah nilai ini dan apa yang akan kita lakukan dengan kuantitasnya dengan lebih baik (tebak) setelah kita menghitungnya.
Tanpa penjelasan, kita akan menggunakan tebakan = 1, berapa pun nilai . Menghitung keluaran menjadi…
better(1, x=55)
## [1] 28
Baik tebakan kita 1 maupun keluaran 28 tidak ada . (Setelah lama menghafal kuadrat bilangan bulat, kita jadi tahu akan berada di antara 7 dan 8. Baik 1 maupun 28 tidak berada dalam interval tersebut.)
Orang-orang—lebih dari dua ribu tahun yang lalu—yang menemukan ide di balik better()fungsi tersebut yakin bahwa better()mereka dapat memberikan tebakan yang lebih baik untuk jawaban yang kita cari. Tidak jelas mengapa 28 harus menjadi tebakan yang lebih baik daripada 1 tapi, untuk menghormati, mari kita terima klaim mereka.
Di sinilah iterasi berperan. Meskipun 28 merupakan tebakan yang lebih baik daripada 1, 28 tetap saja bukan tebakan yang baik. Tapi kita bisa menggunakan better()untuk menemukan sesuatu yang lebih baik dari 28:
better(28, x=55)
## [1] 14.98214
Mengulangi suatu tindakan berarti melakukan tindakan itu berulang kali. (“Iterate” berasal dari kata Latin iterum , yang berarti “lagi.”) Seekor burung mengulangi seruannya, menyanyikannya berulang-ulang. Dalam matematika, “iterasi” memiliki keunikan. Saat kita mengulangi tindakan matematis tersebut, kita akan mengambil hasil dari sudut sebelumnya, bukan hanya mengulangi perhitungan sebelumnya.
Melanjutkan iterasi better()…
better(14.98214, x=55)
## [1] 9.326589
better(9.326589, x=55)
## [1] 7.611854
better(7.611854, x=55)
## [1] 7.418713
better(7.418713, x=55)
## [1] 7.416199
better(7.416199, x=55)
## [1] 7.416198
Pada langkah terakhir, keluaran dari better()praktis sama dengan masukan, jadi tidak ada alasan untuk melanjutkan. Kami dapat mengonfirmasi bahwa keluaran terakhir adalah tebakan yang bagus :
7.416198^2
## [1] 54.99999
Referensi: Kaplan, Daniel. 2022. MOSAIC Calculus. GitHub Pages. https://dtkaplan.github.io/MC2/