作业帮 > 综合 > 作业

求matlab 代码解方程组 AX=X

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/06 05:54:37
求matlab 代码解方程组 AX=X
如题,现问题如下,X是一个向量,设X =[ p1,p2,p3,p4], A是一个4*4 的矩阵,已知,方程为:
[p1, p2, p3, p4] = [p1, p2, p3, p4]A;
p1 + p2 + p3 + p4 =1;
求问 X的值。 四个未知量,两个方程,问怎么求X
假设 A={ 0 0.6 0.4 0;
0.4 0 0 0. 6;
0.4 0.6 0 0;
0.4 0.6 0 0; }
求matlab 代码解方程组 AX=X
A=[ 0  0.6  0.4  0;
    0.4  0   0 0.6;
    0.4  0.6  0  0;
    0.4  0.6  0  0; ]; % 这是矩阵A, 要求的是A'*p'=p', 即(A'-E)*p'=0并且[1,1,1,1]*p'=1, 这样就是下边的
p=[[A'-eye(4);ones(1,4)]\[0;0;0;0;1]]' % eye(4)是单位矩阵, ones(1,4)=[1,1,1,1]输出:
p =
    0.2857    0.3750    0.1143    0.2250分别对应p1, p2, p3, p4.

再问: p=[[A'-eye(4);ones(1,4)]\[0;0;0;0;1]]'里面除数是什么意思?为什么四个0,一个1?
如果我的A很大,有100*100,该怎么写呢?
p=[[A'-eye(100);ones(1,100)]\[0;0;0;...0;0;0;1]]'?
再答: 其实是广义逆运算, 如果是100,  就不能图省事了. 应该写成: p=[[A'-eye(100);ones(1,100)]\[zeros(99,1);1]]'注释中已经解释了, 我再写一下, 是其实你的问题的也可以用矩阵的初等行变换实现:
rref([[A'-eye(4);ones(1,4)],[zeros(4,1);1]])行最简型的结果是:ans =
    1.0000         0         0         0    0.2857
         0    1.0000         0         0    0.3750
         0         0    1.0000         0    0.1143
         0         0         0    1.0000    0.2250
         0         0         0         0         0显然将解对号入座就行了. 学过线性代数用初等行变换求方程的解的话相信你能看明白上边的矩阵是什么意思.
再问: 多谢