xref: /petsc/src/tao/unconstrained/tutorials/convergencestudy.m (revision c20d77252dee0f9c80fc6f8b1a6f948e11175edb)
1fontsize_labels = 14;
2fontsize_grid   = 12;
3fontname = 'Times';
4
5h = zeros(5,1);
6e = zeros(5,1);
7hold off
8clf
9set(gca,'FontName',fontname)
10set(gca,'FontSize',fontsize_grid)
11set(gca,'FontSize',fontsize_labels)
12for i=1:5
13  E = 8*2^i;
14  syscommand = compose('./spectraladjointassimilation  -ts_adapt_dt_max 3.e-3 -E %d -N 2 -ncoeff 5  -a .1 -tao_grtol 1.e-12  -tao_gatol 1.e-12  -tao_max_it 7',[E])
15  [status,result] = system(syscommand{1});
16  eval(result);
17[m,n] = size(history);
18  h(i) = history(m,2);
19  e(i) = E;
20  if (mod(i,2) == 1)
21    yyaxis left
22    semilogy(history(:,1),history(:,2),'Markersize',6,'LineWidth',2);
23    ylabel('Analytic Error');
24    yyaxis right
25    semilogy(history(:,1),history(:,3),'Markersize',6,'LineWidth',2);
26    ylabel('Objective function');
27    hold on
28  end
29end
30legend('16 elements','64 elements','256 elements','16 elements','64 elements','256 elements')
31xlabel('Iteration')
32print('convergencestudy-h','-depsc');
33
34hold off
35clf
36set(gca,'FontName',fontname)
37set(gca,'FontSize',fontsize_grid)
38set(gca,'FontSize',fontsize_labels)
39loglog(e,h,'-+','Markersize',6,'LineWidth',2);
40xlabel('1/h');
41ylabel('Analytic Error');
42print('convergencestudy-h-2','-depsc');
43
44
45clf
46set(gca,'FontName',fontname)
47set(gca,'FontSize',fontsize_grid)
48set(gca,'FontSize',fontsize_labels)
49h = zeros(4,1);
50e = zeros(4,1);
51for i=1:4
52  N = 1 + 3*i;
53  syscommand = compose('./spectraladjointassimilation  -ts_adapt_dt_max 3.e-3 -E 8 -N %d -ncoeff 12  -a .1 -tao_grtol 1.e-12  -tao_gatol 1.e-12  -tao_max_it 20',[N])
54  [status,result] = system(syscommand{1});
55  eval(result);
56history
57  e(i) = N;
58  [m,n] = size(history);
59  h(i) = history(m,2)
60  yyaxis left
61  semilogy(history(:,1),history(:,2),'Markersize',6,'LineWidth',2);
62  ylabel('Analytic Error');
63  yyaxis right
64  semilogy(history(:,1),history(:,3),'Markersize',6,'LineWidth',2);
65  ylabel('Objective function');
66  hold on
67end
68legend('Order 4','Order 7','Order 10','Order 13','Order 4','Order 7','Order 10','Order 13')
69xlabel('Iteration')
70print('convergencestudy-p','-depsc');
71
72hold off
73clf
74set(gca,'FontName',fontname)
75set(gca,'FontSize',fontsize_grid)
76set(gca,'FontSize',fontsize_labels)
77loglog(e,h,'-+','Markersize',6,'LineWidth',2);
78xlabel('Polynomial order');
79ylabel('Analytic Error');
80print('convergencestudy-p-2','-depsc');
81