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, will retire 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:.
## The sp package is now running under evolution status 2
##      (status 2 uses the sf package in place of rgdal)
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

Graphical Iteration dalam konteks Mosaic Calculus adalah pendekatan yang mengintegrasikan konsep visualisasi grafik dengan konsep iterasi untuk memahami dan menyelesaikan masalah optimisasi atau masalah matematika yang melibatkan pengulangan. Pendekatan ini memungkinkan kita untuk menggunakan elemen visual untuk mengidentifikasi, memantau, dan memahami perubahan yang terjadi selama proses iterasi dalam konteks optimisasi atau analisis matematis.

Berikut adalah beberapa konsep dan elemen yang terkait dengan Graphical Iteration dalam Mosaic Calculus:

  1. Visualisasi Fungsi dan Iterasi: Dalam Graphical Iteration, kita menggunakan visualisasi grafik untuk mewakili fungsi matematika yang ingin dioptimalkan. Grafik ini dapat membantu dalam memahami bagaimana fungsi berperilaku dan bagaimana perubahan dalam variabel memengaruhi hasilnya. Selama proses iterasi, visualisasi grafik ini diperbarui untuk mencerminkan perkembangan solusi.

  2. Pemantauan Perubahan: Melalui visualisasi grafik, kita dapat memantau perubahan dalam nilai fungsi objektif atau kondisi lainnya selama iterasi. Ini membantu kita untuk melihat apakah solusi semakin mendekati kondisi optimal atau tidak.

  3. Penyempitan Wilayah: Visualisasi juga dapat digunakan untuk menunjukkan wilayah pencarian solusi yang semakin menyempit seiring dengan berjalannya iterasi. Ini adalah hal yang umum dalam metode optimisasi di mana solusi semakin mendekati nilai optimal.

  4. Keputusan Iterasi: Grafik juga dapat digunakan untuk membuat keputusan selama iterasi. Misalnya, jika grafik menunjukkan bahwa solusi semakin menjauhi nilai optimal, kita mungkin perlu mengubah parameter atau metode iterasi yang digunakan.

  5. Interaktivitas: Graphical Iteration dapat menjadi interaktif, yang memungkinkan pengguna untuk berinteraksi dengan grafik, mengubah parameter, atau mengambil tindakan berdasarkan apa yang mereka lihat dalam visualisasi.

# Memuat library yang diperlukan
library(ggplot2)

# Fungsi yang ingin kita analisis
f <- function(x) {
  return(x^2 - 4)
}

# Nilai awal
x0 <- 1

# Maksimum iterasi
max_iter <- 100

# Inisialisasi vektor untuk menyimpan nilai-nilai x dan y
x_vals <- c(x0)
y_vals <- c(f(x0))

for (i in 1:max_iter) {
  # Hitung x berikutnya
  x1 <- f(x0)
  
  # Tambahkan ke vektor
  x_vals <- c(x_vals, x0, x1)
  y_vals <- c(y_vals, x1, x1)
  
  # Perbarui x0
  x0 <- x1
}

# Buat dataframe dari vektor
df <- data.frame(x = x_vals, y = y_vals)

# Buat plot iterasi
ggplot(df, aes(x = x, y = y)) +
  geom_line() +
  ggtitle("Graphical Iteration") +
  xlab("x") +
  ylab("f(x)")