Overview
O
| \
| \
| \ L1
| \
| \
| \M
| /
| / L2
| /
| N
|
|
|
x
-With
µ1 = ( Ox , OM ) & µ2 = ( Ox , MN )
L1 & L2 = lengths of rod (constant)
m1 & m2 = mass of pendulum
g = gravitational constant
-The differential equations are:
µ1" = [ −g (2 m1 + m2) sin µ1 − m2 g sin(µ1 − 2 µ2) − 2 sin(µ1 − µ2) m2 (µ'22 L2 + µ'12 L1 cos(µ1 − µ2)) ] / [ L1 (2 m1 + m2 − m2 cos(2 µ1 − 2 µ2)) ]
µ2" = [ 2 sin(µ1−µ2) (µ'12 L1 (m1 + m2) + g(m1 + m2) cos µ1 + µ'22 L2 m2 cos(µ1 − µ2)) ] / [ L2 (2 m1 + m2 − m2 cos(2 µ1 − 2 µ2)) ]
-"DPN" employs a Runge-Kutta method of order 4:
Program Listing
Data Registers: R00 & R09-R10 & R15 to R26: temp ( • Registers are to be initialized before executing "DPN" )
• R01 = t0 • R04 = m1 • R06 = L1 • R08 = g • R11 = µ1 ( rd ) • R13 = µ'1 ( rd/s )
• R02 = h = stepsize • R05 = m2 • R07 = L2 • R12 = µ2 ( rd ) • R14 = µ'2 ( rd/s )
• R03 = N = number of steps
Flags: /
Subroutines: /
-Line 228 is a three-byte GTO 01
01
LBL "DPN" 02 RAD 03 RCL 02 04 2 05 / 06 STO 09 07 RCL 03 08 STO 16 09 GTO 01 10 LBL 00 11 RCL 13 12 X^2 13 RCL 06 14 * 15 RCL 11 16 RCL 12 17 - 18 1 19 P-R 20 STO 10 21 X<>Y 22 STO 00 23 RDN 24 * 25 RCL 14 26 X^2 27 RCL 07 28 * 29 + 30 RCL 05 31 * 32 RCL 00 33 * 34 ST+ X |
35
RCL 11 36 RCL 12 37 ST+ X 38 - 39 SIN 40 RCL 05 41 * 42 RCL 04 43 ST+ X 44 LASTX 45 + 46 RCL 11 47 SIN 48 * 49 + 50 RCL 08 51 * 52 + 53 RCL 06 54 / 55 CHS 56 STO 15 57 RCL 05 58 RCL 10 59 * 60 RCL 07 61 * 62 RCL 14 63 X^2 64 * 65 RCL 11 66 COS 67 RCL 08 68 * |
69
RCL 13 70 X^2 71 RCL 06 72 * 73 + 74 RCL 04 75 RCL 05 76 + 77 * 78 + 79 RCL 00 80 ST+ X 81 * 82 RCL 07 83 / 84 RCL 04 85 ST+ X 86 RCL 05 87 + 88 RCL 11 89 RCL 12 90 - 91 ST+ X 92 COS 93 RCL 05 94 * 95 - 96 RCL 02 97 / 98 ST/ 15 99 / 100 RTN 101 LBL 01 102 RCL 11 |
103
STO 17 104 RCL 12 105 STO 18 106 RCL 13 107 STO 19 108 RCL 14 109 STO 20 110 XEQ 00 111 STO 22 112 2 113 / 114 ST+ 14 115 RCL 15 116 STO 21 117 LASTX 118 / 119 ST+ 13 120 LASTX 121 ST/ Z 122 / 123 RCL 19 124 + 125 RCL 09 126 * 127 ST+ 11 128 CLX 129 RCL 20 130 + 131 RCL 09 132 * 133 ST+ 12 134 XEQ 00 135 STO 24 136 2 |
137
/ 138 RCL 20 139 + 140 STO 14 141 RCL 15 142 STO 23 143 2 144 / 145 RCL 19 146 + 147 STO 13 148 XEQ 00 149 STO 26 150 RCL 20 151 + 152 STO 14 153 RCL 15 154 STO 25 155 RCL 19 156 + 157 STO 13 158 RCL 26 159 2 160 ST/ 15 161 / 162 RCL 20 163 + 164 RCL 02 165 * 166 RCL 18 167 + 168 STO 12 169 RCL 15 |
170
RCL 19 171 + 172 RCL 02 173 * 174 RCL 17 175 + 176 STO 11 177 XEQ 00 178 STO 10 179 RCL 21 180 RCL 23 181 RCL 25 182 + 183 STO 00 184 + 185 ST+ 00 186 6 187 / 188 RCL 19 189 STO 13 190 + 191 RCL 02 192 * 193 RCL 17 194 + 195 STO 11 196 RCL 00 197 RCL 15 198 + 199 6 200 / 201 ST+ 13 202 RCL 22 |
203
RCL 24 204 RCL 26 205 + 206 STO 00 207 + 208 ST+ 00 209 6 210 / 211 RCL 20 212 STO 14 213 + 214 RCL 02 215 * 216 RCL 18 217 + 218 STO 12 219 RCL 00 220 RCL 10 221 + 222 6 223 / 224 ST+ 14 225 RCL 02 226 ST+ 01 227 DSE 16 228 GTO 01 229 RCL 01 230 SIGN 231 RCL 14 232 RCL 13 233 RCL 12 234 RCL 11 235 END |
( 305 bytes / SIZE 027 )
STACK | INPUTS | OUTPUTS |
T |
/ |
µ'2 |
Z |
/ |
µ'1 |
Y |
/ |
µ2 |
X |
/ |
µ1 |
L |
/ |
t0
+ N.h |
Example: t0 = 0 h = 0.01 N = 10
m1 = 1 L1 = 3 µ1 = µ'1 = µ'2 = 0 µ2 = 1 radian g = 9.81
m2 = 2 L2 = 4
0 STO 01 0.01 STO 02 10 STO 03 0 STO 11 STO 13 STO 14 1 STO 04 STO 12 2 STO 05 3 STO 06 4 STO 07 9.81 STO 08
XEQ "DPN" >>>> µ1 = 0.006224775 rd ---Execution time = 4mn02s---
RDN µ2 = 0.987152548 rd
RDN µ'1 = 0.125934133 rd/s
RDN µ'2 = -0.257668985 rd/s
and LASTX = t = 0.1 s
-Then, R/S >>>> µ1 = 0.025775346 rd
RDN µ2 = 0.948159032 rd
RDN µ'1 = 0.269616097 rd/s
RDN µ'2 = -0.524685660 rd/s
and LASTX = t = 0.2 s
Reference:
[1] https://web.mit.edu/jorloff/www/chaosTalk/double-pendulum/double-pendulum-en.html