E_x=(sigma/(4*pi*epsilon_0))*intregral_-10_10(x/((x^2+y^2)^(3/2)))dy
where sigma is the linear charge density.
This python program solves this equation using the trapezoid method for numerical integration and outputs the data into a .dat file.
#Andrew Samuels #efield.py #find the electric field for a given function #Uses the trapezoid method #import modules from math import * #open a data file dfile = open('efdata.dat','w') #make some functions def efunc(x,y): return x/(x**2.+y**2.)**(3/2.) def efTrap(f,a,b,step=1): A = -(f(x,a) + f(x,b)) S = float(b - a) for n in range(step+1): y = a + n*S/step A += 2*f(x,y) return A*float(b-a)/(2*step) #constant k = 10.5/1.113e-4 #10.5microC/4*pi*e_0*1e6 #integrate from x=1 to 100 in steps of 5 x=1 while x <= 100 : ef = k * efTrap(efunc,-10,10,10000) print "x = " + str(x) + " , eField = " + str(ef) dfile.write(str(x) + '\t' + str(ef) + '\n') x += 5 #close data file dfile.close() print "Done! Created efdata.dat"