matlab 为什么我的程序一下可以运行 一下又不可以

来源:百度知道 编辑:UC知道 时间:2024/06/18 10:03:14
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);

matlab是case sensitive的
h和H是两个不同的变量

还有就是你的最后一个for循环不应该在最后结束,应该把end放在
L(i,i)=L(i,i)-B(i,i);
的后面

楼上说得对,end应该放在l(i,i)=L(i,i)-b(i,i)后,同时在最后一个for前加上b=zeros(5,5)(这个好像是上一次的问题了,呵呵不好意思啊,我不是一直在线,这个问题,楼上解决挺好的了,建议给他加分哦,还有以后你可以悬赏0分,把网页发给我,我要会的话尽量帮你了!毕业设计,可要努力哦)