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);