Iterative Prediction: Difference between revisions

From Physics Book
Jump to navigation Jump to search
Line 3: Line 3:
==The Main Idea==
==The Main Idea==


Iterative prediction is a mathematical technique for approximating the behavior of one or more particles over an interval of time. To perform iterative prediction, the initial position and velocity of each particle must be known, and the forces acting on each particle must be known.
Iterative prediction is a mathematical technique for approximating the behavior of one or more particles over an interval of time. To perform iterative prediction, the initial position and velocity of each particle must be known, and the forces acting on each particle must be known. Iterative prediction is not 100% accurate, but it is a very powerful tool because it can model complex systems that are impossible to model using known analytical approaches such as calculus.


To perform iterative prediction, the time interval of interest must be divided into small sub-intervals called time steps.  
To perform iterative prediction, the time interval of interest must be divided into small sub-intervals called time steps. For each time step, the following steps should be performed:


For each time interval, the following steps should be performed:
<ol>
<li>The net force acting on each particle should be calculated (often, each force is a function of the particle's position),</li>
<li>The momentum of each particle should be updated from the last time step using the newly calculated net force, and</li>
<li>The position of each particle should be updated from the last time step using its newly calculated velocity.</li>
</ol>


The size of the time steps used during iterative prediction is called the resolution of the model. Dividing a time interval into a few large time steps is called low resolution, while dividing the same time interval into many small time steps is called high resolution. Performing iterative prediction with a higher resolution produces more accurate results but requires more computations. This is because steps 2 and 3 assume constant force and velocity respectively during the duration of each time step. In reality, force and velocity change continually, so this is where inaccuracy is introduced. However, if the time steps are small enough that force and velocity do not significantly change during any time step, iterative prediction is a sufficiently accurate model. In the limit where the time interval is divided into an infinite number of infinitely small time steps, iterative prediction becomes a perfectly accurate model. However, this would require an infinite number of computations, and is therefore impossible to do, although in some situations calculus can be used instead. Deciding what time step to use requires consideration of both the computational resources available and the resolution required to accurately approximate the situation. When performing iterative prediction by hand, it is impractical to perform more than a few time steps, which cannot be used to accurately model much. If computers are available, it becomes feasible to divide the time interval into thousands of time steps, which can accurately simulate most day-to-day situations. Some of the most sensitive simulations, however, require incredibly small time steps. For example, some physicists perform atom-by-atom simulations of molecular structures interacting. A slight change in the position of an atom can cause a huge change in the forces acting on it, so tiny time steps must be used in order to ensure that force and velocity do not significantly change during any one time step. These simulations are run on the world's most powerful supercomputers and can simulate time intervals of several nanoseconds (<math>10^{-9}</math> s) using time steps of only a few femtoseconds (<math>10^{-15}</math> s) [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6286305/ (Click here for a paper about such a simulation)].
The size of the time steps used during iterative prediction is called the resolution of the model. Dividing a time interval into a few large time steps is called low resolution, while dividing the same time interval into many small time steps is called high resolution. Performing iterative prediction with a higher resolution produces more accurate results but requires more computations. This is because steps 2 and 3 assume constant force and velocity respectively during the duration of each time step. In reality, force and velocity change continually, so this is where inaccuracy is introduced. However, if the time steps are small enough that force and velocity do not significantly change during any time step, iterative prediction is a sufficiently accurate model. In the limit where the time interval is divided into an infinite number of infinitely small time steps, iterative prediction becomes a perfectly accurate model. However, this would require an infinite number of computations, and is therefore impossible to do, although in some situations calculus can be used instead. Deciding what time step to use requires consideration of both the computational resources available and the resolution required to accurately approximate the situation. When performing iterative prediction by hand, it is impractical to perform more than a few time steps, which cannot be used to accurately model much. If computers are available, it becomes feasible to divide the time interval into thousands of time steps, which can accurately simulate most day-to-day situations. Some of the most sensitive simulations, however, require incredibly small time steps. For example, some physicists perform atom-by-atom simulations of molecular structures interacting. A slight change in the position of an atom can cause a huge change in the forces acting on it, so tiny time steps must be used in order to ensure that force and velocity do not significantly change during any one time step. These simulations are run on the world's most powerful supercomputers and can simulate time intervals of several nanoseconds (<math>10^{-9}</math> s) using time steps of only a few femtoseconds (<math>10^{-15}</math> s) [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6286305/ (Click here for an example of a paper about such a simulation)].


==Why do we use Iterative Prediction?==
==Why do we use Iterative Prediction?==

Revision as of 09:36, 25 May 2019

This page describes iterative prediction, a technique used to predict the motion of particles over a period of time often used in simulations.

The Main Idea

Iterative prediction is a mathematical technique for approximating the behavior of one or more particles over an interval of time. To perform iterative prediction, the initial position and velocity of each particle must be known, and the forces acting on each particle must be known. Iterative prediction is not 100% accurate, but it is a very powerful tool because it can model complex systems that are impossible to model using known analytical approaches such as calculus.

To perform iterative prediction, the time interval of interest must be divided into small sub-intervals called time steps. For each time step, the following steps should be performed:

  1. The net force acting on each particle should be calculated (often, each force is a function of the particle's position),
  2. The momentum of each particle should be updated from the last time step using the newly calculated net force, and
  3. The position of each particle should be updated from the last time step using its newly calculated velocity.

The size of the time steps used during iterative prediction is called the resolution of the model. Dividing a time interval into a few large time steps is called low resolution, while dividing the same time interval into many small time steps is called high resolution. Performing iterative prediction with a higher resolution produces more accurate results but requires more computations. This is because steps 2 and 3 assume constant force and velocity respectively during the duration of each time step. In reality, force and velocity change continually, so this is where inaccuracy is introduced. However, if the time steps are small enough that force and velocity do not significantly change during any time step, iterative prediction is a sufficiently accurate model. In the limit where the time interval is divided into an infinite number of infinitely small time steps, iterative prediction becomes a perfectly accurate model. However, this would require an infinite number of computations, and is therefore impossible to do, although in some situations calculus can be used instead. Deciding what time step to use requires consideration of both the computational resources available and the resolution required to accurately approximate the situation. When performing iterative prediction by hand, it is impractical to perform more than a few time steps, which cannot be used to accurately model much. If computers are available, it becomes feasible to divide the time interval into thousands of time steps, which can accurately simulate most day-to-day situations. Some of the most sensitive simulations, however, require incredibly small time steps. For example, some physicists perform atom-by-atom simulations of molecular structures interacting. A slight change in the position of an atom can cause a huge change in the forces acting on it, so tiny time steps must be used in order to ensure that force and velocity do not significantly change during any one time step. These simulations are run on the world's most powerful supercomputers and can simulate time intervals of several nanoseconds ([math]\displaystyle{ 10^{-9} }[/math] s) using time steps of only a few femtoseconds ([math]\displaystyle{ 10^{-15} }[/math] s) (Click here for an example of a paper about such a simulation).

Why do we use Iterative Prediction?

Iterative Prediction is a necessary technique to employ when doing physics because, even though our fundamental principles are based on calculus and derivatives and you should be able to solve these problems using integrals, it is often impossible to solve the integrals required to solve complex problems. Iterative Prediction also becomes much more convenient when you implement it using a program, such as vPython, which allows you to make the approximation use as many steps as your processing power can handle, which can make your prediction much more accurate.


A Mathematical Model

By starting from the general equation for the Momentum Principle, a formula can derived to predict the momentum of a given system at a specified point in the future. This is often referred to as the momentum update form of the Momentum Principle:

(1) [math]\displaystyle{ {\frac{∆\vec{p}}{dt}}_{system} = \vec{F}_{net} }[/math]

A system's change in momentum is equal to the net force acting on it over a specific interval of time.


(2) [math]\displaystyle{ {\vec{p}_{f} - \vec{p}_{i} = \vec{F}_{net}{&Delta;t}} }[/math]

∆ stands for final minus initial. In this case, it's the system's final momentum minus its initial momentum that results in the overall change in momentum of the system.


(3) [math]\displaystyle{ {\vec{p}_{f} = \vec{p}_{i} + \vec{F}_{net}{&Delta;t}} }[/math]

By adding the initial momentum value to the other side of the equation, it is now possible to solve for value of the system's final momentum.


Generally, the third form of the momentum principle is the most commonly used form in updating the momentum of a system. Due to the nature of iterative prediction (over many small intervals), any aspect of the equation can be "non-uniform" and still give calculable results.


To find the velocity used in the Position Update Formula, use the "final momentum" from the Momentum Update Equation to solve for the final velocity.

[math]\displaystyle{ {\frac{\vec{p}_{f}}m = \vec{v_{avg}}} }[/math]


Position Update Formula: [math]\displaystyle{ {\vec{r}_{f} = \vec{r}_{i} + \vec{v}_{avg}{&Delta;t}} }[/math]


Remember: This process is repeated for EACH time interval that you are solving for/in.

A Visual Model

As seen from the Momentum Update Formula, the final momentum ([math]\displaystyle{ \vec{p}_{future} }[/math]) of a system after a given ∆t should be the sum of the initial momentum ([math]\displaystyle{ \vec{p}_{now} }[/math]) and the net force on the system multiplied by the ∆t. ([math]\displaystyle{ \vec{F}_{net}{&Delta;t} }[/math]).

Each "step" in the diagram is a time interval in which the object's position and momentum was calculated for. This diagram also illustrates the explanation that having more intervals results in more accurate results (If you have more "steps" you'll have a more defined curve rather than a staircase like curve).


You can observe this Iterative Prediction in action by viewing this Vpython Script[1] (http://www.glowscript.org/#/user/JBarua/folder/Public/program/ProjectilePublic). It shows the flight path of a ball given an initial positive x and y velocity until it hits the ground, calculated using Iterative Prediction. In order to get a visual cue on how changing the time step of an Iterative Prediction calculation, try changing the deltat value from .15 to .05. You will see that making deltat smaller will place the approximation points closer together, which will give the ball's flight path a more consistent curve.

Example Calculations

There are a variety of different problems that can be solved by utilizing the momentum update form of the Momentum Principle. They can vary in difficulty and require any number of iterations. It is often prudent to calculate these iterations in a program loop to save time and avoid miscalculations.

Example #1 - Momentum Update

A 6kg ball is thrown into the air with an initial velocity of [math]\displaystyle{ {\lt 8,6,0\gt m/s} }[/math]. If the only force acting on the ball is gravity, what is the final momentum of the ball after 5 seconds?


Example #2 - Trajectory Maxima

A 6kg ball is thrown into the air with an initial velocity of [math]\displaystyle{ {\lt 8,6,0\gt m/s} }[/math] and the only force acting on the ball is gravity. What is it's position after 5 seconds if it started out at [math]\displaystyle{ {\lt 3, 0 ,0\gt m} }[/math]?


Example #3 - Varying Force

A 6kg ball is sitting at [math]\displaystyle{ {\lt 0, 0,0\gt m} }[/math]. If the ball was kicked with a force of[math]\displaystyle{ {\lt 2,3,0\gt N} }[/math], and then kicked with a force of [math]\displaystyle{ {\lt 4,1,0\gt N} }[/math] 3 seconds later, how far did it travel after an additional 4 seconds?

Connectedness

Iterative prediction is interesting to me in that modeling its motion on a computer can be both complex and very simple. The idea that with a powerful processor you can get infinitely more accurate results than on a laptop is amazing. How much more accurate would our VPython be in lab? Does this mean that our VPython models are erroneous by miniscule amount? Beyond the process of answers, the idea that we are essentially "predicting the future" through math is exciting and really opens up a lot of questions as to the limit of what is predictable and what is not. The most simple idea resulting from iterative prediction is the principle of "this is where I started from, what will it take to get to here" or "this is where I started, where will I end up if I". As a biochemistry major, this principle is a large part of my laboratory procedures. Each reaction that I have to create isn't a blind "let's put in this much of reactant A with B and see how much C I end up with". It's always a question of calculating how much reactant is needed to complete the first reaction, as well calculating the results of what the product will be if this much reactant is added. For complex multi-step reactions, it's identical to the momentum update principle in that you are constantly taking what you are given and solving for where you end up after each reaction to get to the expected final product. Iterative prediction would be useful in pharmaceutical companies that are always trying to determine the effects of medications at the first instance of ingestion, and as the medicine dissolves (several reactions) in the stomach. Essentially, they would be creating multi-step reactions to simulate the human stomach in order to determine if the medication was performing as it should/not being detrimental towards our bodies.

History

The physics behind iterative prediction is nothing more than simple application of the momentum principle and projectile motion, which has existed in classical mechanics for quite some time. However, the practical application of iterative prediction for analyzing systems has evolved due to advances in computational methods and technology. With the computational power of a computer to iteratively calculate changes in momentum through time, one can analyze a system's motion extremely quickly without tedious and difficult mathematical calculations.

See also

There are many public resources that delve further into iterative prediction examples of more complex motion.

External links

Physics Portal

HyperPhysics Concept Map

MIT Open Courseware Introductory Mechanics

Iterative Prediction with VPython

References

CHANGE LECTURE SLIDES Georgia Institute of Technology. Physics Department. PHYS 2211. Fall 2016. Wednesday, Week 2 Lecture Slides. Fenton, Flavio H

Georgia Institute of Technology. Physics Department. PHYS 2211. Fall 2016. Monday, Week 3 Lecture Slides. Fenton, Flavio H

Georgia Institute of Technology. Physics Department. PHYS 2211. Fall 2016. Lab 07 Fancart Energy & Spring-Mass Instructions, Greco, Edwin

http://p3server.pa.msu.edu/coursewiki/doku.php?id=183_notes:iterativepredict

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6286305/ (fix up this citation)