gpt4 book ai didi

r - R 中具有线性约束的阴影多边形

转载 作者:行者123 更新时间:2023-12-01 06:36:24 26 4
gpt4 key购买 nike

我有 6 个线性约束。我知道如何手动和通过 r 找到此问题的解决方案.我正在寻找一种简单的方法来获得可行区域的插图。

我试过 ggplot2这样做没有任何成功。

以下是限制条件:x1 >= 0, x2 >= 0, x2 <= 10x2 <= 12 - 2/5 * x1 , x2 <= 18 - x1 , x2 <= 18 - x1

require(ggplot2)

# x2 <= 12 - 2/5*x1
fun1 = function(x1){
x2 = 12 - 2/5*x1
return(x2)
}

# x2 <= 18 - x1
fun2 = function(x1){
x2 = 18 - x1
return(x2)
}

# x2 = 44 - 3*x1
fun3 = function(x1){
x2 = 44 - 3*x1
return(x2)
}

x1 = seq(0,20)
mydf = data.frame(x1, fun1(x1), fun2(x1),fun3(x1),rep(10,length(x1)))
names(mydf) = c('x1','y1','y2','y3','y4')
mydf$y5 = rep(0,length(x1))

p0 = ggplot(mydf, aes(x = x1)) +
coord_cartesian(ylim=c(0,10),xlim = c(0,20))+
geom_line(aes(y = y1), colour = 'blue') +
geom_line(aes(y = y2), colour = 'green') +
geom_line(aes(y = y3), colour = 'red') +
geom_line(aes(y = y4), colour = 'purple') +
geom_line(aes(y = y5), colour = 'black')

p0 + geom_area(aes(y = pmin(y1,y2,y3,y4,y5)), fill = 'gray60')

谢谢你的帮助!

编辑 : 删除最后一个 y5来自 pmin函数可以解决问题:
 p0 +  geom_area(aes(y = pmin(y1,y2,y3,y4,y5)), fill = 'gray60')

最佳答案

我的问题是在最后一个变量 y5 .从 pmin 中删除它函数成功了。

p0 = ggplot(mydf, aes(x = x1)) + 
coord_cartesian(ylim=c(0,10),xlim = c(0,20))+
geom_line(aes(y = y1), colour = 'blue') +
geom_line(aes(y = y2), colour = 'green') +
geom_line(aes(y = y3), colour = 'red') +
geom_line(aes(y = y4), colour = 'purple') +
geom_line(aes(y = y5), colour = 'black')

p0 + geom_area(aes(y = pmin(y1,y2,y3,y4)), fill = 'gray60')

关于r - R 中具有线性约束的阴影多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com