【问题标题】:Plot the inequality in R绘制 R 中的不等式
【发布时间】:2014-03-15 16:21:43
【问题描述】:

我想绘制不等式 x3

x1=x2=seq(-20,20,length=100);
x3=seq(-30,30,length=100);
df = expand.grid(x1=x1,x2=x2,x3=x3)
df$ind = with(df,x3 <= sqrt(x1^2 + x2^2) | x3 >= -sqrt(x1^2 + x2^2))
plot3d(df$x1,df$x2,df$x3,type='n')
with(df[df$ind, ], points3d(x, y, z, color = 'blue', size = 2))

但它并没有像我预期的那样工作。它应该在 R^3 中绘制一个二阶圆锥。

【问题讨论】:

    标签: r plot inequality


    【解决方案1】:

    这个条件:

    df$ind = with(df,x3 <= sqrt(x1^2 + x2^2) | x3 >= -sqrt(x1^2 + x2^2))
    

    总是正确的,因为它等价于

    X = x1^2 + x2^2
    df$ind = with(df,x3 <= X | x3 >= -X)
    

    但 X 总是非负数,所以每个正数 x3 是 >= -X 并且每个负数是

    应该是这样的

    df$ind = with(df,x3^2 <= x1^2 + x2^2)
    

    这是一个有效的圆锥不等式(不需要 sqrt!)

    或者,如果您想遵循您最初的想法,您必须确保检查两个子条件的有效 x3 值(正/负):

    df$ind = with(df,
                  (x3>0  & x3 <=  sqrt(x1^2 + x2^2)) |
                  (x3<=0 & x3 >= -sqrt(x1^2 + x2^2))
                 )
    

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多