matlab 怎么定义 在线苦等牛人的你

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:10:44
A=[6.25 -5 -1.25 0 0;-5 10.834 -1.667 -1.667 -2.5;-1.25 -1.667 12.917 -10 0;0 -1.667 -10 12.917 -1.25;0 -2.5 0 -1.25 3.75];
B=[-18.75 15 3.75 0 0;15 -32.5 5 5 7.5;3.75 5 -38.75 30 0;0 5 30 -38.75 3.75;0 7.5 0 3.75 -11.25];
e(1)=1.06;f(1)=0;
e(2)=1;f(2)=0;
e(3)=1;f(3)=0;
e(4)=1;f(4)=0;
e(5)=1;f(5)=0;
PO(2)=0.2;PO(3)=-0.45;PO(4)=-0.4;PO(5)=-0.6;
QO(2)=0.2;QO(3)=-0.15;QO(4)=-0.05;QO(5)=-0.1;
for i=2:5
P(i)=e(i)*(A(i,:)*e(:)-B(i,:)*f(:))+f(i)*(A(i,:)*f(:)+B(i,:)*e(:));
Q(i)=f(i)*(A(i,:)*e(:)-B(i,:)*f(:))-e(i)*(A(i,:)*f(:)+B(i,:)*e(:));
end
for i=2:5
OP(i)=PO(i)-P(i);
OQ(i)=QO(i)-Q(i);
end
for i=2:5;
c(i,i)=(P(i)-j*Q(i))/(e(i)+j*f(i));
a(i,i)=real(c(i,i));b(i,i)=imag(c(i,i));
H(i,:)=A(i,:)*f(i)-B(i,:)*e(i);
N(i,:)=B(i,:)*f(i)+A(i,:)*e(i);
G(i,:)=-N(i,:);
L(i,:)=H(i,:);
h(i,i)=H(i,i)+b(i,i);
n(i,i)=N(i,i)+a(i,i);<

我觉得你的P(i),Q(i)有问题,按你的程序应该都是1*4的数组,你是不是应该把A(i,:)*e(:)的顺序换一下?

程序出错 c a b n~~的定义都成了(2,2) 但是我要的是(5,5) 貌似在21行前都可以 就不知道怎么回事 这个程序有时候也能成功 结果就是下面

>> JL

JL =

Columns 1 through 5

191/3994 -86/5395 122/3473 -173/14775 268/7115
167/9335 207/3857 107/7898 164/4035 128/8879
122/3473 -173/14775 443/5157 -127/4435 114/1505
107/7898 164/4035 335/10836 1049/11311 184/6705
268/7115 -179/14257 114/1505 -360/14257 281/3050
79/5480 115/2659 184/6705 156/1895 64/1949
129/2903 -84/5671 232/4767 -92/5671 338/6055
167/9981 77/1534 127/6986 116/2127 99/4816