www.pudn.com > zhichixiangliangjijiemian.rar > SHAPE.M


function [phi,dphix,dphiy] = shape(gpos,dmax,x,v,dm) 
% EFG shape function and it's derivative with linear base 
L = length(v); 
won = ones(1,L); 
nv = x(1:2,v); 
nvo=nv(1,:)+nv(2,:); 
nv1=nv(1,:)-nv(2,:); 
p = [won;nvo;nv1]; 
dif = gpos*won-nv; 
t = dm(1:2,v)/dmax; 
 
% WEIGHTS--W and dw are vectors 
[w,dwdx,dwdy] = cubwgt(dif,t,v,dmax,dm); 
B = p.*[w;w;w]; 
pp = zeros(3); 
aa = zeros(3); 
daax = zeros(3); 
daay = zeros(3); 
for i=1:L 
pp = p(1:3,i)*p(1:3,i)'; 
aa = aa+w(1,i)*pp; 
daax = daax+dwdx(1,i)*pp; 
daay = daay+dwdy(1,i)*pp; 
end 
 
gpos1=gpos(1,1)+gpos(2,1); 
gpos2=gpos(1,1)-gpos(2,1); 
pg = [1 gpos1 gpos2]; 
Ainv = inv(aa); 
phi = pg*Ainv*B; 
dbx = p.*[dwdx;dwdx;dwdx]; 
dby = p.*[dwdy;dwdy;dwdy]; 
dax = -Ainv *(daax*Ainv); 
day = -Ainv *(daay*Ainv); 
dphix = [0,1,1]*Ainv*B + pg*(dax*B + Ainv*dbx); 
dphiy = [0,1,-1]*Ainv*B + pg*(day*B + Ainv*dby);