2012-10-03 129 views
7

我試圖繪製R中的以下式隱式:繪製隱函數

1 = X^2 + 4 *(Y^2)+ X * Y

這應該是橢圓形。我想隨機抽樣x值,然後根據這些值生成圖。

Here's一個相關的線程,但那裏的解決方案似乎是特定於3D案例。這個問題已經對我所期望的谷歌搜索更具抵抗性,所以也許R語言會調用其他隱式公式。

在此先感謝!

+0

@mnel。你的版本是正確的。取消刪除! –

回答

11

你可能不瞭解的兩件事。當與該技術繪製隱函數,你需要的所有條件移到函數的RHS讓你的隱函數變爲:

0 = -1+ x^2 + 4*(y^2) + x*y 

然後使用零輪廓值纔有意義:

x<-seq(-1.1,1.1,length=1000) 
y<-seq(-1,1,length=1000) 
z<-outer(x,y,function(x,y) 4*y^2+x^2+x*y -1) 
contour(x,y,z,levels=0) 

我在第一個版本上遇到了錯誤的標誌。 @ mnels'是正確的。

enter image description here

+0

是的,但是他對「隨機抽樣x」的請求呢?我想知道他是否想要使用你的方法,但是使用'x <-runif(1000,-1.1,1.1)'和求解'y'來生成橢圓上的點。或者,'sfsmisc :: ellipsePoints'怎麼樣? –

+0

說實話,我沒有注意到問題的「隨機」x部分。 「解決y」需要獲得二次方的「雙方」。 'sfmisc :: ellipsePoints'似乎不能爲我提供一個即時(或甚至延遲)的解決方案。我需要返回並計算半軸的長度,中心和角度,然後我沒有辦法使用它來生成任意x值的解決方案。 –