рдирдорд╕реНрддреЗ, рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рд╢рд╛рд░реАрд░рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдФрд░ рдПрдирд┐рдореЗрд╢рди рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдмрд╣реБрдд рд╕реА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАред
рд╕рднреА рдХреЛрдб Google рдХреЛрд▓рд╛рдм рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ редрд╕рд┐рджреНрдзрд╛рдВрдд
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдпрд╣ рд╕рдордЭрдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдХрд┐ рддрдирд╛рд╡ рдХреА рд░реЗрдЦрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЧрд┐рдиреЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рд░реЗрдЦрд╛рдПрдБ рдХрдИ рдЯреЗрдВрд╢рди рд╡реИрдХреНрдЯрд░реЛрдВ рдХрд╛ рд╡рд┐рд▓рдп рд╣реИрдВ, рдЬрд┐рдирдХреА рдЧрдгрдирд╛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:ред
рдИ рдЧрдгрдирд╛ рд╡рд┐рдзрд┐
рдореИрдВрдиреЗ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдирд╛рд╡ рд╡реЗрдХреНрдЯрд░ рдХреА рдЧрдгрдирд╛ рдХреА, рдЬрд┐рд╕рд╕реЗ рдХреНрд░рдорд╢рдГ x рдФрд░ y рдЕрдХреНрд╖реЛрдВ dx рдФрд░ рдбрд╛рдИ рдкрд░ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдПред
рд╕рдорд╛рдирддрд╛ рд╕реЗ рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЖрд░ рд╕реЗ рдмрд┐рдВрджреБ рддрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдФрд░ рддреАрд╡реНрд░рддрд╛ рд╡реЗрдХреНрдЯрд░ рд╡реЗрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХреНрд░рдорд╢рдГ рдЗрди рд╡реИрдХреНрдЯрд░ (X1 рдФрд░ dx) рдХреЗ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдлреЙрд░реНрдореВрд▓рд╛рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдЧрдгрдирд╛ рд╕рдорд╛рд░реЛрд╣def E(q_prop, xs, ys, nq):
l=1
k=9*10**9
Ex=0
Ey=0
c=0
for c in range(len(q_prop)):
q=q_prop[c]
r=((xs-q[0])**2+(ys-q[1])**2)**0.5
dEv=(k*q[2])/r**2
dEx=(xs-q[0])*(dEv/r)*l
dEy=(ys-q[1])*(dEv/r)*l
Ex+=dEx
Ey+=dEy
return Ex, Ey
рд▓рд╛рдЗрди рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рдПрдВрдб рдкреЙрдЗрдВрдЯ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди рдФрд░ рдбреЙрдХ рдХрд╣рд╛рдВ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдЪрд╛рд░реНрдЬ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рддреНрд░рд┐рдЬреНрдпрд╛ рдЖрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрдХрд▓ рдкрд░ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдЖрд░реЛрдкреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВредрдЕрдВрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбtheta = np.linspace(0, 2*np.pi, n)
mask=q_prop[ q_prop[:,2]>0 ]
for cq in range(len(mask)):
qmask=mask[cq]
xr = r_q*np.cos(theta)+qmask[0]
yr = r_q*np.sin(theta)+qmask[1]
рддреЛ рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рдХреЗрд╡рд▓ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╢реБрд▓реНрдХ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВредрдФрд░ рдЕрдВрдд рдореЗрдВ, рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╕реЗ рдЙрд╕рдореЗрдВ рддрдирд╛рд╡ рдХреА рд╡реЗрдХреНрдЯрд░ рдХреА рд░реЗрдЦрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд░реНрдорд╛рдг рдмрд┐рдВрджреБ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддрдм рддрдХ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИрдВред
рд▓рд╛рдЗрди рд╕рдордиреНрд╡рдп рдЧрдгрдирд╛ рд╕рдорд╛рд░реЛрд╣def Draw(size, q_prop,r_q, n):
linen=np.empty((np.count_nonzero(q_prop[:,2]>0),n, 2000000), dtype=np.float64)
linen[:] = np.nan
theta = np.linspace(0, 2*np.pi, n)
mask=q_prop[ q_prop[:,2]>0 ][ q_prop[q_prop[:,2]>0][:,3]==1 ]
for cq in range(len(mask)):
qmask=mask[cq]
x11 = r_q*np.cos(theta)+qmask[0]
x22 = r_q*np.sin(theta)+qmask[1]
for c in range(len(x11)):
xs=x11[c]
ys=x22[c]
lines=np.empty((2,1000000), dtype=np.float64)
lines[:]=np.nan
stop=0
nnn=0
lines[0][nnn]=xs
lines[1][nnn]=ys
while abs(xs)<size+2 and abs(ys)<size+2:
nnn+=1
for cq1 in range(len(q_prop)):
q=q_prop[cq1]
if ((ys-q[1])**2+(xs-q[0])**2)**0.5<r_q/2 :
stop=1
break
if stop==1:
break
dx, dy = E1(q_prop,xs,ys)
xs+=dx
ys+=dy
lines[0][nnn]=xs
lines[1][nnn]=ys
linen[cq,c,:]=lines.reshape(-1)
return linen
рдЖрд░реЛрдкреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд
рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЫреЛрдЯреЗ рд╕рдордп рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЧрддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЪрд╛рд░реНрдЬ рдЧрддрд┐ рдХреЗ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпdef Update_all(q_prop):
vx=0
vy=0
x=0
y=0
q_prop_1=np.copy(q_prop)
for c in range(len(q_prop)):
xs=q_prop[c][0]
ys=q_prop[c][1]
q =q_prop[c][2]
m =q_prop[c][3]
vx=q_prop[c][4]
vy=q_prop[c][5]
Ex, Ey= E(q_prop, xs, ys, c)
x=(((Ex*q)/m)*dt**2)/2+vx*dt+xs
y=(((Ey*q)/m)*dt**2)/2+vy*dt+ys
vx+=((Ex*q)/m)*dt
vy+=((Ey*q)/m)*dt
q_prop_1[c]=[x,y,q,m,vx,vy]
return q_prop_1
рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг
рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд▓рд┐рдЦрд╛ рдЬреЛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рдирд┐рдХрд╛рдпреЛрдВ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдирд╛рд╡ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╣реИ рддреНрд╡рд░рдг рдЕрдм рдПрдХ рд╕рдорд╛рди рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЧреНрд░рд╣ рдПрдХреНрд╕ рдЕрдХреНрд╖ рд╕реЗ рдкреЗрд░реАрд╣реЗрд▓рд┐рдпрди рджреВрд░реА рдФрд░ рдкреЗрд░реАрд╣реЗрд▓рд┐рдпрди рдЧрддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдЧреНрд░рд╣реЛрдВ рдХреЗ рд╕рднреА рдорд╛рди рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕реВрд░реНрдп (рджреНрд░рд╡реНрдпрдорд╛рди, рджреВрд░реА, рдЫреЛрд░)редрдкрд╣рд▓реЗ 4 рдЧреНрд░рд╣реЛрдВ + рд╕реВрд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рдиред
рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред рдЕрд▓рд╡рд┐рджрд╛ред