作业帮 > 数学 > 作业

matlab求解矩阵,可否限定矩阵中的数的取值范围

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/18 02:24:12
matlab求解矩阵,可否限定矩阵中的数的取值范围
我想用matlab来求解一个矩阵(马尔可夫转移矩阵),可是求解出的结果有误差,经检查
在允许范围内.后来发现,矩阵中的数都要求在[0,1]之间,请问用matlab可否对此做限
制,比如让小于0的数取为0,大于1的数取为1?
请问可以再具体点吗?提供具体的代码之类的。
之前我的代码是:
A=[75,0,0,17.5,0,0,7.5,0,0;0,75,0,0,17.5,0,0,7.5,0;64.5,0,0,24,0,0,11.5,0,0;0,64.5,0,0,24,0,0,11.5,0;55.5,0,0,29.2,0,0,15.3,0,0;0,55.5,0,0,29.2,0,0,15.3,0;1,1,1,0,0,0,0,0,0;0,0,0,1,1,1,0,0,0;0,0,0,0,0,0,1,1,1]
b=[64.5;24;55.5;29.2;47.7;33.2;1;1;1]
X=A\b
得到的结果是:
X =
0.8546
0.0913
0.0541
0.0854
1.0554
-0.1408
-0.1454
-0.1754
1.3208
对于zhjstef的回答的话,我之前想过觉得是不行的,因为计算过程中,如果前面的值被强制改为0或者1了,那么后面的值肯定也会变化的。如果仅仅在计算结果出来之后再去改,那肯定就有很大的误差了阿。
我的想法是:已知A和b求出X。
但是希望求出的X中的值都在[0,1]之间。如果超出了范围就将他们约束在这个范围内。又不是简单的设置为0和1。
因为比如将1.0554强制为1后,其他的值肯定要有变化了。
不知道该怎么办?
没看懂你这是转移概率矩阵还是转移速度矩阵
概率矩阵的话,无论几次方还是满足0,1的啊,无需特意限制
速度矩阵的话,大于1了就大了呗,有对应理论...