我参与了 Ax = b
类型系统的解决方案,其中 A 是稀疏方阵,x 是未知向量(我必须计算它),b 是除最后一个元素为 1 之外的全零向量。
矩阵A的最后一行用于归一化,因此用1满足。
该系统的解是概率,因此条件 0<x(i)<1
必须受到尊重。
为了求解系统Matlab命令x = A \ b;
已使用。
该方法似乎运行良好,但有一种特殊情况,其中向量 x 也包含负值。向矩阵A的任意元素添加一个很小的值(10^-6),分辨率又满足条件。
我不是数学家,所以我不知道这是代码问题,还是矩阵 A 必须遵守某些属性才能保证解都在 0 到 1 之间。
最佳答案
听起来你真正想要的是:最小化 ||Ax-b||对于所有 x 均满足 x > 0。您可以使用函数 lsqlin 来做到这一点:http://www.mathworks.com/help/toolbox/optim/ug/lsqlin.html
“必须加1”是线性等式约束,正数是线性不等式约束。
与矩阵(非方阵)中的概率相关的问题是:http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5717139
关于Matlab - 稀疏矩阵系统分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488816/