在R中绘制矩阵方程

Rau*_*fio 3 plot r matrix parametric-equations

我是R的新手,我需要绘制二次矩阵方程:

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

在R ^ 2中,A是2x2,ba 2x1和ca常数.该等式用于定义点类的边界.我需要绘制边界x0 = -6...6,x1 = -4...6.我的第一个想法是生成一堆点并看到它们在零的位置,但它取决于数字之间的增量(很可能我不会猜测哪些点为零).

有没有一种更好的方法,而不仅仅是生成一堆点,看看它在哪里为零或乘以它?任何帮助将非常感激,

谢谢.

mne*_*nel 5

假设你有一个对称矩阵A,

例如

 # A = | a    b/2 |
 #     | b/2  c   |
Run Code Online (Sandbox Code Playgroud)

并且您的等式代表圆锥曲线,您可以使用该conics

你需要的是系数c(a,b,c,d,e,f)表示的向量

a.x^2 + b*x*y + c*y^2 + d*x + e*y + f
Run Code Online (Sandbox Code Playgroud)

在你的情况下,说你有

 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可以轻松地将其包装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)
}
Run Code Online (Sandbox Code Playgroud)