In this project we applied different methods of ODE's to our problems. Each problem asked different questions were described at each of the problems listed below.
Note that on this project the output of Matlab was the pendulum figures that are posted on this webpage. In every part there are the associated images and code.
For problem 6.3.4, we created a forced damped version of pend.m . We ran the trapezoid method in two ways:
a) with d = 1, A = 10, and h = 0.005 and the initial condition of my choice.
b) with d = 1, A = 10, and h = 0.1 and the initial condition of my choice.
We tried using different initial conditions, including [
Below are the pendulums when we ran part A. We tried different initial values, pend([0 1], [0 2], 200), pend([0 10], [0 pi], 2000), pend([0 10], [0 3*pi/2], 2000), pend([0 10], [0 pi/2], 2000), and finlly pend([0 10], [pi/2 2*pi], 2000).
Above is pend([0 10], [0 3*pi/2], 2000)
Above is pend([0 10], [pi/2 2*pi], 2000)
While all the figures are not included, and they run really slow they do all go through periodic motion and except for the last image run through ultimately the same motion, which is posted above. It is safe to say that even with different initial values that our function will eventually the pendulum will attract the periodic trajectory.
Below are the pendulums when we ran part B. We tried different initial values, pend([0 10], [0 pi], 100), pend([0 10], [0 pi/2], 100), pend([0 10], [pi/2 0], 100), pend([0 10], [3*pi/2 2*pi], 100), and finally pend([0 10], [3*pi/4 pi], 100).
Above is pend([0 10], [pi/2 0], 100)
Above is pend([0 10], [3*pi/4 pi], 100)
So some things that can be noted in this part of the project, the pendulum is moving much faster than previously. It can also be seen that the pend([0 10], [pi/2 0], 100), runs really differently than any of its previous functions. It makes different motios in the beginning by going all the way around in a circle and then returning to the periodic trajectory. I think this is because of the step sizing we are taking in combination with working backwards on an interval.
Here you will find the code that was used in this part of the project:
Note that the only change in the code from what was posted on the website is that we had to adjust our ydot.m file so that we had a forced damped system and we hard coded the A value and had to test and make sure that our h value went accordingly.
In problem 6.3.5 we are running the same code as in problem 6.3.4 except we are allowing A
= 12 and A = 15. We also were to find two initial conditions
were (y1, y2) = (a, 0) and (b,0)
where |a-b|
Here are some of the tries that we did when we set A = 12, pend([0 5],[pi/2 0],1000), pend([0 5],[pi/2.1 0],1000), pend([0 5],[pi/1.9 0],1000),pend([0 5],[pi/2.2 0],1000),pend([0 5],[pi/2.3 0],1000), pend([0 5],[pi/2.4 0],1000), and finally pend([0 5],[pi/2.5 0],1000).
Above is pend([0 5], [pi/1.99 0], 1000)
To find an inteval that was requested I used the initial guess of [pi/2 0] because it had such an interesting and easy to follow pendulum movement. So I just started to make guesses that would have |a-b|
We can conclude that pend([0 5], [pi/2.1 0], 1000) has about .25 turns clockwise, then 2.5 turns counterclockwise, and the 1.25 turn clockwise again. And that pend([0 5], [pi/1.99 0], 1000) has about .25 turns
clockwise, then 2.25 turns counterclockwise, and the 1.5 turn clockwise again which is different, and abs(pi/.99-pi/2.1) = 0.082693273963838
Here are some of the outputs that we got when we set A = 15, pend([0 5], [pi/2 0], 1000), pend([0 5], [0 pi/2], 1000), pend([0 5], [0 3*pi/2], 1000), pend([0 5], [0 pi], 1000), and finally pend([0 5],[pi/2 0],1000).
Here you will find the code that was used in this part of the project:
In problem 6.3.6, we adapted pend.m to build a damped pendulum with oscillating pivot. What we wanted to accomplish in this part of the project was to investigate the phenomenon of parametric resonance, which by the inverted pendulum becomes stable.
The equation that was needed for this part of the project is listed below:
We define A to be the forcing strength. We set d = 0.1 and the length of the pendulum to 2.4 meters. We should note that when A = 0 and y = 0 there is stable
equilibrium. But when y =
In the image below the forcing strength is A = 19. Through iterative methods and a less sophisticated manual binary search, the following bounds were determined for a forcing strength A which stabilized the inverted
pendulum with initial position y = 3.1: 18.125
Here you will find the code that was used in this part of the project:
For problem 6.3.7 we were to use the parameter settings that were used in problem 6 to see other effects to parametric resonance. We can make stable equilibrium become unstable with the oscillating pivot. We wanted to find the smallest positive value of A for which this would happen. We classified the downwatrd position as unstable when the pendulum would eventually travel back to the inverted position.
Above is the .gif file that is associated with this part of the project. With an oscillating pivot, the stable equilibrium can become unstable. The produced image demonstrates this phenomenon to some degree, but lacks the time to show the pendulum pass through the inverted position which does eventually happen for 17.920528. Iterative techniques were used to find this degree of precision.
Here you will find the code that was used in this part of the project:
For problem 6.3.8 we were to adapt pend.m to build a double pendulum. First, a new bob-rod pair was defined in the same fashion as the original one, except instead of (0, 0) as a starting point, it starts from the first previously-defined bob. Next, both trapstep and ydot were definted to have pair outputs, as well as being tweaked with more equations to be able to solve for both bobs' angles and their corresponding angular velocities instead of just one. Likewise, the pend.m function was tweaked to take in two angular displacement/velocity pairs instead of just one.
Here you will find the code that was used in this part of the project:
Credits:
6.3.4, 6.3.5, and web design by Chelsea Brunson
6.3.6, 6.3.7 by Austin Alderete
6.3.8 by Robert Truong