From 92f98980ebf61df0e31f6e515eba7f6b9fe566d0 Mon Sep 17 00:00:00 2001 From: treecity Date: Sun, 24 Apr 2011 09:56:28 +0000 Subject: [PATCH] [src] Geschwindigkeitsuntersuchung abgespalten [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 | 46 +++++---------------------------------- src/test_solveError.m | 25 ++++++++++++++++++++++ src/test_solveS.m | 50 +++++++++++++++++++++++++++++++++++++++++++ src/test_solveSpeed.m | 4 ++-- 4 files changed, 82 insertions(+), 43 deletions(-) create mode 100644 src/test_solveError.m create mode 100644 src/test_solveS.m diff --git a/src/test_solve.m b/src/test_solve.m index 1de19e0..cb53789 100644 --- a/src/test_solve.m +++ b/src/test_solve.m @@ -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 index 0000000..b3ee998 --- /dev/null +++ b/src/test_solveError.m @@ -0,0 +1,25 @@ + +load exmpl_2DLShape + +re_times = 6; +r_type = 1; + +xNorm = zeros(re_times+1,2); + + test_solve + xNorm(1,:) = [size(x,1) xe]; + +for l = 2:re_times + test_refine + + test_solve + xNorm(l,:) = [size(x,1) xe]; +end + + +loglog(xNorm(:,1),xNorm(:,2)); + +legend('x^TAx') +xlabel('Elemente') +ylabel('xNorm') + diff --git a/src/test_solveS.m b/src/test_solveS.m new file mode 100644 index 0000000..1de19e0 --- /dev/null +++ b/src/test_solveS.m @@ -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 diff --git a/src/test_solveSpeed.m b/src/test_solveSpeed.m index 3ccfa70..eadacaa 100644 --- a/src/test_solveSpeed.m +++ b/src/test_solveSpeed.m @@ -3,13 +3,13 @@ rt_times = 5; time = zeros(rt_times,3); - test_solve + test_solveS time(1,:) = [size(x,1) t]; for l = 2:rt_times test_refine - test_solve + test_solveS time(l,:) = [size(x,1) t]; end -- 2.47.3