用绝对值在 R 中绘图

plotting in R with absolute values

我想知道是否有一种直接的方法可以在 R 中绘制以下两个方程

x和y为变量,其余为已知参数

当 X 是 n 维向量时

这是一道数学题,而不是编程题。进行一些计算将有助于简化编程任务。

首先,为简单起见,假设 c_1c_2 等于零。我们可以通过移动轴轻松恢复原始比例。 那么,矩阵计算可以写成下面的形式

现在让 z = ax + byw = cx + dy。那么,第一个带有绝对值度量的方程将写成:

根据这个等式,假设 gamma 为正,您可以将 zw 可视化如下。

因此,您可以找到一组(z, w)个满足要求的组合并转换回(x, y)

具有最大度量的第二个方程可以写成如下:

这意味着 (z, w) 可以可视化如下。

同样,您可以生成这样的 (z, w) 对并转换回 (x, y)

这是第一个等式的 R 代码。你可以自己试试第二个。

library(ggplot2)

# A is (a,b; c,d) matrix
A <- matrix(c(1, 2, -1, 0), 
            nrow=2, ncol=2, byrow=TRUE)
gamma <- 1
c1 <- 0.2
c2 <- 0.1

###############################
z <- seq(-gamma, gamma, length=100)
w <- abs(gamma - abs(z))

z <- c(z, z)
w <- c(w, -w)

qplot(z, w) + coord_fixed()

# computing back (x,y) from (z,w)
z_mat <- rbind(z, w)
x_mat <- solve(A, z_mat)
x <- x_mat[1,] + c1
y <- x_mat[2,] + c2

qplot(x, y) + coord_fixed()
################################