% Plot Z_J, 2014-08-24 00:34, Hua-sheng XIE, IFTS-ZJU
% J-pole approximation for Z(z)
%     =sum {bj/(z-cj)+conj(bj)/(z+conj(cj))}
% close all; clear; clc;

bzj=b;
czj=c;

J=length(bzj)
sum(bzj)
sum(bzj.*czj)
sum(bzj.*czj.^2)

xa=-5; xb=5; dx=(xb-xa)/100; 
ya=-3; yb=5; dy=(yb-ya)/100; 
[x,y]=ndgrid(xa:dx:xb,ya:dy:yb);
z=x+1i*y;
ZJ=0.*x;
for j=1:J
    ZJ=ZJ+bzj(j)./(z-czj(j));
end

%%
h=figure('unit','normalized','Position',[0.01 0.37 0.5 0.5],...
    'DefaultAxesFontSize',15);

subplot(221);contour(x,y,real(ZJ)); box on;
hold on; plot(real(czj),imag(czj),'rx','Linewidth',2);
title(['Re, J=',num2str(J),', I=',num2str(I)]); xlabel('Re(z)'); ylabel('Im(z)');
subplot(222);contour(x,y,imag(ZJ)); box on;
hold on; plot(real(czj),imag(czj),'rx','Linewidth',2);
title(['Im, J=',num2str(J),', I=',num2str(I)]); xlabel('Re(z)'); ylabel('Im(z)');

zeta=@(z)faddeeva(z)*1i*sqrt(pi);
Z=zeta(z);
subplot(223);contour(x,y,real(Z)); box on;
hold on; plot(real(czj),imag(czj),'rx','Linewidth',2);
title('Re, Z'); xlabel('Re(z)'); ylabel('Im(z)');
subplot(224);contour(x,y,imag(Z)); box on;
hold on; plot(real(czj),imag(czj),'rx','Linewidth',2);
title('Im, Z'); xlabel('Re(z)'); ylabel('Im(z)');

print(gcf,'-dpng',['J',num2str(J),'I',num2str(I),'xa',num2str(xa),'xb',num2str(xb),...
    'ya',num2str(ya),'yb',num2str(yb),'_2d.png']);

