-
Notifications
You must be signed in to change notification settings - Fork 1
/
display_results.m
110 lines (102 loc) · 3.81 KB
/
display_results.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
figind=0;
% close all
% set(0,'DefaultFigurePosition',[4000 800 580 406])
%% plot basis fcn
if toggle_plot_basis_fcn
figind = figind +1;
figure(figind);clf
pos=[];
if toggle_scale>0
sclz = scales(end-n:end);
else
sclz = [];
end
plot_basis_fcn(Cfs_x,Cfs_t,m_x,dx,m_t,dt,max_dx,max_dt,pdx_list,pos,sclz);
end
%% plot data
if toggle_plot_sol>0
figind = figind +1;
figure(figind);clf
for jj=1:min(length(toggle_plot_sol),length(U_obs))
subplot(min(length(toggle_plot_sol),length(U_obs)),1,jj)
colormap(turbo(50))
if dim==2
surf(xs_obs{1},xs_obs{2},U_obs{min(toggle_plot_sol(jj),length(U_obs))}', 'EdgeColor','none')
view([10 80])
zlabel('$u$','interpreter','latex','fontsize',14)
set(gca, 'TickLabelInterpreter','latex','fontsize',14)
xlabel('$x$','interpreter','latex','fontsize',14)
ylabel('$t$','interpreter','latex','fontsize',14)
xlim([xs_obs{1}(1) xs_obs{1}(end)])
ylim([xs_obs{2}(1) xs_obs{2}(end)])
colorbar
title(['U(',num2str(min(toggle_plot_sol(jj),length(U_obs))),')'])
elseif dim==3
for j=1:plotgap:floor(length(xs_obs{3}))
surf(1:length(xs_obs{1}),1:length(xs_obs{2}),squeeze(U_obs{min(toggle_plot_sol(jj),length(U_obs))}(:,:,j))', 'EdgeColor','none')
xlabel('$x$','interpreter','latex','fontsize',14)
ylabel('$y$','interpreter','latex','fontsize',14)
title(['U(',num2str(min(toggle_plot_sol(jj),length(U_obs))),')'])
view([0 90])
title(num2str(xs_obs{3}(j)))
colorbar
caxis([min(reshape(U_obs{toggle_plot_sol(jj)},[],1)) max(reshape(U_obs{toggle_plot_sol(jj)},[],1))])
drawnow
end
end
end
end
%% plot loss fcn (MSTLS)
if size(lossvals,2)>1 && toggle_plot_loss
figind = figind +1;
figure(figind);clf
loglog(lossvals(2,:),lossvals(1,:),'o-')
xlabel('$\lambda$','interpreter','latex','fontsize',14)
ylabel('$\mathcal{L}$','interpreter','latex','fontsize',14)
set(gca, 'TickLabelInterpreter','latex','fontsize',14)
xtick =10.^linspace(log10(lossvals(2,1)),log10(lossvals(2,end)),4);
xticks(xtick)
xticklb = num2str(log10(xtick)');
xticklabels(strcat('$10^{',xticklb(:,1:min(4,end)),'}$'))
end
%% plot data fft
if toggle_plot_fft>0
Cfs = {{Cfs_x,Cfs_t}};
figind = figind +1;
figure(figind);clf
coords=1:dim;
for j=1:dim-1
coords=[coords;circshift(coords(end,:),-1)];
end
for j=1:dim
coordsj = coords(j,:);
dd=coordsj(1);
Ufft = abs(fft(permute(U_obs{1},coordsj)));
Ufft = reshape(Ufft,size(Ufft,1),[]);
Ufft = mean(Ufft(floor(end/2):end,:),2);
L = length(Ufft)-1;
ks = -L:L;
Ufft = [Ufft; flipud(Ufft(1:end-1))]/max(Ufft);
subplot(dim,1,j)
semilogy(ks,Ufft)
hold on
if dd<dim
Cfs_ffts = fft([zeros(1,length(xs_obs{dd})-2*m_x-1) Cfs{1}{1}(1,:)]);
else
Cfs_ffts = fft([zeros(1,length(xs_obs{dd})-2*m_t-1) Cfs{1}{2}(1,:)]);
end
Cfs_ffts=abs(Cfs_ffts(floor(end/2):end));
Cfs_ffts=[Cfs_ffts fliplr(Cfs_ffts(1:end-1))];
Cfs_ffts=Cfs_ffts/max(Cfs_ffts);
semilogy(ks,Cfs_ffts)
if exist('corners','var')
k = corners{1}{dd}(2);
semilogy([-k k],Ufft(L+1-k)*[1 1],'o','markersize',12)
end
hold off
ylim([min(Ufft)*0.1 max(Ufft)])
legend({'$\mathcal{F}(U_d)$','$\mathcal{F}(\phi_d)$','$k_d^*$'},'interpreter','latex','fontsize',14)
title(['coord',num2str(dd)])
end
xlabel('k')
end