# 安装和加载必要的包
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
if (!requireNamespace("gridExtra", quietly = TRUE)) {
install.packages("gridExtra")
}
library(ggplot2)
library(gridExtra)
# 定义函数 y(x) 和导数函数 dy(x)
y <- function(x) {
0.4 * exp(x / 2) + 0.6 * sin(pi * x / 2)
}
dy <- function(x) {
0.4 * exp(x / 2) / 2 + 0.6 * (pi / 2) * cos(pi * x / 2)
}
# 定义 x 范围
x <- seq(-2 * pi, 2 * pi, length.out = 100)
# 计算 y(x) 和 dy(x)
y_values <- y(x)
dy_values <- dy(x)
# 创建数据框用于 ggplot
data <- data.frame(x = x, y = y_values, dy = dy_values)
# 创建 y(x) 图
p1 <- ggplot(data, aes(x = x)) +
geom_line(aes(y = y), color = "blue", size = 1.2) +
geom_point(aes(y = y), color = "blue", size = 3, shape = 18) +
labs(title = "函数曲线图", x = "时间", y = "函数") +
theme_minimal()
# 创建 dy(x) 图
p2 <- ggplot(data, aes(x = x)) +
geom_line(aes(y = dy), color = "red", size = 1.2) +
geom_point(aes(y = dy), color = "red", size = 3, shape = 8) +
labs(x = "时间", y = "函数") +
theme_minimal()
# 合并两个图并添加图例
grid.arrange(
p1 + theme(legend.position = "none"),
p2 + theme(legend.position = "none"),
ncol = 1,
bottom = "一元函数, 导数函数"
)