% EXAMPLE3_48 Computations for Example 3.48.
%
fprintf('\n')
f1='%15.0f %12.3e %12.3e\n';
disp('              n       E2          Einf')
N=10; k=(1:N)'; E2=zeros(N,1); Einf=zeros(N,1);
xw(k,1)=-1+2*(k-1)/(N-1); xw(k,2)=2/N;
d=ones(1,N);
ab=r_hahn(N-1);
ab(:,1)=-1+2*ab(:,1)/(N-1);
ab(:,2)=(2/(N-1))^2*ab(:,2); ab(1,2)=2;
f=exp(-xw(:,1));
%f=log(2+xw(:,1));
%f=sqrt(1+xw(:,1));
%f=abs(xw(:,1));
[phat,c]=least_squares(N-1,f,xw,ab,d);
t=linspace(-1,1)'; p=zeros(100,N);
ft=exp(-t); 
%ft=log(2+t);
%ft=sqrt(1+t);
%ft=abs(t);
for n=1:N
  E2(n)=sqrt(sum(xw(:,2).*((phat(:,n)-f).^2)));
  p(:,n)=clenshaw(n-1,t,1,0,ab,c);
  Einf(n)=max(abs(p(:,n)-ft));
  if n==1
    fprintf('%15.0f %12.3e %12.3e    f(t)=exp(-t)\n',n-1,E2(n),Einf(n))
%    fprintf('%15.0f %12.3e %12.3e    f(t)=log(2+t)\n',n-1,E2(n),Einf(n))
%    fprintf('%15.0f %12.3e %12.3e    f(t)=sqrt(1+t)\n',n-1,E2(n),Einf(n))
%    fprintf('%15.0f %12.3e %12.3e    f(t)=abs(t)\n',n-1,E2(n),Einf(n))
  else
    fprintf(f1,n-1,E2(n),Einf(n))
  end
end
