明天的事情
2008-03-19, 18:32
ne=5;
np=4;
syms FX3 FY3 FX4 FY4;
xyp=[0 6.4 0 0 10000 0;4.8 6.4 0 0 0 0;0 0 1 1 FX3 FY3;4.8 0 1 1 FX4 FY4]
syms E
element=[1 2 E 38e-4;1 3 E 5e-3;2 4 E 5e-3;1 4 E 65e-4;2 3 E 65e-4]
kk=zeros(2*np,2*np);
f=zeros(2*np,1);
ElementSave=zeros(ne,3);
for lop=1:ne
i=element(lop,1);
j=element(lop,2);
x=xyp(i,1);
y=xyp(i,2);
z=xyp(j,1);
v=xyp(j,2);
dl=sqrt((y-x)^2+(v-z)^2);
s=(v-z)/dl;
c=(y-x)/dl;
ea=element(lop,3)*element(lop,4)/dl;
ElementSave(lop,1)=s;
ElementSave(lop,2)=c;
ElementSave(lop,3)=ea;
ek=2e6*ea*[c*c, c*s, -c*c,-c*s; s*c, s*s, -c*s,-s*s; -c*c, -c*s, c*c, c*s; -c*s, -s*s, s*c, s*s];
kk(2*i-1:2*i,2*i-1:2*i)= kk(2*i-1:2*i,2*i-1:2*i)+ek(1:2,1:2);
kk(2*i-1:2*i,2*j-1:2*j)= kk(2*i-1:2*i,2*j-1:2*j)+ek(1:2,3:4);
kk(2*j-1:2*j,2*i-1:2*i)= kk(2*j-1:2*j,2*i-1:2*i)+ek(3:4,1:2);
kk(2*j-1:2*j,2*j-1:2*j)= kk(2*j-1:2*j,2*j-1:2*j)+ek(3:4,3:4);
end
for lop=1:np
f(2*lop-1,1)=f(2*lop-1,1)+xyp(lop,5);
f(2*lop,1)=f(2*lop,1)+xyp(lop,6);
if xyp(lop,3)>=1
kk(2*lop-1,2*lop-1)=10000*kk(2*lop-1,2*lop-1);
end
if xyp(lop,4)>=1
kk(2*lop,2*lop)=10000*kk(2*lop,2*lop);
end
end
u=inv(kk)*f
for lop=1:ne
i=element(lop,1);
j=element(lop,2);
s=ElementSave(lop,1);
c=ElementSave(lop,2);
ea=ElementSave(lop,3);
InnerForce=ea*((u(2*j-1)-u(2*i-1))*c+(u(2*j)-u(2*i))*s)
end
错误信息是:
??? Error using ==> subsindex
Function 'subsindex' is not defined for values of class 'sym'.
Error in ==> you at 13
x=xyp(i,1);
np=4;
syms FX3 FY3 FX4 FY4;
xyp=[0 6.4 0 0 10000 0;4.8 6.4 0 0 0 0;0 0 1 1 FX3 FY3;4.8 0 1 1 FX4 FY4]
syms E
element=[1 2 E 38e-4;1 3 E 5e-3;2 4 E 5e-3;1 4 E 65e-4;2 3 E 65e-4]
kk=zeros(2*np,2*np);
f=zeros(2*np,1);
ElementSave=zeros(ne,3);
for lop=1:ne
i=element(lop,1);
j=element(lop,2);
x=xyp(i,1);
y=xyp(i,2);
z=xyp(j,1);
v=xyp(j,2);
dl=sqrt((y-x)^2+(v-z)^2);
s=(v-z)/dl;
c=(y-x)/dl;
ea=element(lop,3)*element(lop,4)/dl;
ElementSave(lop,1)=s;
ElementSave(lop,2)=c;
ElementSave(lop,3)=ea;
ek=2e6*ea*[c*c, c*s, -c*c,-c*s; s*c, s*s, -c*s,-s*s; -c*c, -c*s, c*c, c*s; -c*s, -s*s, s*c, s*s];
kk(2*i-1:2*i,2*i-1:2*i)= kk(2*i-1:2*i,2*i-1:2*i)+ek(1:2,1:2);
kk(2*i-1:2*i,2*j-1:2*j)= kk(2*i-1:2*i,2*j-1:2*j)+ek(1:2,3:4);
kk(2*j-1:2*j,2*i-1:2*i)= kk(2*j-1:2*j,2*i-1:2*i)+ek(3:4,1:2);
kk(2*j-1:2*j,2*j-1:2*j)= kk(2*j-1:2*j,2*j-1:2*j)+ek(3:4,3:4);
end
for lop=1:np
f(2*lop-1,1)=f(2*lop-1,1)+xyp(lop,5);
f(2*lop,1)=f(2*lop,1)+xyp(lop,6);
if xyp(lop,3)>=1
kk(2*lop-1,2*lop-1)=10000*kk(2*lop-1,2*lop-1);
end
if xyp(lop,4)>=1
kk(2*lop,2*lop)=10000*kk(2*lop,2*lop);
end
end
u=inv(kk)*f
for lop=1:ne
i=element(lop,1);
j=element(lop,2);
s=ElementSave(lop,1);
c=ElementSave(lop,2);
ea=ElementSave(lop,3);
InnerForce=ea*((u(2*j-1)-u(2*i-1))*c+(u(2*j)-u(2*i))*s)
end
错误信息是:
??? Error using ==> subsindex
Function 'subsindex' is not defined for values of class 'sym'.
Error in ==> you at 13
x=xyp(i,1);