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
Diferensiasi Numerik adalah suatu teknik yang digunakan dalam matematika untuk menghitung turunan suatu fungsi secara numerik atau aproksimasi. Dalam konteks Mosaic Calculus, diferensiasi numerik dapat digunakan untuk mengukur perubahan fungsi atau data diskrit. Berikut adalah informasi mengenai Diferensiasi Numerik dalam konteks Mosaic Calculus:
Dasar Diferensiasi Numerik: Diferensiasi numerik melibatkan pendekatan aproksimasi turunan fungsi dengan menggunakan data diskrit atau titik-titik yang diukur. Ini berguna ketika kita tidak memiliki ekspresi matematika eksplisit untuk fungsi yang akan kita diferensiasi.
Diferensiasi Maju (Forward Difference): Salah satu metode diferensiasi numerik yang umum adalah metode diferensiasi maju. Dalam metode ini, turunan di titik tertentu dihitung dengan mengambil selisih fungsi pada titik itu dengan titik berikutnya. Persamaan umumnya adalah sebagai berikut:
\(f'(x) \approx \frac{f(x + h) - f(x)}{h}\)
Di mana \(h\) adalah suatu bilangan kecil yang disebut sebagai langkah diferensiasi.
Diferensiasi Mundur (Backward Difference): Dalam metode diferensiasi mundur, turunan dihitung dengan mengambil selisih fungsi pada titik tertentu dengan titik sebelumnya. Persamaan umumnya adalah:
\(f'(x) \approx \frac{f(x) - f(x - h)}{h}\)
Diferensiasi mundur juga merupakan teknik umum dalam diferensiasi numerik.
Diferensiasi Sentral (Central Difference): Metode diferensiasi sentral adalah metode yang lebih akurat dibandingkan dengan metode diferensiasi maju atau mundur. Dalam metode ini, turunan dihitung dengan mengambil selisih fungsi di sekitar titik yang akan dihitung. Persamaan umumnya adalah:
\(f'(x) \approx \frac{f(x + h) - f(x - h)}{2h}\)
Diferensiasi sentral sering digunakan untuk menghasilkan hasil yang lebih akurat.
Penggunaan Diferensiasi Numerik: Dalam konteks Mosaic Calculus, diferensiasi numerik digunakan ketika kita memiliki data diskrit atau ketika kita ingin mengukur perubahan dalam data yang diperoleh secara eksperimental atau dari sumber lain yang tidak memiliki ekspresi matematika eksplisit.
Kesalahan Aproksimasi: Dalam diferensiasi numerik, ada kesalahan yang terkait dengan penggunaan langkah diferensiasi (h). Kesalahan ini dapat diminimalkan dengan memilih langkah diferensiasi yang tepat dan dengan menggunakan metode yang lebih akurat.
# Memuat library yang diperlukan
library(ggplot2)
# Fungsi yang ingin kita hitung turunannya
f <- function(x) {
return(x^2 - 4)
}
# Membuat rentang nilai x
x_vals <- seq(-10, 10, by = 0.1)
# Menghitung nilai y dari fungsi
y_vals <- sapply(x_vals, f)
# Menghitung turunan numerik dari fungsi
dy_vals <- diff(y_vals) / diff(x_vals)
# Menambahkan NA ke akhir dy_vals agar panjangnya sama dengan x_vals dan y_vals
dy_vals <- c(dy_vals, NA)
# Membuat dataframe dari vektor
df <- data.frame(x = x_vals, y = y_vals, dy = dy_vals)
# Membuat plot fungsi dan turunannya
ggplot(df, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = dy), color = "red") +
ggtitle("Function and Its Numerical Derivative") +
xlab("x") +
ylab("y") +
scale_color_manual(values = c("blue", "red"), labels = c("Function", "Numerical Derivative")) +
theme(legend.position = c(0.8, 0.9))
## Warning: Removed 1 row containing missing values (`geom_line()`).
Diferensiasi numerik adalah alat penting dalam analisis data, optimisasi numerik, pemodelan matematika, dan pemahaman perubahan dalam berbagai konteks matematika. Ini membantu dalam menghitung turunan dari data diskrit dan memungkinkan kita untuk mengukur gradien atau perubahan fungsi di titik-titik tertentu yang tidak memiliki ekspresi matematika yang eksplisit.