function fig228dd
% generate data for fig 228
ep=0.05; b=0; a=1;
% set parameters
nr = 200;
alpha=1; beta=1;
chi=0.5*sqrt(alpha^2 + beta^2 - 4*ep)/ep;
nn=40;
pi2=2*pi;
b0 = (b-a)*ifc(0,pi2,0,ep,alpha,beta)/pi2;
bess0 = besseli(0,chi);
for in=1:nn
ap(in)=(b-a)*ifs(0,pi2,in,ep,alpha,beta)/pi;
bp(in)=(b-a)*ifc(0,pi2,in,ep,alpha,beta)/pi;
bess(in)=besseli(in,chi);
end;
r=linspace(-1,1,nr);
phi=pi/4;
fid = fopen('asydata.txt', 'w');
for ir=1:nr
x=r(ir)*cos(pi/4);
y=r(ir)*sin(pi/4);
rp=chi*r(ir);
s=b0*besseli(0,rp)/bess0;
for in=1:nn
t1=besseli(in,rp)*(ap(in)*sin(in*phi)+bp(in)*cos(in*phi))/bess(in);
s=s+t1;
end;
u(ir)=a+s*exp(-0.5*(alpha*x+beta*y)/ep);
fprintf(fid, '%12.6f %12.6f\n', r(ir), u(ir));
end;
% plot(r,u,'-','Linewidth',1)
fclose(fid);
function f=fs(phi,n,ep,alpha,beta)
f = exp(0.5*(alpha*cos(phi)+beta*sin(phi))/ep)*sin(n*phi);
function f=fc(phi,n,ep,alpha,beta)
f = exp(0.5*(alpha*cos(phi)+beta*sin(phi))/ep)*cos(n*phi);
function s=ifs(a,b,n,ep,alpha,beta);
% simpson's method
N=max(100,100*n);
xd=linspace(a,b,N+1);
h=xd(2)-xd(1);
s=fs(xd(1),n,ep,alpha,beta);
for j=2:2:N
f2=fs(xd(j+1),n,ep,alpha,beta);
s=s+4*fs(xd(j),n,ep,alpha,beta)+2*f2;
end;
s=h*(s-f2)/3;
function s=ifc(a,b,n,ep,alpha,beta);
% simpson's method
N=max(100,100*n);
xd=linspace(a,b,N+1);
h=xd(2)-xd(1);
s=fc(xd(1),n,ep,alpha,beta);
for j=2:2:N
f2=fc(xd(j+1),n,ep,alpha,beta);
s=s+4*fc(xd(j),n,ep,alpha,beta)+2*f2;
end;
s=h*(s-f2)/3;