在R中绘制sextic方程

时间:2014-06-29 11:22:46

标签: r draw equation

我想绘制方程式:(x ^ 2 + y ^ 2 -1)^ 3 - x ^ 2 * y ^ 3 = 0在R中(通过x作为参数) - 是可能的如果是这样 - 怎么样?我试图使用函数(x),但发现太难以转换它所以y只在它的一侧。

2 个答案:

答案 0 :(得分:1)

由于f(x,y)不是单值,因此轮廓绘图方法可能更好。这是ggplot的一种方式。

f <- function(x,y) (x^2 + y^2 -1)^3 - x^2*y^3
x <- seq(-2,2,0.01)
df <- expand.grid(x=x,y=x)
df$z <-with(df,f(x,y))
library(ggplot2)
ggplot(df,aes(x=x, y=y, z=z))+stat_contour(geom="path",breaks=0, col="red")

breaks=0的调用中设置stat_contour(...)只会导致绘制z=0的一个轮廓。

这是使用基础R的方式(从上面定义的df开始)。

library(reshape2)
m <- dcast(df,x~y,value.var="z")[-1]
contour(x,x,as.matrix(m),levels=0, col="red")

答案 1 :(得分:0)

这不是x的单值函数。

尝试x=0,然后变为(y^2 -1)^3 = 0,如果y为正或负1,则为真。如果x=1,则y为0或1。

它有点像x^2 + y^2 = 1,它是一个圆,您可以通过将其转换为r和theta的函数来绘制,然后r是theta的单值函数(从0到360度)

Wolfram Alpha爱你:

http://www.wolframalpha.com/input/?i=%28x%5E2+%2B+y%5E2+-1%29%5E3+-+x%5E2+y%5E3+%3D+0

但没有给出参数形式,也没有给出:

http://mathworld.wolfram.com/HeartCurve.html

所以你最好不要问一下maths stackexchange网站上是否有参数表格......