matlab求解矩阵,可否限定矩阵中的数的取值范围我想用matlab来求解一个矩阵(马尔可夫转移矩阵),可是求解出的结果有误差,经检查在允许范围内.后来发现,矩阵中的数都要求在[0,1]之间,请问

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/13 11:09:56
matlab求解矩阵,可否限定矩阵中的数的取值范围我想用matlab来求解一个矩阵(马尔可夫转移矩阵),可是求解出的结果有误差,经检查在允许范围内.后来发现,矩阵中的数都要求在[0,1]之间,请问
xUNW~.!r6E*+ Qll`b xy9gWw ҫVi&o߿XyOk.NYJ/|L2u0CERMsM%h-R=uDz&J\݀$l14Zް QhAf$ڇӣ2-5Y&)izsR$ $L NIzbշZ=dح8l[m /,y῭_-$r7{(pkۨ%ָ"ʹO9.Jv9S2o [rN"I}LaP:*ⶪ bc-'Q j0(Bweesu9$B,M ]G싦 ݒ?"FVk{ivshsɾ^\ě]mI9i3^w.+ x#-ZISОS.9OKOlLe ~w|JG6M< h;m. ٨ݤVK@ :t5C]b9B+'{zrM}0؁Kj?u=tb؜zHҫ:(t$ `U ?HxƾbxșW\f {LF1%_h@y,p$MryU}O\ H7A%!_<ˎ@}Cף"͈ i3xM MdIx&6xUdMG @m Zv~P(Κl7J}M>og~c?5Vޥѐ:}o!@h=6ՃJi͸Ő87ibmtˎ)GX+M3L!V P:%?-4

matlab求解矩阵,可否限定矩阵中的数的取值范围我想用matlab来求解一个矩阵(马尔可夫转移矩阵),可是求解出的结果有误差,经检查在允许范围内.后来发现,矩阵中的数都要求在[0,1]之间,请问
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后,其他的值肯定要有变化了。
不知道该怎么办?

matlab求解矩阵,可否限定矩阵中的数的取值范围我想用matlab来求解一个矩阵(马尔可夫转移矩阵),可是求解出的结果有误差,经检查在允许范围内.后来发现,矩阵中的数都要求在[0,1]之间,请问
没看懂你这是转移概率矩阵还是转移速度矩阵
概率矩阵的话,无论几次方还是满足0,1的啊,无需特意限制
速度矩阵的话,大于1了就大了呗,有对应理论...

可以啊,实现元素访问,A(find(A>1)),就可以找到矩阵A里大于1的元素,然后把他们赋值为1就行了

X=A\b,这是一个左除的问题,相当于AX=b,故应该是X=inv(A)*b,你这里所说的究竟是要对哪一个矩阵的值进行限定?

x=(x<1).*x;
x=(x>0).*x;
难道我的不够明白么?你要的到底是什么数满足0-1条件?如果是x,那么就用我的式子,如果是其他,请参照x的思路