aboutsummaryrefslogtreecommitdiffstats
path: root/journal/02feb2009.html
diff options
context:
space:
mode:
Diffstat (limited to 'journal/02feb2009.html')
-rw-r--r--journal/02feb2009.html103
1 files changed, 103 insertions, 0 deletions
diff --git a/journal/02feb2009.html b/journal/02feb2009.html
new file mode 100644
index 0000000..7f29192
--- /dev/null
+++ b/journal/02feb2009.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>bnewbold thesis</title></head>
+<body style="margin: 25px; font-family: helvetica;">
+<h1 style="border-bottom: 2px solid;">
+Journal: Jan 27, 2009</h1>
+<i>Bryan Newbold, <a href="mailto:bnewbold@mit.edu">bnewbold@mit.edu</a></i><br />
+<i><a href="http://web.mit.edu/bnewbold/thesis/">
+http://web.mit.edu/bnewbold/thesis/</a></i>
+<br /><p />
+<!-- ================================================================ -->
+<!-- ================================================================ -->
+
+Playing with crude evolution of basic differential equations:
+
+<pre style="margin:20px; border-left: solid grey 3px; background-color:lightgrey
+;padding:5px;width:750px;">
+(define J (- (* x d/dy) (* y d/dx)))
+
+(define ((((evolution order)
+ delta-t vector-field)
+ manifold-function)
+ manifold-point)
+ (series:sum
+ (((exp (* delta-t vector-field))
+ manifold-function)
+ manifold-point)
+ order))
+
+(pe ((((evolution 6) 'a J) R2-chi)
+ ((R2 '-&gt;point) (up 1 0))))
+
+(pe ((((evolution 6) 2. J) R2-chi)
+ ((R2 '-&gt;point) (up 1 0))))
+
+(define mywindow (frame -4 4 -4 4))
+
+(define (plot-evolution win order initial a step)
+ (letrec
+ ((dostep
+ (lambda (val)
+ (cond
+ ((&lt; val a) (let ((this-point ((((evolution order) val J) R2-chi)
+ ((R2 '-&gt;point) initial))))
+ (plot-point win
+ (time this-point)
+ (coordinate this-point))
+ (dostep (+ val step))))))))
+ (dostep 0.)))
+
+(plot-evolution mywindow 6 (up 1. 0.) 6. .01)
+</pre>
+<br />
+<img src="02feb2009-evolve-circle-01.png" />
+<br />
+Haha, not really what you'd expect at the end there... numerical error?
+<br />
+And then interactively:
+<pre style="margin:20px; border-left: solid grey 3px; background-color:lightgrey
+;padding:5px;width:750px;">
+(define (explore-evolution window order length)
+ (define (iterate-mything i x y)
+ (if (&lt; i length)
+ (let ((this-point ((((evolution order) i J) R2-chi)
+ ((R2 '-&gt;point) (up x y)))))
+ (plot-point window (time this-point) (coordinate this-point))
+ (iterate-mything (+ .01 i) x y))
+ (button-loop x y)))
+ (define (button-loop ox oy)
+ (pointer-coordinates
+ window
+ (lambda (x y button)
+ (let ((temp button))
+ (cond ((eq? temp 0) (write-line (cons x (cons y (quote ()))))
+ (display " started.")
+ (iterate-mything 0 x y))
+ ((eq? temp 1) (write-line (cons ox (cons oy (quote ()))))
+ (display " continued.")
+ (iterate-mything 0 ox oy))
+ ((eq? temp 2) (write-line (cons x (cons y (quote ()))))
+ (display " hit.")
+ (button-loop ox oy)))))))
+ (newline)
+ (display "Left button starts a trajectory.")
+ (newline)
+ (display "Middle button continues a trajectory.")
+ (newline)
+ (display "Right button interrogates coordinates.")
+ (button-loop 0. 0.))
+
+(explore-evolution mywindow 5 .4)
+</pre>
+<img src="02feb2009-evolve-circle-02.png" />
+<br />
+That looks a lot better!
+<br /><br />
+<a href="27jan2009.html"><i>(previous entry)</i></a>
+
+<!-- ================================================================ -->
+<!-- ================================================================ -->
+</body>
+</html>