    eps=input('eps=  ');
    M=input('M=  ');

    betaL=1; betaR=2; pi1=pi/2;

for NN=1:5

    N=2^(NN+4)

    D1=DDM1(N);  D2=D1^2;

    j=[1:1:N-1];  y=[cos(pi*j/N)]';  

    for j=1:N-1
       gm=y(j);  yp(j)=1;
          for mm=1:M
             yp(j)=yp(j)*pi1*cos(pi1*gm);
             gm=sin(pi1*gm);
          end
        x(j)=gm;

       hm=x(j);  hd(j)=0;
          for mm=1:M
             hm=asin(hm)/pi1;
             hd(j)=pi1*tan(pi1*hm)+pi1*cos(pi1*hm)*hd(j);
          end
    end
      
    for i=1:N-1
       P1=-x(i)*yp(i)+eps*hd(i);
       Q1=-yp(i)^2;
       
       s=x(i); 
       s1=(s+1)/eps;  s2=(s-1)/eps;
       u_true(i)=exp(-s1)+2*exp(s2);

       f1=(s1-1)*exp(-s1)-2*(s2+1)*exp(s2);
       F1=f1*yp(i)^2;

       ss1=eps*D2(i+1,1)+P1*D1(i+1,1);
       ss2=eps*D2(i+1,N+1)+P1*D1(i+1,N+1);

          for j=1:N-1
            if i==j
              A(i,j)=eps*D2(i+1,j+1)+P1*D1(i+1,j+1)+Q1;
            else
              A(i,j)=eps*D2(i+1,j+1)+P1*D1(i+1,j+1);
            end
          end
       b(i)=F1-ss1*betaR-ss2*betaL;
    end

    u=A\b';

    for i=1:N-1
       error(i)=abs(u(i)-u_true(i));
    end

    xx(NN)=N;
    smx=max(error)
    err(NN)=smx;

end

    fprintf(1,      '%16.0f          %13.3e  \n', [xx;  err]);

