0

不等式 x3 <= sqrt(x1^2 + x2^2) をプロットしたいと思います。私の問題は、sqrt が主要な平方根のみを返すため、グラフの半分だけがプロットされることです。以下のコードを使用しました。

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 で 2 次コーンをプロットする必要があります。

4

1 に答える 1

0

この条件:

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 であり、各負の値は <=X です。

むしろあるべき

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

これは円錐の有効な不等式です (平方根は必要ありません!)

または、元のアイデアに従いたい場合は、両方のサブ条件が有効な x3 値 (正/負) についてチェックされていることを確認する必要があります。

df$ind = with(df,
              (x3>0  & x3 <=  sqrt(x1^2 + x2^2)) |
              (x3<=0 & x3 >= -sqrt(x1^2 + x2^2))
             )
于 2014-02-16T12:32:47.917 に答える