Matlab - 稀疏矩阵系统分辨率

标签 matlab linear-algebra sparse-matrix markov-chains

我参与了 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/

相关文章:

matlab - 两个张量的双点积

matlab - 如何在Matlab中使用fwrite和fread?

python - 从子矩阵列表创建稀疏矩阵 (Python)

matlab - 展开和裁剪矩阵

c++ - 使用 Lapack 的 dgesv 求解线性方程组

python - 将用-v7.3(HDF5)保存的Matlab稀疏矩阵加载到Python中并对其进行操作

python - 有效地将大量 SciPy 稀疏矩阵条目设置为零

algorithm - 如何有效地存储具有高度冗余值的矩阵

matlab - 在 Matlab 中估计样本协方差矩阵特征值的方差

matlab - 给定一个数字,快速检查它在哪个区间?