#include #include #include #include #define Xrange 2 #define Yrange 2 #define r 0.1 using namespace std; double Ex(double q1, double x1, double y1,double xt, double yt){ //Electric field (x) return q1*(xt-x1)/pow((pow((x1-xt),2)+pow((y1-yt),2)),1.5); } double Ey(double q1, double x1, double y1,double xt, double yt){ //Electric field (y) return q1*(yt-y1)/pow((pow((x1-xt),2)+pow((y1-yt),2)),1.5); } int main(int argc, char *argv[]){ int i; double pos[2][2],q[2];//cahrges double tpos[2],npos[2],lpos[2];//test position double V,tV; double E[2]; double phi,phi_best; double diff,diff_least; //charge1 -1 at (0,0) pos[0][0]=0; pos[0][1]=0; q[0]=-1; //initial position if(argc<3){ tpos[0]=0; tpos[1]=0; } else{ tpos[0]=atof(argv[1]); tpos[1]=atof(argv[2]); } cerr <<"initial parameter: pos=("<0){ phi=atan(E[1]/E[0]); } else if(E[0]<0) phi=M_PI+atan(E[1]/E[0]); else phi=0; //move the test charge tpos[0]+=r*cos(phi); tpos[1]+=r*sin(phi); //out put cout <