我试图求解方程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