\hypersetup{linkbordercolor={1 1 1},citebordercolor={1 1 1},urlbordercolor={1 1 1}}
-\usepackage[ngerman]{babel} %Sprachpacket für Überschriften
+\usepackage[ngerman]{babel} %Sprachpacket für ├Ьberschriften
\usepackage[utf8]{inputenc} %Eingabekodierung
\usepackage{fixltx2e} %Deutschsprach Bugs
\begin{displaymath}
ELE[i,1:4] = E_i := (v_1,v_2,v_3,v_4) \text{ wobei } v_1,v_2,v_3,v_4 \in C \und i \in \{1,2 \dots M\}
\end{displaymath}
-Aufgrund der Netzstabilität wollen wir maximal zwei Nachbarn an einer Kante zulassen, weshalb wir nur $2*4$ Einträge für die Nachbarschaftsrelationen pro Element benötigen. In der $M \times 8$ Matrix sind die Indizes der Nachbarn $n_1,n_2 \in E$ der Kante $(v_k, v_{k^{+1}}) | k\in \{1,2,3,4\}$ des Elements $E_i$ an den Stellen $NEI[i,[k,k+4]]$ gespeichert. Sollte eine Seite keinen Nachbarn haben markieren wir diese mit einer $0$. Außerdem wird an Kanten mit nur einem Nachbarn der erste Index auf den Nachbarn gesetzt und der zweite auf $0$.(Siehe Figur:\ref{exmpl3:nei:part})
+Aufgrund der Netzstabilität wollen wir maximal zwei Nachbarn an einer Kante zulassen, weshalb wir nur $2*4$ Einträe für die Nachbarschaftsrelationen pro Element benötigen. In der $M \times 8$ Matrix sind die Indizes der Nachbarn $n_1,n_2 \in E$ der Kante $(v_k, v_{k^{+1}}) | k\in \{1,2,3,4\}$ des Elements $E_i$ an den Stellen $NEI[i,[k,k+4]]$ gespeichert. Sollte eine Seite keinen Nachbarn haben markieren wir diese mit einer $0$. Außerdem wird an Kanten mit nur einem Nachbarn der erste Index auf den Nachbarn gesetzt und der zweite auf $0$.(Siehe Figur:\ref{exmpl3:nei:part})
\\\noindent
Ein ausführliches Beispiel ist in Figure \ref{exmpl3} dargestellt.
\showMesh[Beispiel 3]{exmpl3}
function A_plots(files,printt)
type2str = {'Analytisch ' 'Quad Element' 'Quad Achse ' 'Quad Seite '};
+type2sym = {'-o' '-x' '-' '-'};
G_D=[];
X = [];
+leg0 = {};
leg1 = {};
-leg2 = {};
-leg3 = {};
-leg4 = {};
+sym = {};
+
+rows = 5;
for i = 1:length(files)
load(files{i});
[m n] = size(data);
- step = round(n/4);
+ step = round(n/rows);
if step<1
disp (['Error: No Data to show. : ' i])
continue;
end
G_D = [G_D data(:,2:end)];
- X = [X repmat(data(:,1),1,step*4)];
+ X = [X repmat(data(:,1),1,step*rows)];
p1 = find(files{i}=='/',1,'last')+1;
p2 = find(files{i}(p1:end)=='_',1);
l0 = [files{i}(p1:p1+p2-2) ' '];
- l1 = {type2str{data(1,[2+(0:step-1)*4])}};
- l2 ={};
- l3 ={};
- l4 ={};
+ l1 = {type2str{data(1,[2+(0:step-1)*rows])}};
+% l2 ={};
+% l3 ={};
+% l4 ={};
for i = 1:step
- l2{i} = [ l0 l1{i}];
- l3{i} = ['\mu ' l0 l1{i}];
- l4{i} = ['\eta ' l0 l1{i}];
- l5{i} = ['error ' l0 l1{i}];
+ leg0 = {leg0{:} ['\mu ' l0 l1{i}] ['\eta ' l0 l1{i}] ['error ' l0 l1{i}] ['\mu2 ' l0 l1{i}]}';
+ leg1 = {leg1{:} [ l0 l1{i}]}';
+ sym = {sym{:} type2sym{data(1,[2+(i-1)*rows])}}'
+% l2{i} = [ l0 l1{i}];
+% l3{i} = ['\mu ' l0 l1{i}];
+% l4{i} = ['\eta ' l0 l1{i}];
+% l5{i} = ['error ' l0 l1{i}];
end
-
- leg1 = {leg1{:} l2{:}}';
- leg2 = {leg2{:} l3{:}}';
- leg3 = {leg3{:} l4{:}}';
- leg4 = {leg4{:} l5{:}}';
+% leg0
+% leg1 = {leg1{:} l2{:}}'
+% leg2 = {leg2{:} l3{:}}'
+% leg3 = {leg3{:} l4{:}}'
+% leg4 = {leg4{:} l5{:}}'
end
[m n] = size(G_D);
- step = round(n/4);
+ step = round(n/rows);
if step<1
disp ('Error: No Data to show.')
% G_D
figure(4)
-loglog(X(:,[2+(0:step-1)*4]),G_D(:,[2+(0:step-1)*4]),'--o')
+i=0;
+loglog(X(:,[2+(0:rows-2)]+rows*i),[G_D(:,2+rows*i) ...
+ G_D(:,2+1+rows*i)*G_D(1,2)/G_D(1,2+1+rows*i) ...
+ sqrt(abs(sol - G_D(:,2+2+rows*i)))*G_D(1,2)/sqrt(abs(sol - G_D(1,2+2+rows*i)))...
+ G_D(:,2+3+rows*i)*G_D(1,2)/G_D(1,2+3+rows*i)] ...
+ ,sym{i+1});
hold on
-loglog(X(:,[3+(0:step-1)*4]), G_D(:,3+(0:step-1)*4)*G_D(1,2)/G_D(1,3),'-x')
-loglog(X(:,[4+(0:step-1)*4]), sqrt(abs(sol -G_D(:,4+(0:step-1)*4)))*G_D(1,2)/sqrt(abs(sol-G_D(1,4))),'-*')
-loglog(X(:,1),[20*X(:,1).^(-1/2),5*X(:,1).^(-1/4),5*X(:,1).^(-3/4)],'-.')
-
+for i = 1:step-1
+loglog(X(:,[2+(0:rows-2)]+rows*i),[G_D(:,2+rows*i) ...
+ G_D(:,2+1+rows*i)*G_D(1,2)/G_D(1,2+1+rows*i) ...
+ sqrt(abs(sol - G_D(:,2+2+rows*i)))*G_D(1,2)/sqrt(abs(sol - G_D(1,2+2+rows*i)))...
+ G_D(:,2+3+rows*i)*G_D(1,2)/G_D(1,2+3+rows*i)] ...
+ ,sym{i+1});
+
+end
+loglog(X(:,1),[7*X(:,1).^(-1/2),3*X(:,1).^(-1/4),2*X(:,1).^(-3/4)],'-.')
hold off
title('Fehler')
xlabel('Elemente');
ylabel('Schaetzer');
-legend({leg2{:} leg3{:} leg4{:}...
+legend({leg0{:} ...
'N^{-1/2}' 'N^{-1/4}' 'N^{-3/4}'...
} ,'location','southwest','box', 'off');
print('-r600','-depsc',[printt '_error.eps'])
figure(5)
-loglog(X(:,[4+(0:step-1)*4]),G_D(:,[4+(0:step-1)*4]),'-*',X(:,1),repmat(sol,size(X,1),1),'-.')
+loglog(X(:,2),G_D(:,2+2),sym{1});
+hold on
+for i = 1:step-1
+ loglog(X(:,2+i*rows),G_D(:,2+2+i*rows),sym{i+1});
+end
+loglog(X(:,1),repmat(sol,size(X,1),1),'r-.')
+hold off
ylim([min(min(G_D(:,[4+(0:step-1)*4]))) 1.005*max(max(G_D(:,[4+(0:step-1)*4])))])
title('Energie Norm')
xlabel('Elemente');
xo_fine(f2s) = repmat(x,1,4);
xd_fine = xo_fine'-x_fine;
ind2 = xd_fine'*A_fine*xd_fine;
+
+ %Fehlerschätzer 3 Aufbauen
+ tmp = abs([sum(G_C(G_E(:,2),:)-G_C(G_E(:,1),:),2)...
+ sum(G_C(G_E(:,4),:)-G_C(G_E(:,1),:),2)]);
+ hmin = min(tmp,[],2);
+% sum((x_fine(f2s)-repmat(x,1,4)).^2)
+
+ sizes = sqrt(sum(quadNorm(G_C,G_E,'w').^2,2));
+ ind3 = hmin.*sizes.*sum((x_fine(f2s)'-repmat(x',4,1)).^2)'/4;
%Energienorm^2 Berechnen
- data = [data type(i) sqrt(sum(ind)) sqrt(ind2) xe_fine];
+ data = [data type(i) sqrt(sum(ind)) sqrt(ind2) xe_fine sqrt(sum(ind3))];
end
time(2) = toc;