Dosen : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Jurusan : Teknik Informatika

Iterasi Numerik

Gunakan fungsi R/mosaik Iterate(). Argumen pertama adalah ekspresi gelombang yang mendefinisikan fungsi yang akan diiterasi. Yang kedua adalah tebakan awal. Yang ketiga adalah jumlah langkah iterasi. Contohnya:

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
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, were retired in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D
better <- makeFun((guess + x/guess)/2 ~ guess)
Iterate(better(guess, x=55) ~ guess, x0=1, n=8)
##   n     guess
## 1 0  1.000000
## 2 1 28.000000
## 3 2 14.982143
## 4 3  9.326590
## 5 4  7.611854
## 6 5  7.418713
## 7 6  7.416199
## 8 7  7.416198
## 9 8  7.416198

Keluaran yang dihasilkan Iterate()berupa bingkai data. Tebakan awal ada pada baris dengan n = 0 . Baris yang berurutan memberikan keluaran, langkah demi langkah, dengan setiap langkah iterasi baru.


Dari mana asal lebih baik()?

Untuk menghitung akar kuadrat, kami menggunakan fungsi tersebut

better ( y ) = 1 2 ( y + x y )   .

Anggaplah Anda kebetulan mendapat tebakan yang benar y = x . Tidak ada cara untuk memperbaiki tebakan yang benar, jadi hal terbaik yang dapat dilakukan Better() adalah mengembalikan tebakan tersebut tanpa perubahan. Memang benar:

better ( y = x   ) = 1 2 ( x + x x )   = 1 2 ( x + x ) = x .

Tentu saja tebakan awal y mungkin salah. Ada dua cara untuk melakukan kesalahan:

  1. Tebakannya terlalu kecil y < x .

  2. Tebakannya terlalu besar x < y .

Rumus untuk lebih baik() adalah rata-rata tebakan y dan jumlah lainnya x / y . Jika y terlalu kecil, kalau begitu x / y pasti terlalu besar. Jika y terlalu besar kalau begitu x / y pasti terlalu kecil.

Seperti dugaan, kedua besaran tersebut y Dan x / y setara dalam arti bahwa better ( y ) = better ( x / y ) . Rata-rata dari y Dan x / y akan lebih dekat dengan hasil sebenarnya daripada hasil terburuk y atau x / y ; rata-rata akan menjadi tebakan yang lebih baik.