2015-09-22 69 views
0

在R中是否有任何包中給出3點的二次方程或是否必須手動執行?查找在R中給出3個點的二次方程

我有一個列表,其中包含x的值和包含y值的列表。

x = tail(mylist_x,3) 
y = tail(mylist_y,3) 
+0

@Bathsheba謝謝!有沒有例子? – zinon

+0

我不知道** R包**,但可以告訴你解決這個問題的數學方法,以及失敗時該方法的侷限性。我應該在答案部分告訴你嗎? – surajsn

回答

13

使用線性迴歸:

x <- 1:3 
y <- 0.5 * x^2 + 3 * x - 2 

coef(lm(y ~ poly(x, 2, raw = TRUE))) 
#(Intercept) poly(x, 2, raw = TRUE)1 poly(x, 2, raw = TRUE)2 
#  -2.0      3.0      0.5 

或在評論中指出:

solve(cbind(1, x, x^2), y) 
#  x  
#-2.0 3.0 0.5 

注意lm可以處理一些邊緣的情況下(例如,三個非唯一點) ,而solve不能。

+0

我糾正了,再加上一個。出於興趣,它是否適用於不明顯或者直線的點? – Bathsheba

+0

@Roland,我只有x和y的值。我沒有任何方程式。我想找到它。 – zinon

+0

@Bathsheba測試它。如果您將beta2設置爲零,則迴歸會給您一個零。 – Roland