回 帖 发 新 帖 刷新版面

主题:[讨论]求助

function linear(n); 
tic; 
format long g;
dlg=sprintf('Linear result');
disp(dlg);
h=1/n;
x0=0;
y0=0;
area=h^2/2;
nodesnum=(n+1)^2;
bnodenum=4*n;
bound=ones(bnodenum,1);
layercount=n+1;
% area 为单元三角形的面积,h为分段长度,(x0,y0)为起始点坐标
% nodesum为总节点的个数,bnodenum边界点的个数,bound存放边界点的矩阵
tb=[1/12  1/24  1/24;
    1/24  1/12  1/24;
    1/24  1/24  1/12]*(2*area);
% tb为单元质量矩阵
        com=[-h h 0;
             -h 0 h];
%this is mistaken.F.FFFFFF
ta=com'*com/(4*area);
% ta为单元刚度矩阵        
 areatemp=ones(3,3);
 templj=ones(2,3);
 stiff=zeros(nodesnum,nodesnum);
 mass=zeros(nodesnum,nodesnum);
 p=ones(4,1);
 ft=ones(3,1);
 st=ones(3,1);
for elenum=0:1:n^2-1
   col=mod(elenum,n);
   row=floor(elenum/n);
   p(1)=row*layercount+col+1;
   p(2)=p(1)+1;
   p(3)=p(2)+layercount;
   p(4)=p(1)+layercount;
   ft(1)=p(1);
   ft(2)=p(2);
   ft(3)=p(4);
   st(1)=p(3);
   st(2)=p(4);
   st(3)=p(2);
 %按次序取出每个三角形的坐标
 %stiff为刚度矩阵,mass为质量矩阵
 %ft存放下三角形节点,st存放上三角形节点
            for i=1:3
                for j=1:3
                    stiff(ft(i),ft(j))=stiff(ft(i),ft(j))+ta(i,j);
                    stiff(st(i),st(j))=stiff(st(i),st(j))+ta(i,j);
                    mass(ft(i),ft(j))=mass(ft(i),ft(j))+tb(i,j);
                    mass(st(i),st(j))=mass(st(i),st(j))+tb(i,j);
                 end         
              end
      
end
%按次序将得到的每个三角形单元刚度和载荷矩阵进行叠加
   prod=1;
   for k=1:nodesnum
      if (mod(k-1,n+1)==0) | (mod(k,n+1)==0)
         bound(prod)=k;   
         prod=prod+1;
      else
         for j=2:n
           if mod(k-j,n*(n+1))==0
              bound(prod)=k;
              prod=prod+1;              
           end
         end  
      end

   end
  %找出平面区域的边界点
j=0;    
   
for i=1:bnodenum
       stiff(bound(i)-j,:)=[];
       stiff(:,bound(i)-j)=[];
       mass(bound(i)-j,:)=[];
       mass(:,bound(i)-j)=[];   
       j=j+1;    
end
%去除边界
   d=sort(eig(stiff,mass));
   d(1:min(6,size(d,1)));
  fprintf('n=%2d \n ',n);
for i=1:min(6,size(d,1))
   fprintf('%20.14f \n',d(i));
end
程序运行是提示说n没有定义,大家能告诉我怎么改吗?

回复列表 (共1个回复)

沙发

看看你是怎么定义函数的!!!!!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册