24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1067  |  回复: 16
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

limengiiii

银虫 (小有名气)

[交流] 【求助】MATLAB解矩阵方程

请教一个Matlab关于矩阵方程的问题
小弟近日一直在研究一个矩阵方程的MATLAB求解问题,百思不得其解,还请给位给点指示,问题描述如下:
方程形式为:(A+B*K)Z(A+B*K)'+(C+D*K)Z(C+D*K)'=a*Z
其中,A,B,C,D,K均为已知矩阵,Z为对称矩阵,a为一标量,目的是要求a的值
曾尝试用克罗内克积的形式来变换,但是处理不了对称矩阵的问题,还请各位多多指点!!!

[ Last edited by bslt on 2009-6-23 at 14:33 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
bslt(金币+2,VIP+0):感谢交流,欢迎常来。 8-7 19:12
bslt(金币+1,VIP+0):赞一个! 8-7 19:13
矩阵都是dim*dim方阵时Matlab code:

clc;
clear;
dim=10;
A=rand(dim);
B=rand(dim);
C=rand(dim);
D=rand(dim);
K=rand(dim);
S1=A+B*K;
S2=C+D*K;
%z不对称  
for j=1:dim
    for i=1:dim
        for j1=1:dim
            for i1=1:dim
                I=(j-1)*dim+i;
                J=(j1-1)*dim+i1;
                M1(I,J)=S1(i,i1)*S1(j,j1)+ S2(i,i1)*S2(j,j1);
            end
        end
    end
end
%z对称
M2=M1;
col=[];
for j=1:dim
    for i=1:j-1
        M2(:,(i-1)*dim+j)=M1(:,(i-1)*dim+j)+M1(:,(j-1)*dim+i);
        col=[col (j-1)*dim+i];
    end
end
M2(:,col)=[];
M3=M2;
row=[];
for j=1:dim
    for i=1:j-1
        M3((i-1)*dim+j,=(M2((i-1)*dim+j,+M2((j-1)*dim+i,)/2;
        row=[row (j-1)*dim+i];
    end
end
M3(row,=[];
a=eig(M3);
disp('a=')
disp(a)


M3 就是在z对称时7楼所说的的M. a是你要的结果.
没推出向量表示,所以当dim很大时比较慢, 如要做大型问题,
将所有for循环部分改成mex文件.  你算几个特殊的试试对不对
10楼2009-08-04 20:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 17 个回答

vflag

木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
bslt(金币+1,VIP+0):感谢交流。。。 6-29 19:52
Z如果也是变量的话可能不止一组解,设出来Z的上对角线元素,用循环一个一个套吧。
2楼2009-06-22 22:21:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vflag

木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
搞定没?搞定再说下哈。呵呵
3楼2009-06-23 09:37:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

limengiiii

银虫 (小有名气)

没搞定,的确Z是可以任意解的,关键是求标量a的值,就像解普通矩阵方程似的,AX=b,要求X为非零解,必须要使得A的行列式为零,这个维数较低时可以用手算出来,但维数太高时必须用MATLAB来解答,可惜...
4楼2009-06-23 10:01:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见