예제 #1
0
#!/usr/bin/python2
# -*- coding:utf-8 -*-

from __future__ import division
import numpy as np

# ---- this section is usefull everytime ----
import os, sys
sys.path.append('../libs')
from evaluation import Plotter
filename = os.path.splitext(os.path.basename(__file__))[0]
p = Plotter(show=True, save=True, pgf=False, name=filename, directory='')
# -------------------------------------------

# ==== DEFINITIONS ====

# ==== FUNCTIONS ====

# ==== CALCULATION ====

# ==== PLOTTING ====
p.new(title=u'Titlename')
p.plot(np.linspace(0, 10, 100),
       np.linspace(0, 10, 100)**2,
       '+-',
       label=u'Label % *.2f' % (6, 0.42))
p.make()
예제 #2
0
#!/usr/bin/python2
# -*- coding:utf-8 -*-

from __future__ import division
import numpy as np

# ---- this section is usefull everytime ----
import os, sys
sys.path.append('../libs')
from evaluation import Plotter
filename = os.path.splitext(os.path.basename(__file__))[0]
p = Plotter(show = True, save = True, pgf = False, name=filename, directory = '')
# -------------------------------------------

# ==== DEFINITIONS ====

# ==== FUNCTIONS ====
    
# ==== CALCULATION ====

# ==== PLOTTING ====
p.new(title=u'Titlename')
p.plot(np.linspace(0,10,100), np.linspace(0,10,100)**2, '+-', label=u'Label % *.2f' % (6,0.42))
p.make()
예제 #3
0
def printmoon(traj, title_in):
    p.new(title=title_in)
    p.plot(traj[:, 0, 2] - traj[:, 0, 1], traj[:, 1, 2] - traj[:, 1, 1], label="Moon")


print name

# 3.1 simulate and plot the trajectories of the different particles for one year, dt = 0.0001
traj_euler = simsys(step_eulersym, 0.0001)
printsys(traj_euler, name, "euler scheme, dt=0.0001a")

# moon in rest frame of earth with different time steps dt
traj_euler2 = simsys(step_eulersym, 0.001)
traj_euler3 = simsys(step_eulersym, 0.01)

p.new(title="moon in rest frame of earth, different dts")
p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1], traj_euler[:, 1, 2] - traj_euler[:, 1, 1], label="dt = 0.0001a")
p.plot(traj_euler2[:, 0, 2] - traj_euler2[:, 0, 1], traj_euler2[:, 1, 2] - traj_euler2[:, 1, 1], label="dt = 0.001a")
p.plot(traj_euler3[:, 0, 2] - traj_euler3[:, 0, 1], traj_euler3[:, 1, 2] - traj_euler3[:, 1, 1], label="dt = 0.01a")

# 3.2 integrators: simulate and plot trajectories of moon in rest frame of earth for different integrators
traj_euler = simsys(step_euler, 0.01)
traj_eulersym = simsys(step_eulersym, 0.01)
traj_vv = simsysvv(0.01)

p.new(title="moon in rest frame of earth, dt=0.1a")
p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1], traj_euler[:, 1, 2] - traj_euler[:, 1, 1], label="euler")
p.plot(
    traj_eulersym[:, 0, 2] - traj_eulersym[:, 0, 1],
    traj_eulersym[:, 1, 2] - traj_eulersym[:, 1, 1],
    label="symplectic euler",
예제 #4
0
    p.plot(traj[:, 0, 2] - traj[:, 0, 1],
           traj[:, 1, 2] - traj[:, 1, 1],
           label='Moon')


print name

# 3.1 simulate and plot the trajectories of the different particles for one year, dt = 0.0001
traj_euler = simsys(step_eulersym, 0.0001)
printsys(traj_euler, name, 'euler scheme, dt=0.0001a')

# moon in rest frame of earth with different time steps dt
traj_euler2 = simsys(step_eulersym, 0.001)
traj_euler3 = simsys(step_eulersym, 0.01)

p.new(title='moon in rest frame of earth, different dts')
p.plot(traj_euler[:, 0, 2] - traj_euler[:, 0, 1],
       traj_euler[:, 1, 2] - traj_euler[:, 1, 1],
       label='dt = 0.0001a')
p.plot(traj_euler2[:, 0, 2] - traj_euler2[:, 0, 1],
       traj_euler2[:, 1, 2] - traj_euler2[:, 1, 1],
       label='dt = 0.001a')
p.plot(traj_euler3[:, 0, 2] - traj_euler3[:, 0, 1],
       traj_euler3[:, 1, 2] - traj_euler3[:, 1, 1],
       label='dt = 0.01a')

# 3.2 integrators: simulate and plot trajectories of moon in rest frame of earth for different integrators
traj_euler = simsys(step_euler, 0.01)
traj_eulersym = simsys(step_eulersym, 0.01)
traj_vv = simsysvv(0.01)
예제 #5
0
def calc(vw = np.array([0.,0.]), gamma = 0.):
    global dt
    traj = np.array([[0.,0.]])
    vel = np.array([[50.,50.]])
    t = 0
    while (traj[-1,1] >= 0):
        x, v = step_euler(traj[-1],vel[-1],compute_forces(traj[-1],vel[-1],vw, gamma))
        traj = np.vstack((traj,x))
        vel = np.vstack((traj,v))
        t += dt
    return traj, vel, t
    
# ==== CALCULATION ====
traj_no_fric, vel_no_fric, t_no_fric = calc([0.,0.], 0.)
traj_with_fric_vw0, vel_with_fric_vw0, t_with_fric_vw0 = calc([0.,0.], 0.1)
traj_with_fric_vw50, vel_with_fric_vw50, t_with_fric_vw50 = calc([-50.,0.], 0.1)

vwvarious = []
for vw in np.linspace(-300,10,10): vwvarious.append([vw, calc([vw,0.], 0.1)[0]])

# ==== PLOTTING ====
p.new(title=u'Trajectories of a cannonball')
p.plot(traj_no_fric[:,0], traj_no_fric[:,1], 'r+-', label=u'no friction \n flying time: %f s' % (t_no_fric))
p.plot(traj_with_fric_vw0[:,0], traj_with_fric_vw0[:,1], 'b+-', label=u'with friction, no wind \n flying time: %f s' % (t_with_fric_vw0))
p.plot(traj_with_fric_vw50[:,0], traj_with_fric_vw50[:,1], 'g+-', label=u'with friction, strong wind \n flying time: %f s' % (t_with_fric_vw50))

p.new(title=u'Trajectories of a cannonball at various wind speeds vw')
for vw,traj in vwvarious: p.plot(traj[:,0], traj[:,1], '+-', label=u'vw =% *.2f' % (6,vw))

p.make()