# \donttest{
# Define several scalar field functions:
# Example 1: f(x, y) = x^2 - y^2
f <- function(u) {
x <- u[1]
y <- u[2]
x^2 - y^2
}
# Example 2: g(x, y) = sin(x) * cos(y)
g <- function(u) {
x <- u[1]
y <- u[2]
sin(x) * cos(y)
}
# Example 3: h(x, y) = log(|x| + 1) + sqrt(|y|)
h <- function(u) {
x <- u[1]
y <- u[2]
log(abs(x) + 1) + sqrt(abs(y))
}
# Create a grid of evaluation points
grid_data <- expand.grid(
x = seq(-5, 5, length.out = 30),
y = seq(-5, 5, length.out = 30)
)
# Compute the scalar field for f and plot its gradient
grid_data$z <- apply(grid_data, 1, f)
ggplot(grid_data, aes(x = x, y = y, z = z)) +
geom_gradient_smooth()
# Compute and plot for g:
grid_data$z <- apply(grid_data, 1, g)
ggplot(grid_data, aes(x = x, y = y, z = z)) +
geom_gradient_smooth()
# Compute and plot for h:
grid_data$z <- apply(grid_data, 1, h)
ggplot(grid_data, aes(x = x, y = y, z = z)) +
geom_gradient_smooth()
# }
Run the code above in your browser using DataLab