MATLAB Implementation of AVI
I work with AVI in my research so I have included a MATLAB implementation of AVI for the 1-D harmonic oscillator. The code will solve the equation a + gamma * v + (k1 + k2 + k3) x = 0 with any initial conditions x(0) and v(0). Here the spring constant has been artifically split into three spring constants to simulate multiple potentials. If there is only one potential AVI simplifies to the usual Velocity Verlet integrator. The friction term is absorbed into the k1 term in the implementation. The main idea in the implementation is to construct the propagation matrix for the system (x,v) for the different potentials.
To use the code to solve the simple harmonic oscillator a + 3 x = 0 over two periods with the Velocity Verlet algorithm let
ts1 = ts2 = ts3 = 0.01; k1 = k2 = k3 = 1; x0 = 1, v0 = 0, gamma = 0, and T = 4*pi/sqrt(3).
To solve the same system with AVI you can choose
ts1 = 0.005, t2 = 0.01, t3 = 0.02; k1 = 1.5, k2 = 1, k3 = 0.5; and the same values for the other parameters.
For more information regarding AVI please look at Variational Time Integrators by Lew et al.
| Attachment | Size |
|---|---|
| oscillator1d_avi_3pot.m.txt | 3.47 KB |
- Will Fong's blog
- Login or register to post comments
- 714 reads


Recent comments
7 hours 52 min ago
15 hours 8 min ago
15 hours 9 min ago
2 days 20 hours ago
3 days 1 hour ago
4 days 2 hours ago
4 days 5 hours ago
4 days 16 hours ago
4 days 21 hours ago
4 days 23 hours ago