马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我通过解方程,得到这样一个根矩阵
r
r =
1.0e+004 *
Columns 1 through 6
0 + 0.0836i 0.0000 + 0.0907i 0.0000 + 0.1038i 0.0000 + 0.1170i 0.0000 + 0.1293i -0.0000 + 0.1408i
0 - 0.0836i 0.0000 - 0.0907i 0.0000 - 0.1038i 0.0000 - 0.1170i 0.0000 - 0.1293i -0.0000 - 0.1408i
0.0002 0.0353 0.0615 0.0819 -0.0987 -0.1133
-0.0002 -0.0353 -0.0615 -0.0819 0.0987 0.1133
0 + 0.0002i 0.0028 0.0069 0.0107 0.0144 0.0181
0 - 0.0002i -0.0028 -0.0069 -0.0107 -0.0144 -0.0181
Columns 7 through 12
-0.0000 + 0.1515i -0.0000 + 0.1615i -0.0000 + 0.1710i -0.0000 + 0.1801i -0.1692 -0.1783
-0.0000 - 0.1515i -0.0000 - 0.1615i -0.0000 - 0.1710i -0.0000 - 0.1801i 0.0000 + 0.1886i -0.0000 + 0.1969i
-0.1264 -0.1383 -0.1493 -0.1595 0.0000 - 0.1886i -0.0000 - 0.1969i
0.1264 0.1383 0.1493 0.1595 0.1692 0.1783
0.0218 0.0255 0.0292 0.0328 0.0365 0.0401
-0.0218 -0.0255 -0.0292 -0.0328 -0.0365 -0.0401
这是3对共轭根
我需要把大于0实根全部放在一行,小于0实根放在一行,对应大于0复根放一行,小于0复根放一行,请问可以如何实现。
我的算法
for num=1:6;
for cnt=1:12
tf(num,cnt)=isreal(r(num,cnt));
if((tf(num,cnt) ==0) &&(real(r(num,cnt))>0));
rs(1,cnt) =r(num,cnt);
elseif((tf(num,cnt) ==0) &&(real(r(num,cnt))<0));
rs(2,cnt) =r(num,cnt);
elseif((tf(num,cnt)==1) &&(real(r(num,cnt))>0));
rs(3,cnt) =r(num,cnt);
elseif(( tf(num,cnt)==1) &&(real(r(num,cnt))>0));
rs(4,cnt) =r(num,cnt);
elseif(( tf(num,cnt)==1) &&(real(r(num,cnt))<0));
rs(5,cnt) =r(num,cnt);
else(( tf(num,cnt)==1) &&(real(r(num,cnt))<0));
rs(6,cnt) =r(num,cnt);
end
end
end
这里面的问题,有两个实根,if没办法区分出怎么放,要怎么再判断一下,把较大的实根放一起?
|