- 积分
- 0
- 注册时间
- 2010-2-23
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2010-4-29 14:50:21
|
显示全部楼层
来自 台湾
本帖最后由 武神裝攻 于 2010-4-29 15:26 编辑
小弟有一范例类似
Q=[3 2 1;2 3 2;1 2 3];
P=[3;1;2;4];
利用条件S求P*Q依对角化排列
S=7取3*3
S=6取3*3中1.3的2*2
S=5取3*3中2.3的2*2
S=4取3*3中1.5的2*2
S=3取3*3中3的1*1
S=2取3*3中2的1*1
S=1取3*3中1的1*1
程序:
S=[7;7;1;6];
NO=[1;2;3;4];
K=length(NO)*3;
P=[3;1;2;4];
Q=[3 2 1;2 3 2;1 2 3];
zp=zeros(K,K);
for a=1:length(NO)
zz=(P(a,1)*Q);
AA=0; AB=0; AC=0; BA=0; BB=0; BC=0; CA=0; CB=0; CC=0;
switch S(a,:)
case 6
AA=zz(1,1);
AC=zz(1,3);
CA=zz(3,1);
CC=zz(3,3);
case 5
BB=zz(2,2);
BC=zz(2,3);
CB=zz(3,2);
CC=zz(3,3);
case 4
AA=zz(1,1);
AB=zz(1,2);
BA=zz(2,1);
BB=zz(2,2);
case 3
CC=zz(3,3);
case 2
BB=zz(2,2);
case 1
AA=zz(1,1);
otherwise
AA=zz(1,1);
AB=zz(1,2);
AC=zz(1,3);
BA=zz(2,1);
BB=zz(2,2);
BC=zz(2,3);
CA=zz(3,1);
CB=zz(3,2);
CC=zz(3,3);
end
zp(a*3-2,a*3-2)=AA;
zp(a*3-2,a*3-1)=AB;
zp(a*3-2,a*3)=AC;
zp(a*3-1,a*3-2)=BA;
zp(a*3-1,a*3-1)=BB;
zp(a*3-1,a*3)=BC;
zp(a*3,a*3-2)=CA;
zp(a*3,a*3-1)=CB;
zp(a*3,a*3)=CC;
end
恳请板上英雄大力相助完成程序 |
|