% % Test of intergrid transfer % coltab=7; errtab=zeros(coltab,4); for l=3:2+coltab nl=2^l; h=1/nl; nv=nl-1; nt=nl+1; x=0:nl; x=h*x'; evecs=zeros(nt,nv); for k=1:nv evecs(:,k)=sin(k*pi*x); end w=evecs(:,6).*exp(x); wfc=ftoc(ctof(w)); wcf=ctof(ftoc(w)); % % Columns 1 and 3 are errors between w and ftoc(ctof(w)) or ctof(ftoc(w)) % errtab(l-2,1:2:3)=[norm(wfc-w,inf),norm(wcf-w,inf)]; end % % Columns 2 and 4 are ratios of errors. These should converge to .25 as % the problem size increases, and they do! % errtab(2:coltab,2)=errtab(2:coltab,1)./errtab(1:coltab-1,1); errtab(2:coltab,4)=errtab(2:coltab,3)./errtab(1:coltab-1,3); errtab % % Now check the formula on page 92 for ftoc % l=6; nl=2^l; h=1/nl; nv=nl-1; nt=nl+1; nf=nl; x=0:nl; x=h*x'; evecs=zeros(nt,nv); for k=1:nv evecsf(:,k)=sin(k*pi*x); end kv=[1:nl/2]; kv=pi*kv/(2*nl); ce=cos(kv).^2; se=-sin(kv).^2; l=5; nl=2^l; h=1/nl; nv=nl-1; nt=nl+1; x=0:nl; x=h*x'; evecs=zeros(nt,nv); for k=1:nv evecsc(:,k)=sin(k*pi*x); end err92=0; for k=1:nv err92=err92+norm(ftoc(evecsf(:,k))-ce(k)*evecsc(:,k)); end for k=1:nv err92=err92+norm(ftoc(evecsf(:,nf-k))-se(k)*evecsc(:,k)); end % % err92 is supposed to be small and is. % err92