2016-09-03 2 views
0

Я нарисовал одну позицию (x, y, z) из N частиц в замкнутом объеме.Построение позиций частиц по времени

x[i] = random.uniform(a,b) ... 

Я также нашел постоянную скорость (vx, vy, vz) N частиц.

vx[i] = random.gauss(mean,sigma) ... 

Теперь я хочу найти положение частиц N (= 100) с течением времени. Я использовал метод Эйлера-Кромера.

delta_t = linspace(0,2,n-1) 
n = 1000 
v[0] = vx;... 
r[0] = x;... 

for i in range(n-1): 
    v[i+1,:] = v[i,:] 
    r[i+1,:] = r[i,:] + delta_t*v[i+1,:] 
    t[i+1] = t[i] + delta_t 

Но я хочу найти позицию с течением времени для каждой частицы. Как я могу это сделать? Кроме того, как мне построить положение частиц во времени в 3D?

ответ

0

Чтобы найти положение частиц в данный момент времени вы можете использовать следующий код:

import numpy as np 

# assign random positions in the box 0,0,0 to 1,1,1 
x = np.random.random((100,3)) 
# assign random velocities in the range around 0 
v = np.random.normal(size=(100,3)) 

# define function to project the position in time according to 
# laws of motion. x(t) = x_0 + v_0 * t 
def position(x_0, v_0, t): 
    return x_0 + v_0*t 

# get new position at time = 3.2 
position(x, v, 3.2) 

 Смежные вопросы

  • Нет связанных вопросов^_^