3

私はRを初めて使用し、2次行列方程式をプロットする必要があります。

x^T A x + b^T x + c = 0

R ^ 2で、Aは2x2、ba 2x1、およびca定数です。この方程式は、ポイントのクラスを定義する境界用です。x0 = -6...6、の境界をプロットする必要がありますx1 = -4...6。私の最初の考えは、たくさんのポイントを生成し、それらがゼロである場所を確認することでしたが、それは数値間の増分に依存します(おそらく、どのポイントがゼロであるかを推測するつもりはありません)。

たくさんのポイントを生成して、それがゼロである場所を確認したり、乗算したりするよりも良い方法はありますか?どんな助けでも大歓迎です、

ありがとうございました。

4

1 に答える 1

5

対称行列があると仮定するとA

例えば

 # A = | a    b/2 |
 #     | b/2  c   |

方程式が円錐曲線を表す場合、conicsパッケージを使用できます

必要なのは、c(a,b,c,d,e,f)表す係数のベクトルです

a.x^2 + b*x*y + c*y^2 + d*x + e*y + f

あなたの場合、あなたが持っているとしましょう

 A <- matrix(c(2,1,1,2))

 B <- c(-20,-28)
 C <- 10


# create the vector
v <- append(c(diag(A),B,C),A[lower.tri(A)]*2), 1)



 conicPlot(v)

ここに画像の説明を入力

multiplication outを単純な関数に簡単にラップできます

# note this does no checking for symmetry or validity of arguments

expand.conic <- function(A, B, C){
 append(c(diag(A),B,C),A[lower.tri(A)]*2), 1)
}
于 2013-02-21T01:56:51.080 に答える