2015-06-03 91 views
1

請我想要的形式來解決以下使用R-軟件7x2矩陣問題:如何求解線性方程組中的R與方形矩陣

A=array(c(5.54,0.96,1.59,2.07,0.73,10.64,8.28,1.41,3.77,3.11,3.74,2.93,8.29,3.33), c(7,2)) 
A 
#  [,1] [,2] 
#[1,] 5.54 1.41 
#[2,] 0.96 3.77 
#[3,] 1.59 3.11 
#[4,] 2.07 3.74 
#[5,] 0.73 2.93 
#[6,] 10.64 8.29 
#[7,] 8.28 3.33 
b=c(80814.25,34334.75,47921.75,59514.25,26981.25,63010.25,46646.25) 
b 
#[1] 80814.25 34334.75 47921.75 59514.25 26981.25 63010.25 46646.25 
solve (A,b) 
Error in solve.default(A, b) : 'a' (7 x 2) must be square 
A %*% solve (A,b) 
Error in solve.default(A, b) : 'a' (7 x 2) must be square 

你覺得我能做些什麼來解決問題。我需要解決兩個變量,x1和x2,如上所述在7x2矩陣中。

回答

3

看來你在使用solve時,它需要一個方形輸入。在?solve中,它討論瞭如何將qr.solve用於非方形矩陣。

qr.solve(A,b) 

     [,1] 
[1,] 3741.208 
[2,] 6552.174 

您可能想檢查這是否正確適合您的目的。還有其他方法可以解決這些類型的問題。這雖然可以幫助你。

+0

謝謝你這麼多qr.solve工作 –

1

corpcor包提供了一個pseudoinverse功能查找長方形矩陣的逆:

library(corpcor) 
pseudoinverse(A) 
      [,1]  [,2]  [,3]  [,4]  [,5]  [,6] 
[1,] 0.06271597 -0.05067830 -0.02922597 -0.03265713 -0.03964039 0.0230086 
[2,] -0.05845856 0.08551514 0.05661287 0.06532450 0.06674243 0.0391552 
      [,7] 
[1,] 0.07239133 
[2,] -0.05420334 

pseudoinverse(A) %*% b 
     [,1] 
[1,] 3741.208 
[2,] 6552.174