Hacker News new | ask | show | jobs
by superposeur 724 days ago
The “differentiation” in the title turns out to be derivative of a quarternion-valued function with respect to a scalar parameter.

But, I wonder if you math folks know of a definition of derivative of a quarternionic function with respect to quarternionic variable, generalizing the Cauchy-Riemann definition [1] of complex differentiation?

[1] https://en.m.wikipedia.org/wiki/Cauchy%E2%80%93Riemann_equat...

4 comments

In Wirtinger calculus (https://en.m.wikipedia.org/wiki/Wirtinger_derivatives) you consider a complex variable and its conjugate as independent. This simplifies a lot of things e.g. Cauchy Riemann becomes just df/dz* = 0.

TensorFlow works this way, jax instead differentiates real and imaginary parts.

I wonder if there is a version for quaternions now.

The problem with generalizing this to quarternions is that the conjugation operation for quaternions can be expressed using arithmetic operations on the quaternion:

q* = -0.5(q + iqi + jqj + kqk)

So the analogy to complex analysis where we'd talk of z and z as independent doesn't work anymore - since we can write q* as an 'analytic' function of q.

It's not surprising you'd need something different though, since (q, q*) is only two variables and quaternions are 4-dimensional. I don't know a lot about quaternions, but Penrose introduces them in The Road to Reality and says (roughly) "yeah, they don't have the nice analytic-function properties that complex numbers have" and seems to kinda leave it at that. If anyone knows more and wants to reduce my ignorance, I'd be grateful.

I think some of the stars for your complex conjugates fell foul of HN formatting:

https://news.ycombinator.com/formatdoc

The Cauchy-Riemann equations just say that the derivative (as a map of 2-vectors) acts as a complex multiplication (treating 2-vectors as complex numbers). For quaternions you would say it acts as quaternion multiplication I guess. But since quaternions aren't commutative, you would also have to say if it's acting as a left or a right multiplication...
In the "Multivector Derivative" section you may plug in an arbitrary multivector function of your liking:

https://en.wikipedia.org/wiki/Geometric_calculus