No BSD License  

Highlights from
Several kinds of Mathematical examples!

from Several kinds of Mathematical examples! by Giovani Tonel
Here there are several kinds of Mathematical problems!

mesh01(p,e,el)
function [p1,e1,el1] = mesh01(p,e,el)
% Eckart Gekeler, Universitaet Stuttgart, Release 8.4.05
% uniform mesh refinement for edges, triangular and
% quadrangular meshs

[K,L] = size(p);
[M,N] = size(el);
if M == 2
   p1  = zeros(K,N);
   el1 = zeros(M,2*N);
   R   = [1:2];
   for I = 1:N
      L1 = L+1;
      el1(:,2*(I-1)+R) = [el(1,I),       L1;
                               L1,  el(2,I)];
      J = el(1:2,I);
      p1(:,I)= (p(1:K,J(1))+p(1:K,J(2)))/2;
      L = L+1;
   end
end
if M == 3
   p1  = zeros(K,3*N);
   el1 = zeros(M,4*N);
   R   = [1:4]; S = [1:3];
   for I = 1:N
      L1 = L+1; L2 = L+2; L3 = L+3;
      el1(:,4*(I-1)+R) = [el(1,I),      L1,      L3,  L1;
                               L1, el(2,I),      L2,  L2;
                               L3,      L2, el(3,I),  L3];
      J = el(1:3,I);
      p1(:,3*(I-1)+S)=[ (p(1:K,J(1))+p(1:K,J(2)))/2, ...
                        (p(1:K,J(2))+p(1:K,J(3)))/2, ...
                        (p(1:K,J(3))+p(1:K,J(1)))/2];
      L = L+3;
   end
end
if M == 4
   p1 = zeros(K,4*N);
   el1 = zeros(M,4*N);
   R   = [1:4]; S = [1:5];
   for I = 1:N
      L1 = L+1; L2 = L+2; L3 = L+3; L4 = L+4; L5 = L+5;
      el1(:,4*(I-1)+R) = [el(1,I),      L1,      L5,     L4;
                               L1, el(2,I),      L2,     L5;
                               L5,      L2, el(3,I),     L3;
                               L4,      L5,      L3, el(4,I)];
      J = el(1:4,I);
      p1(:,5*(I-1)+S)=[(p(1:K,J(1)) + p(1:K,J(2)))/2, ...
                        (p(1:K,J(2)) + p(1:K,J(3)))/2, ...
                        (p(1:K,J(3)) + p(1:K,J(4)))/2, ...
                        (p(1:K,J(4)) + p(1:K,J(1)))/2, ...
                        (p(1:K,J(1)) + p(1:K,J(2))...
                        + p(1:K,J(3))+ p(1:K,J(4)))/4];

      L = L+5;
   end
end
p1       = [p, p1];
% -- doppelte Knoten eliminieren ----------
[p1,el1] = mesh04(p1,el1);
% -- Rand verfeinern ----------------------
AUX = [];
for I = 1:size(e,2)
   X  = p1(1,e(1:2,I)); Y = p1(2,e(1:2,I));
   ZWP = [(X(1) + X(2))/2;(Y(1)+Y(2))/2];
   DIFF = p1 - ZWP*ones(1,size(p1,2));
   NORMDIFF = sqrt(DIFF(1,:).*DIFF(1,:) + DIFF(2,:).*DIFF(2,:));
   J = find(NORMDIFF == min(NORMDIFF));
   AUX1 = [[e(1,I);J;e(3:5,I)],[J;e(2,I);e(3:5,I)]];
   AUX  = [AUX,AUX1];
end
e1 = AUX;


Contact us at files@mathworks.com