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"