Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 1_lagrangian_mechanics.md #6

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dpgao
Copy link

@dpgao dpgao commented Jul 2, 2020

First, thank you for documenting your work online! I've been going through SICM lately, too, and I'm sure these material will be very helpful. I do think, however, that this 'optimisation' to reduce the number of dimensions is a bit quick. A juggling pin spinning around its central axis will behave differently from one which is stationary, just like how a spinning bicycle wheel behaves differently from a stationary one.

First, thank you for documenting your work online! I've been going through SICM lately, too, and I'm sure these material will be very helpful. I do think, however, that this 'optimisation' to reduce the number of dimensions is a bit quick. A juggling pin spinning around it's central axis will behave differently from one which is stationary, just like how a spinning bicycle wheel behaves differently from a stationary one.
@dpgao
Copy link
Author

dpgao commented Jul 2, 2020

The same goes for the answers to questions e and f. I think the top always has three degrees of freedom regardless of its shape.

@dpgao
Copy link
Author

dpgao commented Jul 2, 2020

I took a go at Exercise 1.6 just now. I think your solution does not necessarily fix the endpoint velocities, because the two extra points you added are passed to Lagrange-interpolation-function together with the other intermediate points in the call to make-path, so the resulting path will still have undetermined endpoint velocities. One can still say that the endpoints are 'constrained', but only in a very weak sense.

Below is my code which constructs a piecewise path where the initial and final segments are forced to be straight lines defined by extra parameters t0*, q0*, t1*, and q1*.

(define (((parametric-path-action* win) L t0 q0 t0* q0* t1* q1* t1 q1) qs)
  (let* ((curve (make-path t0* q0* t1* q1* qs))
	 (path (lambda (t) (cond ((< t t0*) (+ q0 (* (- t t0) (/ (- q0* q0) (- t0* t0)))))
				 ((> t t1*) (+ q1 (* (- t t1) (/ (- q1* q1) (- t1* t1)))))
				 (else (curve t))))))
    ;; display path
    (graphics-clear win)
    (plot-function win path t0 t1 (/ (- t1 t0) 32))
    ;; compute action
    (Lagrangian-action L path t0 t1)))

(define (find-path L t0 q0 t0* q0* t1* q1* t1 q1 n)
  (let ((initial-qs (linear-interpolants q0* q1* n))
	(win (frame 0 :pi -1.2 1.2)))
    (let ((minimizing-qs
	   (multidimensional-minimize
	    ((parametric-path-action* win) L t0 q0 t0* q0* t1* q1* t1 q1)
	    initial-qs)))
      (make-path t0* q0* t1* q1* minimizing-qs))))

If I run the new make-path on a free particle

(find-path (L-free-particle 3.) 0. 1. 0.5 1.1 (- :pi 0.5) -1.1 :pi -1. 4)

I get

which shows that the optimiser does not care about jump discontinuities in the velocity.

I also ran this on the L-harmonic Lagrangian and obtained these curves:

@sritchie
Copy link
Member

@dpgao , somehow I was not subscribed to notifications on my own repository, and missed this! Apologies, I feel terrible for letting this languish for month.

Your answer to 1.6 is way better than mine; you can probably see that I was flailing to justify what I was seeing, instead of understanding this problem.

This is awesome. Do you mind if I incorporate this change into the .org file, with credit to you, of course?

@dpgao
Copy link
Author

dpgao commented Nov 26, 2020

This is awesome. Do you mind if I incorporate this change into the .org file, with credit to you, of course?

Not at all. You’re welcome!

@sritchie
Copy link
Member

I'll pull this in soon as I tidy up this repository!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants