Contents
% % alias.m % %
Code used to generate the figures and ranks for Case ii: n = 101, p = 1000 for Example 6.11.
This can be easily modified for Case i: p = n = 5 or truncated for Case iii.
clear all close all
Input the response and parameter dimensions. When using the Random Range Finding algorithm, we will use ell = 75 samples.
n = 101; p = 1000; ell = 75; tol = 1e-15; h = 1/(n-1); t = 0:h:1;
Construct the matrix A and compute the singular values and QR matrices. Construct the random matrix Y and its QR decomposition.
for i = 1:p A(:,i) = sin(2*pi*i*t); end [Q,R,P] = qr(A'); [U,S,V] = svd(A); rankA = rank(A,tol) params = rand(p,ell); Y = A*params; [Qs,Rs,Ps] = qr(Y); B = Qs'*A; [Us,Ss,Vs] = svd(B);
rankA = 100
Plot the columns of A shown in Figure 6.4 and the singular values and errors shown in Figure 6.5.
figure(1) plot(t,A(:,1),'-k',t,A(:,101),'--r',t,A(:,201),'-.b',t,A(:,901),':k','linewidth',3) hold on plot(t,0*t,'k-','linewidth',3) hold off set(gca,'Fontsize',[22]); xlabel('Time (s)') ylabel('Column Entries of A') legend('A(:,1)','A(:,101)','A(:,201)','A(:,901)','Location','NorthEast') figure(2) plot(t,A(:,1),'--b',t,A(:,51),'-r','linewidth',3) hold on plot(t,0*t,'k-','linewidth',3) hold off set(gca,'Fontsize',[22]); xlabel('Time (s)') ylabel('Column Entries of A') legend('A(:,1)','A(:,51)','Location','South') figure(3) plot(diag(S),'x','linewidth',3) axis([0 101 0 35]) hold on plot(diag(Ss),'o','linewidth',3) hold off set(gca,'Fontsize',[22]); legend('Deterministic Algorithm','Random Algorithm','Location','East') ylabel('Singular Values') Sdiff = abs(diag(S) - diag(Ss)); figure(4) semilogy(Sdiff,'x','linewidth',3) axis([0 101 1e-16 1e-12]) set(gca,'Fontsize',[22]); ylabel('Absolute Difference in Singular Values')