用绝对值在 R 中绘图
plotting in R with absolute values
我想知道是否有一种直接的方法可以在 R 中绘制以下两个方程
x和y为变量,其余为已知参数
当 X 是 n 维向量时
这是一道数学题,而不是编程题。进行一些计算将有助于简化编程任务。
首先,为简单起见,假设 c_1
和 c_2
等于零。我们可以通过移动轴轻松恢复原始比例。
那么,矩阵计算可以写成下面的形式
现在让 z = ax + by
和 w = cx + dy
。那么,第一个带有绝对值度量的方程将写成:
根据这个等式,假设 gamma 为正,您可以将 z
和 w
可视化如下。
因此,您可以找到一组(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()
################################
我想知道是否有一种直接的方法可以在 R 中绘制以下两个方程
x和y为变量,其余为已知参数
当 X 是 n 维向量时
这是一道数学题,而不是编程题。进行一些计算将有助于简化编程任务。
首先,为简单起见,假设 c_1
和 c_2
等于零。我们可以通过移动轴轻松恢复原始比例。
那么,矩阵计算可以写成下面的形式
现在让 z = ax + by
和 w = cx + dy
。那么,第一个带有绝对值度量的方程将写成:
根据这个等式,假设 gamma 为正,您可以将 z
和 w
可视化如下。
因此,您可以找到一组(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()
################################