我試圖求解方程AX = B
在R.如何在R中得到非負解的矩陣?
我有兩個矩陣A和B:
A = matrix(c(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,
0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0), byrow = T, nrow = 10, ncol = 16)
B = matrix(c(1900,2799,3096,3297,3782,4272,7783,10881,7259,30551), nrow = 10, ncol = 1)
我的問題是,如何解決AX = B
和保證非負解?我正在解決的數值(X1, X2,...X15, X16
)是人口數字,所以他們不能是負數。理想情況下,它們也是整數值,但一次只能做一件事。
有沒有一種簡單的方法來做到這一點在R?
我找到了一種方法來做到這一點here,但它並沒有產生積極的結果,所有X
這是我所追求的。
這似乎是更多的是數學問題比編程問題。也許你應該在[Math](http://math.stackexchange.com/)或[CrossValidated](http://stats.stackexchange.com/)上提問? – r2evans
@ r2evans我比編程更關心數學本身。我希望有人會知道如何解決這個問題R. – ultimate8
我不明白。如果代數給你一個負值,它是負的。沒有辦法強制它是積極的。 – Roland