xref: /petsc/src/tao/unconstrained/tutorials/adjointreads.m (revision ccb4e88a40f0b86eaeca07ff64c64e4de2fae686)
1clear all;
2close all;
3
4fontsize_labels = 14;
5fontsize_grid   = 12;
6fontname = 'Times';
7
8%the files optimize** contain
9%Grad    --- gradient,
10%Init_ts --- initial condition of forward problem
11%Init_adj--- initial condition of backward problem
12
13%additionally
14%xg - the grid
15%obj- the objective function
16%ic - initial condition (the one to be optimized)
17
18
19% run('PDEadjoint/optimize06.m')
20% figure(2)
21% plot(xg,obj,'k-','Markersize',10,'Linewidth',2); drawnow
22% hold on
23% plot(xg,fwd,'b-','Markersize',10); drawnow
24% plot(xg,Init_ts,'r*-','Markersize',10); drawnow
25% plot(xg,Grad,'bs','Markersize',10); drawnow
26% plot(xg,ic,'g-','LineWidth',2,'Markersize',12);
27
28% figure(29)
29% run('tss.m')
30% plot(xg,init)
31% hold on
32% plot(xg,fin,'ro-')
33% break
34% figure(3)
35% plot(xg,Init_adj,'k*-','Markersize',10); drawnow
36% hold on
37% plot(xg,Grad,'go-','Markersize',10); drawnow
38% plot(xg,Init_adj,'r*-','Markersize',10); drawnow
39% plot(xg,obj,'r*-','Markersize',10); drawnow
40% figure(55)
41% plot(xg,Init_adj,'k*-','Markersize',10); drawnow
42% hold on
43% plot(xg,-2*(obj-fwd),'ro','Markersize',10); drawnow
44
45figure(15)
46for ii=11:13
47file=sprintf('PDEadjoint/optimize%02d.m',ii);
48run(file)
49plot(grid,Init_ts,'ko-','Markersize',10); drawnow;
50hold on
51%plot(grid,temp,'c*','Markersize',10); drawnow;
52plot(grid,exact,'r*','Markersize',10); drawnow;
53%plot(grid,Curr_sol,'g-','Markersize',10); drawnow;
54%plot(grid,Init_adj,'bo-','Markersize',10); drawnow;
55end
56xlabel('x (GLL grid)');
57ylabel('f(x)- objective');
58%
59% break
60% tt=senmask.*obj;
61% tt(abs(tt)==0)=NaN;
62% plot(xg,tt,'ks-','Markersize',10); drawnow;
63% break
64% Err1=Err; TAO1=TAO;
65%
66% %break
67% figure(15)
68% for ii=35:40
69%     file=sprintf('PDEadjoint_hc/optimize%02d.m',ii);
70% run(file)
71% plot(xg,Init_ts,'go-','Markersize',10); drawnow;
72% hold on
73% plot(xg,obj,'r-','Markersize',10); drawnow;
74% plot(xg,fwd,'bo-','Markersize',10); drawnow;
75% end
76% xlabel('x (GLL grid)');
77% ylabel('f(x)- objective');
78%
79%
80% figure(99)
81% semilogy(Err1,'k-','Markersize',6,'LineWidth',2); drawnow;
82% hold on
83% semilogy(Err,'r-','Markersize',6,'LineWidth',2); drawnow;
84%
85%
86% set(gca,'FontName',fontname)
87% set(gca,'FontSize',fontsize_grid)
88% set(gca,'FontSize',fontsize_labels)
89%
90% legend('Discrete Objective','Continous Objective')
91% xlabel('Iterations');
92% ylabel('Error solution');
93% grid on
94% legend boxoff;
95% axis tight; axis square
96%
97% break
98%
99% figure(12)
100% plot(xg,objk,'b*-','Markersize',6,'LineWidth',2); drawnow;
101%
102% hold on
103% plot(xg,Init_ts,'ro-','Markersize',6,'LineWidth',2); drawnow;
104% plot(xg,ic,'ks-','Markersize',6,'LineWidth',2); drawnow;
105% legend('Objective','Optimal','Starting')
106% legend boxoff
107% xlabel('GLL grid');
108% ylabel('Diffusion solution (Data assimilation)');
109% set(gca,'FontName',fontname)
110% set(gca,'FontSize',fontsize_grid)
111% set(gca,'FontSize',fontsize_labels)
112% figure(95)
113% t=0.6; mu=0.001;x=xg;
114% plot(xg,2.0*mu*pi*sin(pi*x).*exp(-pi^2*t*mu)./(2.0+exp(-pi^2*t*mu).*cos(pi*x)));
115%
116% break
117% figure(1)
118% plot(xg,Init_ts,'ro-','Markersize',8,'LineWidth',2); drawnow;
119% %break
120% figure(2);set(gca,'FontSize',18);hold on
121%
122% run('PDEadjoint/optimize00.m')
123% plot(xg,Grad,'k*-');
124% run('PDEadjoint/optimize04.m')
125% plot(xg,Grad,'ro-');
126%
127% set(gca,'FontName',fontname)
128% set(gca,'FontSize',fontsize_grid)
129% set(gca,'FontSize',fontsize_labels)
130%
131% xlabel('x (GLL grid)');
132% ylabel('f(x)- objective');
133%
134% legend('Grad at it=0','Grad at it=1')
135%
136% figure(10)
137% run('fd.m')
138% %plot(gradj)
139% plot(xg,gradj./Mass,'ro-','LineWidth',2,'Markersize',12);
140% hold on
141% run('PDEadjoint/optimize01.m')
142% plot(xg,Grad,'k*-','LineWidth',2,'Markersize',10);
143%
144% set(gca,'FontName',fontname)
145% set(gca,'FontSize',fontsize_grid)
146% set(gca,'FontSize',fontsize_labels)
147%
148% legend('Gradient FD','Gradient Adjoint')
149% xlabel('x (GLL grid)');
150% ylabel('Gradient');
151% axis tight; axis square
152%
153% errgrad=max(abs(gradj./Mass-Grad))
154%
155%
156% figure(21)
157% semilogy(1:21,TAO,'r','LineWidth',2)
158% % hold on
159% % semilogy(1:31,L2,'r','LineWidth',2)
160% grid on
161% xlabel('No iterations');
162% ylabel('Cost function');
163% set(gca,'FontName',fontname)
164% set(gca,'FontSize',fontsize_grid)
165% set(gca,'FontSize',fontsize_labels)
166% %
167% % legend('TAO','User')
168