]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] Geschwindigkeitsuntersuchung abgespalten
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sun, 24 Apr 2011 09:56:28 +0000 (09:56 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sun, 24 Apr 2011 09:56:28 +0000 (09:56 +0000)
[src] Fehler und Konvergenzuntersuchung angefangen.... (fehlerhaft)

git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@16 26120e32-c555-405d-b3e1-1f783fb42516

src/test_solve.m
src/test_solveError.m [new file with mode: 0644]
src/test_solveS.m [new file with mode: 0644]
src/test_solveSpeed.m

index 1de19e0ee8293db082d9eb7aa47b8c870d450194..cb5378962962e7fdfedf4817094ed23324de5fb7 100644 (file)
@@ -1,50 +1,14 @@
 
 N = size(elements,1);
 
-A1 = zeros(N);
-
-x = zeros(N,2);
-xe = zeros(1,2);
-t = zeros(1,2);
-
-% untere schranke s t obere schranke k l
-intF = @(f,s1,s2,k1,k2,t1,t2,l1,l2) ...
-    f(k1,k2,l1,l2)-f(k1,k2,l1,t2)-f(k1,k2,t1,l2)+f(k1,k2,t1,t2)...
-    -f(k1,s2,l1,l2)+f(k1,s2,l1,t2)+f(k1,s2,t1,l2)-f(k1,s2,t1,t2)...
-    -f(s1,k2,l1,l2)+f(s1,k2,l1,t2)+f(s1,k2,t1,l2)-f(s1,l2,t1,t2)...
-    +f(s1,s2,l1,l2)-f(s1,0,l1,t2)-f(s1,s2,t1,l2)+f(s1,s2,t1,t2);
-tic
-for j = 1:N
-    for k = 1:N
-        ej = coordinates(elements(j,:)',:);
-        ek = coordinates(elements(k,:)',:);
-        d = ek(1,:) - ej(1,:);
-%         fprintf('%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n'...
-%             ,j,k,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2)...
-%             ,d(1),d(2),d(3));
-        tmp = intF(@(x1,x2,y1,y2) F_par(x1,x2,y1,y2,d(1),d(2),d(3))...
-            ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));
-
-%        fprintf('%d%d|%.2f\n',j,k,tmp);
-        A1(j,k) = 1/ (4*pi) *tmp;
-%           intF(@(x1,x2,y1,y2) F_par(x1,x2,y1,y2,d(1),d(2),d(3))...
-%             ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));
-
-    end
-end
-t(1) = toc;
-disp ' '
 tic
-A2 = build_A(coordinates,elements);
-t(2) = toc;
+A = build_A(coordinates,elements);
+t = toc;
 b = sqrt(sum(quad_norm(coordinates,elements,'w').^2,2));
 
-x(:,1) = A1\b;
-xe(1) = x(:,1)'*A1*x(:,1);
-
-x(:,2) = A2\b;
-xe(2) = x(:,2)'*A2*x(:,2);
+x = A\b;
+xe = x'*A*x;
 
 x;
 xe
-t
\ No newline at end of file
+t 
\ No newline at end of file
diff --git a/src/test_solveError.m b/src/test_solveError.m
new file mode 100644 (file)
index 0000000..b3ee998
--- /dev/null
@@ -0,0 +1,25 @@
+\r
+load exmpl_2DLShape\r
+\r
+re_times = 6;\r
+r_type = 1;\r
+\r
+xNorm = zeros(re_times+1,2);\r
+\r
+    test_solve\r
+    xNorm(1,:) = [size(x,1) xe];\r
+\r
+for l = 2:re_times\r
+    test_refine\r
+    \r
+    test_solve\r
+    xNorm(l,:) = [size(x,1) xe];\r
+end\r
+\r
+\r
+loglog(xNorm(:,1),xNorm(:,2));\r
+\r
+legend('x^TAx')\r
+xlabel('Elemente')\r
+ylabel('xNorm')\r
+\r
diff --git a/src/test_solveS.m b/src/test_solveS.m
new file mode 100644 (file)
index 0000000..1de19e0
--- /dev/null
@@ -0,0 +1,50 @@
+
+N = size(elements,1);
+
+A1 = zeros(N);
+
+x = zeros(N,2);
+xe = zeros(1,2);
+t = zeros(1,2);
+
+% untere schranke s t obere schranke k l
+intF = @(f,s1,s2,k1,k2,t1,t2,l1,l2) ...
+    f(k1,k2,l1,l2)-f(k1,k2,l1,t2)-f(k1,k2,t1,l2)+f(k1,k2,t1,t2)...
+    -f(k1,s2,l1,l2)+f(k1,s2,l1,t2)+f(k1,s2,t1,l2)-f(k1,s2,t1,t2)...
+    -f(s1,k2,l1,l2)+f(s1,k2,l1,t2)+f(s1,k2,t1,l2)-f(s1,l2,t1,t2)...
+    +f(s1,s2,l1,l2)-f(s1,0,l1,t2)-f(s1,s2,t1,l2)+f(s1,s2,t1,t2);
+tic
+for j = 1:N
+    for k = 1:N
+        ej = coordinates(elements(j,:)',:);
+        ek = coordinates(elements(k,:)',:);
+        d = ek(1,:) - ej(1,:);
+%         fprintf('%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n'...
+%             ,j,k,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2)...
+%             ,d(1),d(2),d(3));
+        tmp = intF(@(x1,x2,y1,y2) F_par(x1,x2,y1,y2,d(1),d(2),d(3))...
+            ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));
+
+%        fprintf('%d%d|%.2f\n',j,k,tmp);
+        A1(j,k) = 1/ (4*pi) *tmp;
+%           intF(@(x1,x2,y1,y2) F_par(x1,x2,y1,y2,d(1),d(2),d(3))...
+%             ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));
+
+    end
+end
+t(1) = toc;
+disp ' '
+tic
+A2 = build_A(coordinates,elements);
+t(2) = toc;
+b = sqrt(sum(quad_norm(coordinates,elements,'w').^2,2));
+
+x(:,1) = A1\b;
+xe(1) = x(:,1)'*A1*x(:,1);
+
+x(:,2) = A2\b;
+xe(2) = x(:,2)'*A2*x(:,2);
+
+x;
+xe
+t
\ No newline at end of file
index 3ccfa70799e63b73e7ffb808065aa9348008001c..eadacaa84db6a6bcef6f6950ab35730902d4722f 100644 (file)
@@ -3,13 +3,13 @@ rt_times = 5;
 \r
 time = zeros(rt_times,3);\r
 \r
-    test_solve\r
+    test_solveS\r
     \r
     time(1,:) = [size(x,1) t];\r
 \r
 for l = 2:rt_times\r
     test_refine\r
-    test_solve\r
+    test_solveS\r
     \r
     time(l,:) = [size(x,1) t];\r
 end\r