UmbralRaptor changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> … one of the other grad students just compared me to nomal O_o | <ferram4> I shall beat my problems to death with an engineer.
<Majiir>
the what
<GalacticRaptor>
<egg|egg|egg>
<egg>
well that hardly makes sense, how can egg be an observable and a state
<egg>
GalacticRaptor: well in matrix mechanics it's easy, its' just multiplication
icefire has quit [Read error: Connection reset by peer]
Majiir is now known as Snoozee
e_14159 has quit [Ping timeout: 186 seconds]
e_14159 has joined #kspacademia
<Ellied>
UmbralRaptor: although it's a lot cheaper than the Oxford Handbook of The Science of The Science of Science Communication ($1600)
<UmbralRaptor>
I feel like that should be $25600
<Ellied>
that's the teacher's edition.
<Ellied>
yaaaay systematic error
<Ellied>
spectrometer is off by several nanometers. >_>
* UmbralRaptor
blames read noise.
<UmbralRaptor>
Oh, that.
<UmbralRaptor>
There's always the chance that you're moving relative to the light source at ~0.01 c.
<Ellied>
my designs are occasionally a bit dangerous, but they're rarely that bad.
<Ellied>
"NOTICE OF EXPULSION: Ellie D. GreeningGalaxy. Reason: Attempted to use anti-silicon photodiode, resulting in the destruction of expensive apparatus, the lab, the building, the university, and the city."
<UmbralRaptor>
heh
<UmbralRaptor>
If it's any consolation, telescope spectrographs need to take calibration images every single night that they're used.
<Ellied>
also this hydrogen peak is coming out weirdly lopsided. I hope that isn't due to photodiode wavelength response differences at that scale, although it's worryingly in the right direction.
<Ellied>
the the H-α line isn't secretly a doublet, is it?
<UmbralRaptor>
Not normally, but if you're somehow picking up hyperfine transitions they all are.
<Ellied>
I did a step size of 0.01 nm, but that was probably overkill for my slit size which was 50 entire microns
<UmbralRaptor>
Doh, just fine structure.
<UmbralRaptor>
And, uh, you might be partially resolving it.
<Ellied>
wow, that did not save to PNG well. spikes?
<UmbralRaptor>
hrm
<Ellied>
yeah, I doubt that's what I'm looking at
<Ellied>
we really need to get a PMT on this thing
<Ellied>
turns out a $1 photodiode and an amplifier an undergrad knocked together in a week is the weakest link in an otherwise $10⁵ machine.
* UmbralRaptor
snerks
<Ellied>
the main reason I've been bothering with detector design nonsense is that I feel like it would be fun to build a simple automated prism spectrometer, and this gives me a great opportunity to test detectors
<SnoopJeDi>
Ellied, did you scan in the other direction?
<Ellied>
no, not yet. good thinking.
<Ellied>
do you think the tube is brightening over time?
<SnoopJeDi>
¯\_(ツ)_/¯
* UmbralRaptor
doesn't touch enough hardware.
<SnoopJeDi>
samesies
<Ellied>
I already let it warm up for a little bit before starting the scan, and it also spent like 10 minutes scanning the empty region before it got to the line, so I'm not sure. I'll do the reverse scan anyway though.
<Ellied>
mainly to make sure my code can actually handle reverse scans, lol
<SnoopJeDi>
you could also sweep the scan there-and-back to see if there's any sort of hysteresis, but that sounds...weird for a spectrometer?
<Ellied>
I think the future profession I'm looking at right now is basically "hardware physicist"
<SnoopJeDi>
my field alone would happily soak up such an enthusiasm for hardware tbqh, it's a rich vein
<SnoopJeDi>
if you're good at it, it can be basically carte blanche to work tangent to whatever field you think is interesting
<UmbralRaptor>
Instrumentation is very much a subfield.
<Ellied>
I keep hearing that. My professor keeps telling me about how being good at hardware will take you a long way in physics
<SnoopJeDi>
It forces you to apply what you learn in meatspace more often
<SnoopJeDi>
...which now is making me wonder if more physicists should be doing strength training
<Ellied>
heh
<SnoopJeDi>
I've been very much enjoying a mechanics-principles look at barbell lifting (courtesy of Rippetoe)
<Ellied>
I've been biking a lot now that the weather has warmed up, but I think having good leg muscles for long and fast sprints is more useful in chemistry than physics
<SnoopJeDi>
Ellied, I can definitely say that if you are going to pursue grad school, building some kind of regular exercise habit *beforehand* goes a lot further than you might imagine
<SnoopJeDi>
(my demo and wrist (!) are at ~1:58 in that video for all of 2 seconds)
<Ellied>
that looks like a fun time
<SnoopJeDi>
it's the best day of the year
<SnoopJeDi>
Brian Greene admitted it's better than his
<Ellied>
I always loved going to those sorts of events at my mom's uni when I was little
<SnoopJeDi>
I'm kinda bummed there's no interview content in this video, hopefully there are more forthcoming
<Ellied>
at every annual multi-department science picnic, the lab coordinator from physics would always do some demo. He did bubbles with a slow-motion camera, the giant fog ring cannon, that one where you knock over a line of successively larger dominoes so a teeny tiny one ends up knocking over the whole giant one...
<Ellied>
one I remember well was his demonstration the diamagnetism of water by putting a hard drive magnet under an aluminum baking sheet with a thin layer of water on top and bouncing a light off the surface
<SnoopJeDi>
the one right next to ours every year is a binding-energy release demo that uses ball bearings and neodymium magnets to show off the same cascade sort of effect
<Ellied>
ooh, that sounds cool
<SnoopJeDi>
you may also enjoy http://realphysicslive.com/ which is a selected set of demos with more detail
<SnoopJeDi>
I will hopefully be recording a bike wheel gyroscope one sometime next month, the coordinator asked me personally to do it which is probably the highest compliment I've been paid since I came here
<egg|zzz|egg>
!wpn whitequark
* Qboid
gives whitequark a geodesic graviton rotor
egg|cell|egg has joined #kspacademia
egg|phone|egg has quit [Read error: Connection reset by peer]
egg|phone|egg has joined #kspacademia
egg|cell|egg has quit [Read error: -0x1: UNKNOWN ERROR CODE (0001)]
<kmath>
<cgranade> Biblio trick of the day: https://t.co/HglLow2cls generates BibTeX directly! $ wget --header="Accept: application/x-bibtex; charset=utf-8"
<SnoopJeDi>
That is awesome
<bofh>
egg|zzz|egg: sure
<bofh>
egg|zzz|egg: sup
<egg|zzz|egg>
bofh: inf
<egg|zzz|egg>
:-p
<egg|zzz|egg>
bofh: so, I am converting Cartesian state vectors to orbital elements
<egg|zzz|egg>
in doing so, I compute the eccentricity vector, the specific relative angular momentum bivector, and the specific energy
<bofh>
yeah
<egg|zzz|egg>
if I take the norms of the first two, I have e, h, and ε.
<egg|zzz|egg>
I can turn the latter two into p (semilatus rectum) and a, and the transformation is well-conditioned.
<bofh>
*nods* (wait... eccentricity *vector*?)
<egg|zzz|egg>
yeah it's a bit odd, but it's a thing
<egg|zzz|egg>
now, to get b, r_pe, and r_ap given a, p, e, investigating the condition numbers shows that you need to compute b with a and p, r_pe with p and e, and r_ap with a and e
<bofh>
wait, what is b again?
<egg|zzz|egg>
(those combinations have bounded (and small) conditions)
<egg|zzz|egg>
the semiminor axis
<egg|zzz|egg>
the semiminor baxis I guess :p
<egg|zzz|egg>
and p is the semipatus rectum :-p
<bofh>
ahh.
<egg|zzz|egg>
letters are hard
<egg|zzz|egg>
so, I know how to compute b, r_pe, and r_ap...
<bofh>
okay, so this is all fairly doable unless those condition numbers are *really* nasty...
<egg|zzz|egg>
... if I am given a, p, and e
<egg|zzz|egg>
but I don't know how well-conditioned my vector computations to *get* those are
<egg|zzz|egg>
so maybe my error analysis would point me to different paths if I took those into account
<egg|zzz|egg>
and I don't know how to evaluate their condition
<egg|zzz|egg>
the bivector h is computed as h = Wedge(r / Radian, v);
<egg|zzz|egg>
the vector e is computed as v * h / μ * Radian - Normalize(r) [note that in coordinates v * h is a *cross product*, written * because it's matrix multiplication in a sense]
<egg|zzz|egg>
(and how does it affect the error analysis of (a, p, e) -> (b, r_pe, r_ap))
Thomas is now known as Thomas|AWAY
<egg|zzz|egg>
bofh: btw, I should show you my calculations for the conditioning of the various flavours of (a, p, e) -> (b, r_pe, r_ap), it's impressively tricky http://i.imgur.com/tRXEGZw.png
<egg|zzz|egg>
you need to use a different pair for each, otherwise you have infinite condition at the wrong eccentricity :D
<bofh>
sec (sorry, got pestered IRL (still in office atm)), reading through
* egg|zzz|egg
isn't sure what timezone bofh is in (or whether your office hours have something to do with your timezone)
<bofh>
CDT (so UTC-5) most of the time
<bofh>
(kinda. they're weakly correlated with daylight hours, sadly. but at least only weakly)
<bofh>
Wedge(r / Radian, v)
<bofh>
this is the Wedge product on a how-many-dimensional space?
<bofh>
or are you just using a very troll form of the R^3 cross product? :P
<bofh>
Your ε computation is obviously fine, the only possible issue might be using a larger-precision accumulator in your Inner Product but otherwise no real ill-conditioning is possible.
<bofh>
The subtraction in vector e runs the risk of ""fun"" if Normalize(r) is of a much different order than the result you get for the first term.
<bofh>
And I'm still not sure how your bivector there is being computed.
<UmbralRaptor>
Iskierka: AAAAAAAAAA
<soundnfury>
UmbralRaptor: you seem surprisingly Latin, are you ill?
<UmbralRaptor>
soundnfury: ΑΑΑΑΑΑΑ
<SnoopJeDi>
∀∀∀∀∀∀∀∀∀∀∀∀∀∀∀∀∀
<soundnfury>
UmbralRaptor: hmm. Open your mouth and say "Αнɦ".
<UmbralRaptor>
∷
<egg|zzz|egg>
!u ∷
<Qboid>
U+2237 PROPORTION (∷)
<soundnfury>
there… are… four… dots!
<egg|zzz|egg>
bofh: just a cross product (well a wedge), of r and v
<egg|zzz|egg>
so h (the scalar) is the norm of a cross product
Norgg has quit [*.net *.split]
Norgg has joined #kspacademia
<egg|zzz|egg>
bofh: wait, the condition of ε eggsplodes as ε goes to 0 (as e goes to 1), it's a cancellation
<Ellied>
huh. the option to delete a paypal account is magically gone
<bofh>
egg|zzz|egg: well, yes, but I assume that you're using different code for the e-in-nbhd-of-1 case
<bofh>
since *everything* fucks up then
<egg|zzz|egg>
bofh: >_> I wasn't, that's why I looked at the condition as a function of e for (a, p, e) -> (b, r_pe, r_ap)
<egg|zzz|egg>
<_<
<egg|zzz|egg>
bofh: amusingly if you have all of a, p, and e, you can get the others in well-conditioned ways http://i.imgur.com/tRXEGZw.png
<bofh>
huh.
<egg|zzz|egg>
bofh: I think the computation of h should be always well-conditioned (it's the norm of a cross product)?
<bofh>
So norm is always well-conditioned, and yeah I think the same is always true for a wedge product.
Norgg has quit [*.net *.split]
Norgg has joined #kspacademia
<egg|zzz|egg>
bofh: as a function of the norms of the vectors, it is (because it's r v cos φ, and so the conditions in r and v are obviously 1 and 1)
<egg|zzz|egg>
not sure how it behaves as a function of the vectors
<egg|zzz|egg>
but it feels like it should behave well
<bofh>
Like... I can't see it not behaving well as a function of the vectors at least in this case
<Ellied>
whitequark: I got my doppler module working. It's surprisingly good at seeing me, it just needs a fuckton of gain.
<Ellied>
on its output signal I mean
<egg|zzz|egg>
bofh: yeah; now the energy otoh... :-\
<egg|zzz|egg>
bofh: any idea how to compute things near the parabolic case?
<egg|zzz|egg>
bofh: also the eccentricity computation probably has terrible condition near the circular case (it's a cancellation too)
<egg|zzz|egg>
(in fact that vector points to the periapsis, so obvious singularity there)
<bofh>
that's what I meant by "everything related to computing the eccentricity has terrible condition in an nbhd of 1"
<bofh>
i.e. the circular case basically needs special treatment
<bofh>
parabolic... hmm...
<bofh>
sec
<egg|zzz|egg>
??ΑАⲀ?ᚨ אاܐ??
<egg|zzz|egg>
bofh: and a neighbourhood of 0, too >_>
regex has quit [Remote host closed the connection]
<soundnfury>
egg|zzz|egg: if you have an orthonormal basis, then the wedge product in co-ordinate form has to be well-behaved
<soundnfury>
because it's just sums of products of co-ordinates
<soundnfury>
but it's fine as long as you only use the result as a [bi]vector, and don't try to do anything silly like dividing it by its norm shirley
<egg|zzz|egg>
well I take its norm
<egg|zzz|egg>
but its norm is ill-conditioned as a function of the angle if it nears 0
<egg|zzz|egg>
re the Kahan thing: this is a formula that works in high dimension; I think you can gain ~1 ULP in 3d by doing arctan(norm(wedge), norm(inner product)), but I can't find references, and blindly following the dark lord Kahan is good enough for me :-p
<egg|zzz|egg>
(also why bother for 1 additional bit on a well-conditioned formula)
<soundnfury>
there's no actual singularity or anything as the angle goes to 0 though, it's rh sinθ, which is 'just' rhθ. I guess the problem comes with the co-ordinate calculations cancelling crudely. Crap.
<soundnfury>
sorry, s/h/v/g in that
<egg|zzz|egg>
soundnfury: there's no singularity, but look at the condition in the angle
<soundnfury>
(only as a variable, obviously, not every time I used that letter)
<egg|zzz|egg>
the condition number plops a cotangent
<soundnfury>
if it's just |h| you want, maybe use your Kahan formula for θ and then do rv sinθ -_-
<egg|zzz|egg>
something feels wrong about that
<egg|zzz|egg>
i.e. I think that in 3d you can get one more bit than kahan with arctan(|h| / |the inner product|)
<egg|zzz|egg>
so, if you compute the norm, then use that to compute the angle, then use that to compute a better norm, what is wrong with the world
<egg|zzz|egg>
also it's not about the computation being bad, it's about the *actual function* being ill-conditioned
<egg|zzz|egg>
that's a property of the function, not of the way it's computed
<egg|zzz|egg>
(the Kahan formula also has the property that it works in high dimension *and* works even if you only have the one parameter arctangent)
<egg|zzz|egg>
you use the arctangent of the quotient, and it's designed to be well-behaved for that use
<soundnfury>
hmm... is the (norm of cross) condition bad around θ = 0, or only around θ = π?
<egg|zzz|egg>
both
<egg|zzz|egg>
note that I'm doing this as a function of (r,v,θ); only the condition in θ explodes, the condition as a function of either norm is 1 obviously
<soundnfury>
is wiki lying to me when it says condition of sin(x) is x cot(x)?
<egg|zzz|egg>
it's not
<egg|zzz|egg>
aaah right, so at 0 it's fine
<soundnfury>
yay, I'm not going mad
<egg|zzz|egg>
the condition is shit only for antiparallel vectors, of course...
<egg|zzz|egg>
right, that's covered in mangled angles
<soundnfury>
so if v ~= -u,
<soundnfury>
u_i v_j ~= u_j v_i, leading to sadness
<egg|zzz|egg>
indeed
<soundnfury>
if v ~= u, somehow this does _not_ produce equivalent sadness? *scratches head*
<egg|zzz|egg>
I like Kahan's titles: "a case study of bits lost in space"
* soundnfury
discusses valueless measures in pointless spaces
<egg|zzz|egg>
waitwait, this is solely because we chose this angle; it's not intrinsic to the vectors
<egg|zzz|egg>
remember what the condition is
<egg|zzz|egg>
when we're saying it's huge at π, we're saying a tiny relative error around π yields a huge relative error in the norm
<soundnfury>
yeah but |u + εi| = |u| :P
<egg|zzz|egg>
but a tiny relative error around the nonzero π is big
<egg|zzz|egg>
whereas the expected norm vanishes
<soundnfury>
(okay, I probably need to divide by 'morally' 1+ε)
<egg|zzz|egg>
a tiny relative error around angle 0 vanishes
<soundnfury>
ahhhh
<egg|zzz|egg>
so yes, the statement about angular condition is true, but boring
<soundnfury>
in other words: condition numbers are silly
<egg|zzz|egg>
no, you just need to use the right arguments
<soundnfury>
(when you are working with something that looks like a scalar but doesn't quack like a scalar)
<egg|zzz|egg>
we are *not* using the angles as an input
<egg|zzz|egg>
so we shouldn't take the angles as parameters for the condition number
<soundnfury>
then I go back to my earlier "there's no actual singularity or anything as the angle goes to 0 though" position
<soundnfury>
if we consider our inputs as just being the co-ordinates of the vectors, then d|u×v|/du_i is just (vj - vk), for some appropriate ordering of those suffixes
<soundnfury>
uh, wait ignore that
<soundnfury>
that's maybe an upper bound on that derivative? (if we take some moduli)
<soundnfury>
I think |u×v| equals det(1,u,v), does that help us at all?
<egg|zzz|egg>
so for the condition number from cartesian coords, I'm getting the sum of the squared norms divided by the norm of the result
<egg|zzz|egg>
so r**2 v**2 / h
<egg|zzz|egg>
erm
<egg|zzz|egg>
so (r**2 + v**2) / h (how does that even make sense its' not homogeneous)
<egg|zzz|egg>
what have I done
<soundnfury>
you monster!
<egg|zzz|egg>
aha, if I take the condition as a function of *one* operand (both is silly, I don't have a norm for them together) it's the norm of the result
<egg|zzz|egg>
<egg|zzz|egg> so r**2 v**2 / h
<egg|zzz|egg>
no wait
<egg|zzz|egg>
it's rv/h
<egg|zzz|egg>
uh, that's 1/cos φ isn't it :D
<egg|zzz|egg>
ok, good, we have a condition number \o/
<soundnfury>
I hope to confirm or deny shortly, please wait…
<egg|zzz|egg>
so the condition of h does explode if you're going away from or towards the body, which makes sense, because then the semilatus rectum should be terribly behaved if you think about it
<egg|zzz|egg>
so what I computed was the differential of |u×v| with respect to all of u, took the norm of that, multiplied by the norm of u, divided by |u×v|
<egg|zzz|egg>
that should be the condition number in that norm
<soundnfury>
differentiation with respect to a vector is WITCHCRAFT I say!
<soundnfury>
(yeah I know it's just a linearisation matrix thing)
<egg|zzz|egg>
unless you're a physicist and then you have to play the harp to a gradient for some reason
* soundnfury
gives egg|zzz|egg a neodymium ∇
* egg|zzz|egg
zzz
<soundnfury>
hmm. I can make this easier on myself. WLOG v = î
<soundnfury>
writing ε₃ feels weird :S
<egg|zzz|egg>
WLOG, the word that means "we're about to lose generality"
<soundnfury>
hehe
<egg|zzz|egg>
oBdA
<soundnfury>
but I can choose whatever basis I want as long as it's orthogonal, right?
<egg|zzz|egg>
dunno, a bit too tired now, zzztime
* egg|zzz|egg
wonders whether bofh is still around
<egg|zzz|egg>
!wpn bofh
* Qboid
gives bofh a Lambert beta series
<egg|zzz|egg>
!wa CDT
<Qboid>
egg|zzz|egg: Central Time (Mexico) | daylight saving time: 6:41:22 pm CDT | Tuesday, May 2, 2017
<soundnfury>
I think grad |u×i| = (0, u₂, u₃) / |u × i|. Does that seem plausible?
<soundnfury>
(|u × i| = |0, u₂, u₃| incidentally)
<soundnfury>
which seems to hint in the direction of grad|u × v| maybe being (u × v)/|u × v| but that's probably just me being over-optimistic :P
<soundnfury>
I should probably z^n as well
<soundnfury>
(I think my "v = i" trick is legit, because it's just a case of projecting u onto the plane perpendicular to v (which we're treating as a constant). Also scaling v, so I might have gained or lost a |v| somewhere, but I don't think so.)