|
11 | 11 | { |
12 | 12 | "cell_type": "code", |
13 | 13 | "execution_count": 1, |
14 | | - "id": "9aca811d-d252-4872-b1d2-84eb2ffb50ef", |
| 14 | + "id": "e5b0ff81-f09d-4772-b3b5-a5fa89183572", |
15 | 15 | "metadata": {}, |
16 | 16 | "outputs": [], |
17 | 17 | "source": [ |
18 | | - "# In this example non-autonomous hamiltonial is integrated using midpoint and tao integrators\n", |
19 | | - "# For explicitly defined hamiltonian function and factory generated one" |
| 18 | + "# In this example non-autonomous hamiltonial is integrated" |
20 | 19 | ] |
21 | 20 | }, |
22 | 21 | { |
23 | 22 | "cell_type": "code", |
24 | 23 | "execution_count": 2, |
25 | | - "id": "936385d7-e524-4ceb-b98b-781cd68e9bb6", |
| 24 | + "id": "8d36ea78-e74a-4b7c-bea9-b3fb3e912f2d", |
26 | 25 | "metadata": {}, |
27 | 26 | "outputs": [], |
28 | 27 | "source": [ |
|
31 | 30 | "import jax\n", |
32 | 31 | "from jax import Array\n", |
33 | 32 | "from jax import jit\n", |
34 | | - "from jax import vmap\n", |
| 33 | + "from jax import jacrev\n", |
35 | 34 | "\n", |
36 | 35 | "from elementary import fold\n", |
37 | 36 | "from elementary import nest\n", |
|
48 | 47 | { |
49 | 48 | "cell_type": "code", |
50 | 49 | "execution_count": 3, |
51 | | - "id": "702bdf71-e4d6-49b8-bd42-42a68d52cb21", |
| 50 | + "id": "b8fc02ee-9f08-4456-92fe-d561a276a2c0", |
52 | 51 | "metadata": {}, |
53 | 52 | "outputs": [], |
54 | 53 | "source": [ |
|
60 | 59 | { |
61 | 60 | "cell_type": "code", |
62 | 61 | "execution_count": 4, |
63 | | - "id": "fa15f4d1-0702-4969-bafd-63fb23793950", |
| 62 | + "id": "dc2e0cd9-8be4-4f2c-a40a-335c41935958", |
64 | 63 | "metadata": {}, |
65 | 64 | "outputs": [], |
66 | 65 | "source": [ |
|
73 | 72 | { |
74 | 73 | "cell_type": "code", |
75 | 74 | "execution_count": 5, |
76 | | - "id": "bb56ad88-26ed-465f-b141-d581cb5cd324", |
| 75 | + "id": "fd191c35-b7ce-4038-86dd-2a0f1a56e475", |
77 | 76 | "metadata": {}, |
78 | 77 | "outputs": [], |
79 | 78 | "source": [ |
|
87 | 86 | { |
88 | 87 | "cell_type": "code", |
89 | 88 | "execution_count": 6, |
90 | | - "id": "43d3146a-ae63-4ad0-9971-80c40c8d7986", |
| 89 | + "id": "d0bb3c3f-eea3-4894-8a7a-79dcd729b369", |
91 | 90 | "metadata": {}, |
92 | 91 | "outputs": [], |
93 | 92 | "source": [ |
|
101 | 100 | { |
102 | 101 | "cell_type": "code", |
103 | 102 | "execution_count": 7, |
104 | | - "id": "3b57db3d-8b24-4220-bd76-34394cf77dcb", |
| 103 | + "id": "d957559c-df5d-430f-b080-74e2327a15c7", |
105 | 104 | "metadata": {}, |
106 | 105 | "outputs": [], |
107 | 106 | "source": [ |
|
121 | 120 | { |
122 | 121 | "cell_type": "code", |
123 | 122 | "execution_count": 8, |
124 | | - "id": "3cdc8a98-2453-4378-b79d-aeb4a5405f25", |
| 123 | + "id": "ec7439c5-33c0-4b90-841d-5cb91de3e615", |
125 | 124 | "metadata": {}, |
126 | 125 | "outputs": [], |
127 | 126 | "source": [ |
|
135 | 134 | { |
136 | 135 | "cell_type": "code", |
137 | 136 | "execution_count": 9, |
138 | | - "id": "b1a8cb34-eb7b-4e2e-9b97-99dbee504c36", |
| 137 | + "id": "7bf4d7b0-8f7f-4f56-8a37-da51aaa8a8f9", |
139 | 138 | "metadata": {}, |
140 | 139 | "outputs": [], |
141 | 140 | "source": [ |
|
147 | 146 | { |
148 | 147 | "cell_type": "code", |
149 | 148 | "execution_count": 10, |
150 | | - "id": "4c99d4c6-da3b-4330-a48e-bf7f6799895e", |
| 149 | + "id": "2cddbce9-6bdc-4775-b704-77a8751fe0d5", |
151 | 150 | "metadata": {}, |
152 | 151 | "outputs": [ |
153 | 152 | { |
|
169 | 168 | { |
170 | 169 | "cell_type": "code", |
171 | 170 | "execution_count": 11, |
172 | | - "id": "a6bfe0bf-dc77-41f7-9553-85c683c42df5", |
| 171 | + "id": "19999d5f-4812-49a5-947d-d8ab2dd23921", |
173 | 172 | "metadata": {}, |
174 | 173 | "outputs": [], |
175 | 174 | "source": [ |
|
181 | 180 | { |
182 | 181 | "cell_type": "code", |
183 | 182 | "execution_count": 12, |
184 | | - "id": "a0290e60-2679-457e-932d-49e018ad22ff", |
| 183 | + "id": "0197ddbc-306e-473e-8efb-ef7350151b65", |
185 | 184 | "metadata": {}, |
186 | 185 | "outputs": [ |
187 | 186 | { |
|
203 | 202 | { |
204 | 203 | "cell_type": "code", |
205 | 204 | "execution_count": 13, |
206 | | - "id": "f0f85ac6-0edc-4888-83f3-f13aa9fa654e", |
| 205 | + "id": "bed740e9-90ae-41cd-9497-4515a1357de8", |
207 | 206 | "metadata": {}, |
208 | 207 | "outputs": [], |
209 | 208 | "source": [ |
210 | 209 | "# Define non-autonomous and extended hamiltonian (factory)\n", |
211 | 210 | "\n", |
212 | | - "def vector(qs:Array, s:Array, kn:Array, *args:Array) -> Array:\n", |
| 211 | + "def vector(qs:Array, s:Array, kn:Array, *args:Array) -> tuple[Array, Array, Array]:\n", |
213 | 212 | " q_x, q_y, q_s = qs\n", |
214 | 213 | " a_x, a_y, a_s = jax.numpy.zeros_like(qs)\n", |
215 | 214 | " a_s = - 1/2*kn*(1 + jax.numpy.cos(s))*(q_x**2 + q_y**2)\n", |
|
227 | 226 | { |
228 | 227 | "cell_type": "code", |
229 | 228 | "execution_count": 14, |
230 | | - "id": "7281a8c6-e48e-412c-8a7a-4171568cfc3d", |
| 229 | + "id": "e0d482f4-339d-447b-b9e4-bf4ea9affe9a", |
231 | 230 | "metadata": {}, |
232 | 231 | "outputs": [], |
233 | 232 | "source": [ |
|
241 | 240 | { |
242 | 241 | "cell_type": "code", |
243 | 242 | "execution_count": 15, |
244 | | - "id": "0f0d5d1c-e319-4903-870b-5a5c889e01ca", |
| 243 | + "id": "7c4b69cc-a971-496c-b06a-60e5a5523bf4", |
245 | 244 | "metadata": {}, |
246 | 245 | "outputs": [], |
247 | 246 | "source": [ |
|
253 | 252 | { |
254 | 253 | "cell_type": "code", |
255 | 254 | "execution_count": 16, |
256 | | - "id": "7ee34eb9-5831-499d-acb2-2d7bb47845ff", |
| 255 | + "id": "da3b5a65-4622-48ad-98bf-5aeb105efe36", |
257 | 256 | "metadata": {}, |
258 | 257 | "outputs": [ |
259 | 258 | { |
|
275 | 274 | { |
276 | 275 | "cell_type": "code", |
277 | 276 | "execution_count": 17, |
278 | | - "id": "f3e51caf-9d1d-4e4f-9c13-f091eddc705f", |
| 277 | + "id": "82028949-c38d-44a5-951f-adb343d576e3", |
279 | 278 | "metadata": {}, |
280 | 279 | "outputs": [], |
281 | 280 | "source": [ |
|
287 | 286 | { |
288 | 287 | "cell_type": "code", |
289 | 288 | "execution_count": 18, |
290 | | - "id": "a7bfdfe6-9287-4301-9db8-b28ab3482e88", |
| 289 | + "id": "2fe48996-c406-4f12-af48-bcb6ea190787", |
291 | 290 | "metadata": {}, |
292 | 291 | "outputs": [ |
293 | 292 | { |
|
309 | 308 | { |
310 | 309 | "cell_type": "code", |
311 | 310 | "execution_count": 19, |
312 | | - "id": "3d4ed639-5ede-4c3c-bd0a-29faca01499e", |
| 311 | + "id": "951dec84-88db-49fd-980d-3712ee53dac9", |
313 | 312 | "metadata": {}, |
314 | 313 | "outputs": [ |
315 | 314 | { |
|
333 | 332 | "source": [ |
334 | 333 | "# Diffirentiability (initial condition)\n", |
335 | 334 | "\n", |
336 | | - "jax.jacrev(element)(X, ds, si, kn)" |
| 335 | + "jacrev(element)(X, ds, si, kn)" |
337 | 336 | ] |
338 | 337 | }, |
339 | 338 | { |
340 | 339 | "cell_type": "code", |
341 | 340 | "execution_count": 20, |
342 | | - "id": "a0944868-7d08-4841-9a51-3d71fdec59b5", |
| 341 | + "id": "6d84bd97-6ce3-418f-89be-6fb842d1c58d", |
343 | 342 | "metadata": {}, |
344 | 343 | "outputs": [ |
345 | 344 | { |
|
356 | 355 | "source": [ |
357 | 356 | "# Diffirentiability (parameter)\n", |
358 | 357 | "\n", |
359 | | - "jax.jacrev(element, argnums=-1)(X, ds, si, kn)" |
| 358 | + "jacrev(element, argnums=-1)(X, ds, si, kn)" |
360 | 359 | ] |
361 | 360 | } |
362 | 361 | ], |
|
0 commit comments