我想绘制方程式:(x ^ 2 + y ^ 2 -1)^ 3 - x ^ 2 * y ^ 3 = 0在R中(通过x作为参数) - 是可能的如果是这样 - 怎么样?我试图使用函数(x),但发现太难以转换它所以y只在它的一侧。
答案 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网站上是否有参数表格......