Implementation of Wiseman Many-Interacting-Worlds simulation for 1D, 1 Particle systems
###MIWsim1D###
using lsode with Jacobian
Author: D Cyganski and Bill Page
Created: 2015-05-17
Revised: 2015-06-08
####Implementation of Wiseman Many-Interacting-Worlds simulation for 1D, 1 Particle systems####
single particle with gaussian distribution and nonzero mean velocity, colliding with a potential barrier
The future track of the many worlds position state is determined in general in MIW by system of coupled non-linear second order partial differential equations, where =number of worlds, =number of particles, =number of dimensions. where indexes the particle and the world.
Such a system of second order non-linear PDEs can always be written as a system of of first order linear PDEs:
For our 1 D case, there will be equations.
Setup Sage environment
Value = "FriCAS 2014-12-18 compiled at Tue May 5 18:13:01 UTC 2015"
All user variables and function definitions have been cleared.
All )browse facility databases have been cleared.
Internally cached functions and constructors have been cleared.
)clear completely is finished.
Classical Force centered at that repells the oncoming particles
Compiling function F with type Variable(x) -> Expression(Integer)
$$9 \ {{{\mathrm{sech} \left( {{{5 \ x} -{5 \ c}}} \right)}} ^{2}} \ {\mathrm{tanh} \left( {{{5 \ x} -{5 \ c}}} \right)}$$Potential
Position of particle in the world:
Many Worlds Interaction
Equations 24,25 of HEW paper
Equations of Motion
The non-constant elements of the Jacobian matrix are formed from derivates with respect to x
Sage routine to convert FriCAS expression to Octave function
Generate initial distribution of particle states, including position,x (X0), and velocity, xdot (Y0)
For a simple test, distribute 101 values equally over a window and set all velocities to zero
Use inverse error function to generate a Gaussian distribution of trajectories
Plot the input trajectory density
Constants
Boundry conditions
Plot the force
Compiling function sif with type (List(Float),PositiveInteger) -> Float
Compiling function sif with type (List(Float),Integer) -> Float
Compiling function sigma with type (List(Float),PositiveInteger) -> Float
Compiling function R with type (List(Float),PositiveInteger) -> Fraction(Polynomial(Float))
Equations of motion in numeric form
Functions to compute the Jacobian matrix
Perform the time updates