24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1057  |  回复: 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的回帖

mao_kun

新虫 (初入文坛)

求解

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
suton(金币+1,VIP+0):谢谢交流! 10-17 15:26
这个矩阵方程应不难求解,因为矩阵方程Kronecker乘积后,所求的解应是对称的,求解的MATLAB程序如下:
function [a,Z]=stomatequ(S1,S2)
%(A+B*K)*Z*(A+B*K)'+(C+D*K)*Z*(C+D*K)'=a*Z
% 其中,A,B,C,D,K均为已知矩阵,Z为对称矩阵,a为一标量,目的是要求a的值
% A=rand(dim);B=rand(dim);C=rand(dim);D=rand(dim);
% K=rand(dim);S1=A+B*K;S2=C+D*K;
m=size(S1,2);
A1=kron(S1,S1);
A2=kron(S2,S2);
A3=A1+A2;
[lamdvec,lamd]=eig(A3);
lamd=diag(lamd);
z=lamdvec(:,1);
Z=reshape(z,m,m);
a=lamd(1);
end

其中a和Z是相对应的,这样的解应有dim组(dim为系统的维数)。
14楼2009-10-11 23:19:53
已阅   回复此楼   关注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的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见