Phil Lucht Math & Physics Archive
Home / Math and Physics Files / Math / Ahlfors Complex Analysis

Projective and Fractional Linear Transformations

DOCX · 193.3 KB
Open DOCX file

Typed notes by Phil dated 9.7.09, prompted by page 76 of Ahlfors's Complex Analysis. They develop planes with enhanced (homogeneous) coordinates, solve the n-dimensional projection problem for a tilted screen with two observers, and show the result is a fractional linear transformation. They then treat general FLTs, the group isomorphism with GL(n+1), and the link to artist perspective and computer graphics.

AI-written summary; may contain errors.

Extracted text (machine-read; may contain errors)
Projective and Fractional Linear Transformations PhL 9.7.09 Motivation: This subject comes up on page 76 of Ahlfors's book Complex Analysis which I have been reading through of late. He only deals with the lowest case n = 1 which applies to the subject of conformal mapping in complex analysis. On page 77 top he mentions things like the "complex projective line" and P(1,C) and SL(2,C) and that got me wondering about this subject. I devote a lot of the Ahlfors raw notes to web snippets on this subject, and here I try to assemble all the pieces in a reasonable order. Of course not all details are mentioned here, and this has been a "roll my own" effort so probably major ideas have been overlooked. Another motivation is that I think projective transformations occur in other areas of interest to me, perhaps in general relativity. The web site of most interest is this: http://en.wikipedia.org/wiki/Projective_transformation These notes have nothing to say about the larger subject of projective geometry and related topics. CONTENTS: 0. Overview: 1 1. Facts about Planes 2 (a) Facts about a plane in 3 dimensions. 2 (b) A "plane" in 2D space is a line 3 (c) A "plane" in n dimensional space (the plane being an n-1 dimensional thing) 3 2. Solve the projection problem in n dimensions. 4 (a) Apply general result to the case n = 2 10 (b) Apply general result to the case n = 3 12 3. Resolve the general problem using enhanced coordinates: Mμν first appears 16 (a) Verify things for n=2 20 4. Modification to get to standard form 21 5. Review of results now shown in the modified enhanced vector notation 22 6. Showing that the projective transformation is a fractional linear transformation (FLT) 25 7. General fractional linear transformations (of order n) 27 8. General fractional linear transformations connected to matrices: the group isomorphism 29 9. How is our "projective transformation" connected to artist's drawing "projection"? 33 10. What is the "perspective transformation" of computer graphics or artist drawing? 34 0. Overview: The "projective linear transformation on a plane" lying in n-dimensional space comes out being an example of a fractional linear transformations (FLT) of order n+1, but apart from the n=1 case, it does not give a most-general FLT. (1) We begin with a review of the mathematics of "planes", and this then motivates us to add another component to an n-dimensional Cartesian vector X to make an "enhanced" vector X with n+1 components. (2) We then solve the projective transformation problem and verify our results against some web results in special cases. (3) We then go back and re-solve the projection problem using a nicer notation which we described loosely as being more "covariant". (4) We are then forced to make a small modification of our enhanced vectors (move the newly added component from the first position to the last). (5) We then review all our work in the modified notation, and finally (6) we show that the projective linear transformation is in fact an FLT, although this is pretty obvious along the way. (7) We then consider FLT's in their own right (independent of projective transformations), and we find that the FLT's form a group we call GFLT(n). (8) Finally, we show this group to be isomorphic to GL(n+1). In this isomorphism, the Cartesian vectors X appearing in the FLT correspond to so-called homogeneous vectors X appear in the GL(n+1) matrix transformations. This isomorphism provides a simple mechanical way to compute the results of concatenating FLT's. 1. Facts about Planes (a) Facts about a plane in 3 dimensions. From our geometry document we know that, for a plane in R3, plane: a1x1 + a2 x2 + a3 x3 + d = 0 parallel plane through origin: a1x1 + a2 x2 + a3 x3 = 0 or ar = 0 Thus, a must be the normal vector since ar = 0 for any point r on the plane a = n // not normalized to a unit vector Parallel translating back from the origin plane to the original one does not change the normal. resulting plane equation: a r + d = 0 r = (x1, x2, x3) In the following section (in geo doc) we will show that n = 3d(g) . For g = ax + by + cz + d = 0, we see at once that n = 3d(g) = (a,b,c). Now, to make the notation more compact, we might define some 4-vectors as follows xμ = (x0,x1,x2, x3) = (1, x1, x2, x3) x0 = 1 aμ = (a0,a1,a2, a3) = (d, a1, a2, a3) a0 = d Then we can write our equation for the plane as follows: a.x ≡ Σμ=03 aμ xμ = aμ xμ = 0 that is: a.x = 0 Hard to get more compact than that. There are four terms in the sum. So a "plane" in 3D space (the plane being a 2D object) is a.x = 0 where these things are 4 vectors. You could call a the enhanced normal vector and x the enhanced position vector. ( enhanced is not a standard term) (b) A "plane" in 2D space is a line plane: a1x1 + a2 x2 + d = 0 parallel plane through origin: a1x1 + a2 x2 = 0 ar = 0 Thus, a must be the normal vector since ar = 0 for any point r on the plane a = n // not normalized to a unit vector Parallel translating back from the origin plane to the original one does not change the normal. resulting plane equation: a r + d = 0 r = (x1, x2) To compact down the notation, we write xμ = (x0,x1,x2) = (1, x1, x2) aμ = (a0,a1,a2) = (d, a1, a2) Then we can write our equation for the plane as follows: a.x ≡ Σμ=02 aμ xμ = aμ xμ = 0 that is: a.x = 0 where there are now three terms in the sum. (c) A "plane" in n dimensional space (the plane being an n-1 dimensional thing) plane: Σi=1naixi + d = 0 parallel plane through origin: Σi=1naixi = 0 ar = 0 Thus, a must be the normal vector since ar = 0 for any point r on the plane a = n // not normalized to a unit vector Parallel translating back from the origin plane to the original one does not change the normal. resulting plane equation: a r + d = 0 r = (x1, x2, ...xn) To compact down the notation, we write xμ = (x0,x1,x2...xn) = (1, x1, x2...xn) aμ = (a0,a1,a2...an) = (d, a1, a2... an) d = 0 for a plane through the origin Then we can write our equation for the plane as follows: a.x ≡ Σμ=0n aμ xμ = aμ xμ = 0 that is: a.x = 0 where there are now n+1 terms in the sum. 4. Definition: we shall refer to xμ = (1, x1, x2...xn) as the "enhanced coordinates" of the point x = (x1, x2...xn) In notes below, I will often refer to xμ as Xμ and x as X. 2. Solve the projection problem in n dimensions. Now here is our famous projective geometry picture, We imagine that the subjective matte painting screen which contains points X and T lies in the plane xn = 0, so the xn axis goes "up" in this picture. The objective "m" plane is tilted at some weird angle which is just symbolically shown in the figure as a tilted line. The coordinates of a point on the matte painting are these : x = (x1, x2...xn-1, 0) so this is an (n-1)-dimensional matte painting. The "playhouse" is n dimensional. The coordinates of a "point in this n dimensional playhouse" are generically x = (x1, x2...xn) and the corresponding enhanced coordinates are xμ = (1, x1, x2...xn). Following the tradition of our Ahlfors and wiki documents, we can set x = (x1, x2...xn-1, 0) t = (t1, t2...tn-1, 0) regular Xμ = (1, x1, x2...xn-1, 0) Tμ = (1, t1, t2...tn-1, 0) enhanced since these points are both on the matte painting. But P and Q have in general all non-zero components. Our problem is this: given the equation of the tilted objective screen to be x.o = 0 (in enhanced coordinates, see Section 1 above), and given the observers located at P and Q, and given X, solve for T. It is probably easiest to do everything in enhanced coordinates, but we shall see. Our picture has four planes each of which we can characterize by an equation: [ notice that P is the position of an observer, but p is the enhanced normal to a plane; s = subjective plane, o = objective plane] objective screen x.o = 0 oμ = (o0, o1, o2...on) // given subjective screen x.s = 0 sμ = (0, 0, 0...0, 1) plane holding X,R,P x.p = 0 pμ = ? plane holding T,R,Q x.q = 0 qμ = ? The subjective screen normal sμ is as shown because the normal to this screen is n and because we choose the playhouse origin to lie on the this plane, so this plane passes through the origin and s0 = 0. Now let's just write down things that we know, grouping things by "plane" in order o,s,p and q: R.o = 0 => o0 + Ro = 0 X.s = 0 => Xn = 0 = Xs T.s = 0 => Tn = 0 = Ts X.p = 0 => p0 + Xp = 0 R.p = 0 => p0 + Rp = 0 P.p = 0 => p0 + Pp = 0 T.q = 0 => q0 + Tq = 0 R.q = 0 => q0 + Rq = 0 Q.q = 0 => q0 + Qq = 0 Comment: we are going to repeat this entire derivation in a later Section using only the "covariant" A.B notation, but this was my first attempt and it did come out correctly. So far we have only said, for example, that X,R,P lie on the p plane. But we know more than that: we know that these three Cartesian points lie on the same "line" in En. In other words, we know that P – R = a (P–X) (1-a)P + aX = R (1) Q – R = b (Q–T) (1-b)Q + bT = R (2) where a and b are some as yet unknown (and positive for our picture) scalar quantities. We can subtract these two equations to get one in which R does not appear, ( we mark equations that we "use" below) (1-a)P - (1-b)Q +aX - bT = 0 (3) [ used ] If we can find a and b, then this tells us our solution T. So let's try to find a and b! Let's try dotting our two original equations (*) with various vectors. Start with the first equation: (1-a)P + aX = R (1) (1-a)Ps + aXs = Rs (1-a)Pn = Rn (1-a)Pp + aXp = Rp (1-a) (–p0 ) + a(–p0 ) = (–p0) // tells us nothing (1-a)Pq + aXq = (–q0) (1-a)Po + aXo = (–o0) so we have learned these three facts: (1-a)Pn = Rn (1a) [ used ] (1-a)Pq + aXq = (–q0) (1b) (1-a)Po + aXo = (–o0) (1c) [ used ] But we know P, X, o and o0 so we can solve this last equation for a: a [Xo – Po] = (–o0) – Po a [Po – Xo ] = o0 + Po a = (o0 + Po) / (Po – Xo) (4) 1-a = (Xo + o0) / (Xo – Po) (4a) From the second equation, we replace a→b, P→Q, X→T, p ↔ q so we will learn these new facts (1-b)Qn = Rn (2a) [ used ] (1-b)Qp + aTp = (–p0) (2b) (1-b)Qo + bTo = (–o0) (2c) If we now combine (1a) and (2a) we get (1-a)Pn = (1-b)Qn (6) and this then gives us our other unknown b, (1-b) = (1-a) Pn/Qn = (Pn/Qn) (Xo + o0) / (Xo – Po) (7) b = [(Pn/Qn) (Xo + o0) – (Xo – Po)] / (Po – Xo) (7a) OK Now we have the answer to our problem from (3) above (1-a)P - (1-b)Q +aX - bT = 0 which we solve now for T bT = (1-a)P - (1-b)Q +aX T = (1-a)/b P - (1-b)/b Q +a/b X Notice that we can write this in enhanced coordinates as T = (1-a)/b P - (1-b)/b Q +a/b X and it is easy to check that the 0th component of the RHS is 1, as it must be. Now, how can we simplify our result? (1-a)/b = { (Xo + o0) / (Xo – Po)} / { [(Pn/Qn) (Xo + o0) – (Xo – Po)] / (Po – Xo)} = – (Xo + o0) / [ (Pn/Qn) (Xo + o0) – (Xo – Po)] (1-b)/b = { (Pn/Qn) (Xo + o0) / (Xo – Po)} / { [(Pn/Qn) (Xo + o0) – (Xo – Po)] / (Po – Xo) } = – {(Pn/Qn) (Xo + o0)} / { [(Pn/Qn) (Xo + o0) – (Xo – Po)] } a/b = {(o0 + Po) / (Po – Xo)} / { [(Pn/Qn) (Xo + o0) – (Xo – Po)] / (Po – Xo) } = (o0 + Po) / [(Pn/Qn) (Xo + o0) – (Xo – Po)] Now define this denominator function D ≡ (Pn/Qn)(Xo + o0) – (Xo – Po) Then we have found that (1-a)/b = – (Xo + o0)/D -(1-b)/b = { (Pn/Qn) (Xo + o0)}/D a/b = (o0 + Po) /D Our solution is then: T = (1-a)/b P - (1-b)/b Q +a/b X = [ (– (Xo + o0) P + (Pn/Qn) (Xo + o0) Q +(o0 + Po) X ] / D which we shall rewrite in this way T = N/D Ti = Ni/D i = 1,2...n N = (– (Xo + o0) P + { (Pn/Qn) (Xo + o0)} Q +(o0 + Po) X D ≡ (Pn/Qn) (Xo + o0) – (Xo – Po) Now as a check on our result, we should find that Tn = 0 (since T lies on the subjective plane) Nn = (– (Xo + o0) Pn + {(Pn/Qn) (Xo + o0)} Qn +(o0 + Po) Xn = (– (Xo + o0) Pn + { (Pn/Qn) (Xo + o0)} Qn since Xn = 0 = (Xo + o0) { - Pn + (Pn/Qn)Qn} = (Xo + o0) { - Pn + Pn } = 0 check Now restate the result again: Ti = Ni/D i = 1,2...n Ni = (– (Xo + o0) Pi + (Pn/Qn)(Xo + o0) Qi + (o0 + Po) Xi D = (Pn/Qn) (Xo + o0) – (Xo – Po) Let's now rewrite things to bring out the X dependence of our result: Ni = (– (Xo + o0) Pi + (Pn/Qn)(Xo + o0) Qi + (o0 + Po) Xi = Xo [(Pn/Qn) Qi - Pi] + o0[Qi(Pn/Qn) - Pi] + (o0 + Po) Xi D = Xo [(Pn/Qn) – 1] + o0(Pn/Qn) + Po Now use these notations Xi = ΣjXjδij Xo = Σj Xjoj to get Ni = Xo [(Pn/Qn) Qi - Pi] + o0[Qi (Pn/Qn) - Pi] + (o0 + Po) Xi = Σj oj [(Pn/Qn) Qi - Pi] Xj + (o0 + Po) ΣjXjδij + o0[Qi (Pn/Qn) - Pi] = Σj { oj [ (Pn/Qn) Qi - Pi] + (o0 + Po) δij } Xj + o0[Qi (Pn/Qn) - Pi] = Σj Aij Xj + Bi D = Xo [(Pn/Qn) – 1] + o0(Pn/Qn) + Po = Σj [(Pn/Qn) – 1] oj Xj + o0(Pn/Qn) + Po = Σj Cj Xj + E So our solution for point T is given by Ti = Ni/D i = 1,2...n Ni = Σj=1n-1 Aij Xj + Bi D = Σj=1n-1 Cj Xj + E In these sums, we know that Xn = 0 so we omit that term. We have shown that the solution to our problem does in fact give an (n)-linear fractional transformation. Both the numerators and the common denominator are linear combinations of X1, X2 .... Xn-1 plus a constant. If n = 2, we would have only variable X1 = x, and this got called a bilinear fractional transformation on our wiki site. If n = 3, then we have up and down being functions of X1, X2 = x,y and this was called a trilinear fractional transformation. Why does the solution come out being a fractional linear transformation? Let's backtrack to the basic equations we got above: (1-a) P - (1-b) Q +a X = bT (3) (1-a)Po + aXo = (–o0) (1c) (1-a)Pn = (1-b)Qn (6) It is not obvious to me at this point that T is going to come out as an n-linear fraction, but let's try to make it more obvious. Equation (1c) says that a = 1/l1(X) where l1 is a "linear function" of X by which I mean that it has the form AX+B . It follows that (1-a) = 1 - 1/l1(X) = l2(X)/l1(X) If we put this into (6) we find that (1-b) = l3(X)/l1(X) and then b = l4(X)/l1(X) . So our four coefficients in (3) have this form: (1-a) = l2(X)/l1(X) (1-b) = l3(X)/l1(X) a = 1/l1(X) b = l4(X)/l1(X) These coefficients all have the same denominator! That is the key fact. When we insert them into (3), the denominator cancels and we get l2(X) P - l3(X) Q + X = l4(X) T and this gives us the general form of our result: T = [ l2(X) P - l3(X) Q + X] / l4(X) = the n-linear fractional form we want So we don't have to do all the algebra to reach this conclusion. Final restatement of our general result: ( better statements are given later) Ti = Ni/D i = 1,2...n-1 Ni = Σj=1n-1 Aij Xj + Bi D = Σj=1n-1 Cj Xj + E Aij = oj [(Pn/Qn) Qi - Pi] + (o0 + Po) δij Bi = [Qi (Pn/Qn) - Pi] o0 Cj = [(Pn/Qn) – 1] oj E = o0 (Pn/Qn) + Po At this point we want to check this general result to ferret out any possible errors. (a) Apply general result to the case n = 2 Our "plane" is the line y = mx+b or x2 = mx1+b. Above we write this in the general form o.X = 0 = (o0, o1, o2).(1,x1, x2) = o0 + o1 x1 + o2 x2 . Solving we get x2 = -(o1/o2)x1 - (o0/o2) => m = -(o1/o2) b = - (o0/o2) Notice that A,B,C and E are all linear in σ in our general formula, so we can set σ2 = -1 without loss of generality. Then we have o0 = b o1 = m σ2 = -1 Po = P1o1 + P2o2 = mP1 - P2 The general equations simplify to these T1 = N1/D N1 = A11 X1 + B1 D = C1 X1 + E A11 = o1 [(P2/Q2) Q1 - P1] + (o0 + P1o1– P2) δ11 = m [(P2/Q2) Q1 - P1] + (b + mP1– P2) B1 = [Q1 (P2/Q2) - P1] b C1 = [(P2/Q2) – 1] m E = b (P2/Q2) + m P1 – P2 Write this then as ( t = T1 and x = X1 ) the following bilinear fractional transformation, where α = m [(P2/Q2) Q1 - P1] + (b + mP1– P2) = m [(P2/Q2) Q1 ] + (b – P2) β = [Q1(P2/Q2) - P1] b γ = [(P2/Q2) – 1] m δ = b (P2/Q2) + m P1– P2 But now multiply through by Q2 to get α = m [P2Q1 - P1Q2] + (b Q2 + m Q2P1– P2Q2) = m P2Q1 + b Q2 – P2Q2 ok β = [Q1P2- Q2P1] b ok γ = [P2 – Q2] m ok δ = b P2 + mP1Q2 - P2Q2 ok and here are the results quoted from my Ahlfors web notes Everything agrees. (The reader might not be surprised that it took me about 4 error passes to get the various algebra errors cleaned up, hence the benefit of notes of this form where passes and repair are relatively easy to do. ) (b) Apply general result to the case n = 3 Our "plane" is the line z = mx + ny + b or x3 = mx1 + nx2 + b. Above we write this in the general form o.X = 0 = (o0, o1, o2,o3).(1,x1, x2, x3) = o0 + o1 x1 + o2 x2 + o2 x3 Solving we get x3 = - (o0/o3) -(o1/o3)x1 -(o2/o3)x2 => b = - (o0/o3) m = -(o1/o3) n = -(o2/o3) As noted in the earlier case, we can scale all σ components by a constant and not change our answer, so let's scale such that o3 = -1, then we get these simple connections o3 = -1 o2 = n o1 = m o0 = b Our general result is this Ti = Ni/D i = 1,2...n-1 Ni = Σj=1n-1 Aij Xj + Bi D = Σj=1n-1 Cj Xj + E Aij = oj [(Pn/Qn) Qi - Pi] + (o0 + Po) δij Bi = [Qi (Pn/Qn) - Pi] o0 Cj = [(Pn/Qn) – 1] oj E = o0 (Pn/Qn) + Po Where now n = 3, so we simplify slightly to say Ti = Ni/D i = 1,2 Ni = Σj=12 Aij Xj + Bi D = Σj=12 Cj Xj + E Aij = oj [(P3/Q3) Qi - Pi] + (o0 + Po) δij Bi = [Qi (P3/Q3) - Pi] o0 Cj = [(P3/Q3) – 1] oj E = o0 (P3/Q3) + Po Now Po = P1o1 + P2o2 + P3o3 = mP1 + nP2 – P3 so our results become ( installing for o0 and Po and expand sums) Ti = Ni/D i = 1,2 Ni = Ai1 X1 + Ai2X2 + Bi D = C1 X1 + C2 X2 + E Aij = oj [(P3/Q3) Qi - Pi] + (b + mP1 + nP2 – P3) δij Bi = [Qi (P3/Q3) - Pi] b Cj = [(P3/Q3) – 1] oj E = b (P3/Q3) + mP1 + nP2 – P3 Ready to write out the coefficients in more detail. Lots of lines to allow for later checks: Aij = oj [(P3/Q3) Qi - Pi] + (b + mP1 + nP2 – P3) δij A1j = oj [(P3/Q3) Q1 - P1] + (b + mP1 + nP2 – P3) δ1j A11 = o1 [(P3/Q3) Q1 - P1] + (b + mP1 + nP2 – P3) δ11 A11 = m [(P3/Q3) Q1 - P1] + (b + mP1 + nP2 – P3) = m [(P3/Q3) Q1] + (b + nP2 – P3) A1j = oj [(P3/Q3) Q1 - P1] + (b + mP1 + nP2 – P3) δ1j A12 = o2 [(P3/Q3) Q1 - P1] + (b + mP1 + nP2 – P3) δ12 A12 = n [(P3/Q3) Q1 - P1] A2j = oj [(P3/Q3) Q2 - P2] + (b + mP1 + nP2 – P3) δ2j A21 = o1 [(P3/Q3) Q2 - P2] + (b + mP1 + nP2 – P3) δ21 A21 = m [(P3/Q3) Q2 - P2] A2j = oj [(P3/Q3) Q2 - P2] + (b + mP1 + nP2 – P3) δ2j A22 = o2 [(P3/Q3) Q2 - P2] + (b + mP1 + nP2 – P3) δ22 A22 = n [(P3/Q3) Q2 - P2] + (b + mP1 + nP2 – P3) = n [(P3/Q3) Q2] + (b + mP1 – P3) Next we have Bi = [Qi (P3/Q3) - Pi] b Cj = [(P3/Q3) – 1] oj B1 = [Q1 (P3/Q3) - P1] b C1 = [(P3/Q3) – 1] o1 B1 = b [Q1 (P3/Q3) - P1] C1 = m[(P3/Q3) – 1] Bi = [Qi (P3/Q3) - Pi] b Cj = [(P3/Q3) – 1] oj B2 = [Q2 (P3/Q3) - P2] b C2 = [(P3/Q3) – 1] o2 B2 = b [Q2 (P3/Q3) - P2] C2 = n [(P3/Q3) – 1] E = b (P3/Q3) + mP1 + nP2 – P3 Summarize these results so far (notice there are 9 coefficients, just grab the final result for each) A11 = m [(P3/Q3) Q1] + (b + nP2 – P3) A12 = n [(P3/Q3) Q1 - P1] A21 = m [(P3/Q3) Q2 - P2] A22 = n [(P3/Q3) Q2] + (b + mP1 – P3) B1 = b [Q1 (P3/Q3) - P1] C1 = m[(P3/Q3) – 1] B2 = b [Q2 (P3/Q3) - P2] C2 = n [(P3/Q3) – 1] E = b (P3/Q3) + mP1 + nP2 – P3 Now the results are: Ti = Ni/D i = 1,2 Ni = Ai1 X1 + Ai2X2 + Bi N1 = A11 X1 + A12X2 + B1 N2 = A21 X1 + A22X2 + B2 D = C1 X1 + C2 X2 + E Multiply all coefficients by Q3 without changing the result, so A11 = m [(P3Q1] + (b + nP2 – P3) Q3 A12 = n [P3 Q1 - P1Q3] A21 = m [P3 Q2 - P2Q3] A22 = n [P3Q2] + (b + mP1 – P3) Q3 B1 = b [Q1 P3 - P1 Q3] C1 = m[P3 – Q3] B2 = b [Q2 P3 - P2 Q3] C2 = n[P3 – Q3] E = b P3 + mP1 Q3 + nP2 Q3 – P3 Q3 T1 = N1/D T2 = N2/D N1 = A11 X1 + A12X2 + B1 N2 = A21 X1 + A22X2 + B2 D = C1 X1 + C2 X2 + E And here are the web result symbols: So my results in terms of these symbols are: α = A11 = m [(P3Q1] + (b + nP2 – P3) Q3 β = A12 = n [P3 Q1 - P1Q3] γ = B1 = b [Q1 P3 - P1 Q3] δ = C1 = m[P3 – Q3] ε = C2 = n[P3 – Q3] ξ = E = b P3 + mP1 Q3 + nP2 Q3 – P3 Q3 η = A21 = m [P3 Q2 - P2Q3] θ = A22 = n [P3Q2] + (b + mP1 – P3) Q3 κ = B2 = b [Q2 P3 - P2 Q3] But now negate all terms to get closer to web quoted results: α = –A11 = –m [(P3Q1] + (–b – nP2 + P3) Q3 ok β = –A12 = n [–P3 Q1 + P1Q3] ok γ = –B1 = b [–Q1 P3 + P1 Q3] ok δ = –C1 = m[Q3 – P3] ok ε = –C2 = n[Q3 – P3] ok ξ = –E = –b P3 – mP1 Q3 – nP2 Q3 + P3 Q3 ok η = –A21 = m [–P3 Q2 + P2Q3] ok θ = –A22 = –n [P3Q2] + (–b – mP1 + P3) Q3 ok κ = –B2 = b [–Q2 P3+ P2 Q3] ok We can compare these results with the web-quoted results: (everything matches) 3. Resolve the general problem using enhanced coordinates: Mμν first appears Now that we have solved the problem correctly, there must be a simpler way. Let's start with the main facts here P – R = a (P–X) (1-a)P + aX = R (1) Q – R = b (Q–T) (1-b)Q + bT = R (2) We can subtract these two equations to get one in which R does not appear, (1-a)P - (1-b)Q +aX - bT = 0 (3) Now we can write all these equations trivially in enhanced coordinates like so: P – R = a (P–X) (1-a)P + aX = R (1) Q – R = b (Q–T) (1-b)Q + bT = R (2) (1-a)P - (1-b)Q +aX - bT = 0 (3) In the two starting equations, we know we are OK on the μ=0 component since both sides are zero, so the three derived equations must also be OK. And here are our enhanced dot product rules: R.o = 0 X.s = 0 T.s = 0 X.p = 0 R.p = 0 P.p = 0 T.q = 0 R.q = 0 Q.q = 0 Let's try some dotting around: (1-a)P + aX = R (1) (1-a)P.o + aX.o = R.o => (1-a)P.o + aX.o = 0 (1-a)P.p + aX.p = R.p => 0 = 0 (1-a)P.q + aX.q = R.q => (1-a)P.q + aX.q = 0 (1-a)P.s + aX.s = R.s => (1-a)Pn = Rn We end up with three possibly useful equations: (1-a)P.o + aX.o = 0 (1-a)P.q + aX.q = 0 (1-a)Pn = Rn The first equation can be solved for a a(P.o - X.o) = P.o => a(P-X).o = P.o => a = P.o / (P-X).o If we process equation (2) in the same way, we get three results with appropriate changes, (1-b)Q.o + bT.o = 0 (1-b)Q.q + bT.q = 0 (1-b)Qn = Rn The relation between a and b comes from equating the two middle equations (1-a)Pn = (1-b)Qn Our "equation without R" is as before: bT = (1-a)P + (b-1)Q +aX (*) We then want all four of the a,b expressions appearing here: a = P.o / (P-X).o 1-a = -X.o / (P-X).o b-1 = – (Pn/Qn)(1-a) = (Pn/Qn) X.o / (P-X).o b = [ (P-X).o + (Pn/Qn) X.o] / (P-X).o All four expressions have the same denominator, so we cancel it during installation into (*) [ (P-X).o + (Pn/Qn) X.o]T = -X.o P + (Pn/Qn) X.o Q + P.o X Regroup a bit [ P.o + X.o ((Pn/Qn) – 1 ) ] T = X.o ((Pn/Qn) Q – P) + P.o X We then have the solution to our problem: T = { X.o ((Pn/Qn) Q – P) + P.o X }/{ P.o + X.o ((Pn/Qn) – 1 )} or Tμ = { X.o [(Pn/Qn) Qμ – Pμ] + P.o Xμ }/{ P.o + X.o [(Pn/Qn) – 1 ]} and we never left enhanced coordinates. As a check on the answer T0 = { X.o [(Pn/Qn) – 1] + P.o }/{ P.o + X.o [(Pn/Qn) – 1 ]} = 1 check We then summarize our answer: Tμ = Nμ / D Nμ = X.o [(Pn/Qn) Qμ – Pμ] + P.o Xμ D = P.o + X.o [(Pn/Qn) – 1 ] Of course N0 = D so that Tμ = 1. Now let's define the following objects which are constants for our particular problem: Kμ = [(Pn/Qn) Qμ – Pμ] k = [(Pn/Qn) – 1 ] Then our solution is this: Tμ = Nμ / D Nμ = X.o Kμ + P.o Xμ D = P.o + k X.o = (P +kX).o so we summarize like this Tμ = ( X.o Kμ + P.o Xμ) /(P +kX).o μ = 0,1,2...n-1 Kμ = [(Pn/Qn) Qμ – Pμ] k = [(Pn/Qn) – 1 ] If we want to emphasize the fractional linear form of our result, we can write it like this: Tμ = (Kμ o.X + P.o Xμ) /( ko.X + P.o) Tμ = (Kμ oνXν + P.o δμνXν) /( ko.X + P.o) c(X) Tμ = (Kμ oν + P.o δμν) Xν c(X) = ( ko.X + P.o) This is starting to look like a matrix deal. Does this solution agree with that found in Section 2 ? This requires "doing out the dot products". We have o.X = o0 + oX k = [(Pn/Qn) – 1 ] o.P = o0 + oP Now let's verify the denominator function. In the new way we get this: c(X) = ko.X + P.o = [(Pn/Qn) – 1 ] (o0 + oX) + o0 + oP = [(Pn/Qn) – 1 ] oX + (Pn/Qn) o0 – o0 + o0 + oP = [(Pn/Qn) – 1 ] oX + (Pn/Qn) o0 + oP The denominator in Section 5 was this: D = CX + E = [(Pn/Qn) – 1] o X + o0 (Pn/Qn) + Po They DO agree! Our numerator in the new method is Nμ = (Kμ oν + P.o δμν) Xν = (Kμ oν Xν + P.o Xμ) = (Kμ o.X + P.o Xμ) where Kμ = [(Pn/Qn) Qμ – Pμ]. Thus Ni = (Ki o.X + P.o Xi) = [(Pn/Qn) Qi – Pi] o.X + P.o Xi = [(Pn/Qn) Qi – Pi] (o0 + oX) + (o0 + oP) Xi = [(Pn/Qn) Qi – Pi] (o0 + ojXj) + (o0 + oP) δijXj = ( [(Pn/Qn) Qi – Pi] oj + (o0 + oP) δij )Xj + ([(Pn/Qn) Qi – Pi] o0 And this DOES agree. So I am pretty convinced I have a correct result here in the "new method". Task: clarify the number of terms in things like oP . Using the "n" of Section 2, we know for example that X = (x1, x2...xn-1, 0) but the more general points like P have P = (P1, P2... Pn-1, Pn) so there really are n components to a bolded vector. This also agrees with details in Sections 2 on the special cases n = 2 and n = 3. (a) Verify things for n=2 The following results we take from above: o0 = b o1 = m o2 = -1 Po = P1o1 + P2o2 = m P1– P2 P.o = o0 + Po = b + Po = b + m P1– P2 Mμν = (Kμ oν + P.o δμν) = Kμ oν + [b + m P1– P2] δμν and this gives t = (αx+β)/(γx+δ) where earlier I computed these in a certain scaling α = m [(P2/Q2) Q1 - P1] + (b + mP1– P2) = m [(P2/Q2) Q1 ] + (b – P2) β = [Q1(P2/Q2) - P1] b γ = [(P2/Q2) – 1] m δ = b (P2/Q2) + m P1– P2 Now let's compute our matrix elements: Kμ = [(Pn/Qn) Qμ – Pμ] Mμν = Kμ oν + [b + m P1– P2] δμν M00 = (K0 o0 + [b + m P1– P2] δ00) = [(P2/Q2) – 1] b + [b + m P1– P2] = = (P2/Q2) b + m P1– P2 = δ M01 = (K0 o1 + [b + m P1– P2] δ01) = K0 o1 = [(P2/Q2) – 1] m = γ M10 = K1 o0 + [b + m P1– P2] δ10 = K1 o0 = [(P2/Q2) Q1 – P1] b = β M11 = K1 o1 + [b + m P1– P2] δ11 = [(P2/Q2) Q1 – P1]m + [b + m P1– P2] = (P2/Q2) Q1 m + [b – P2] = α So I have now shown that Mμν = The format for the X vector in my way of doing things is X = (1,x1). And then I get Nμ = Mμν Xν = and the idea then is that T1 = N1/N0. But this is the reverse of the normal convention used in the wiki site and Ahlfors because they want to put the "extra variable" last instead of first. Just to finish off our current example fast, let's manually make this switch by first writing out the equations: No = δ 1 + γ x1 N1 = β 1 + α x1 => = Now the matrix is in "standard form" which then matches t = (αx+β)/(γx+δ). So see this, note that the answer to our problem is now t1 = N1/N0 = (αx1+ β) / (γx1 + δ) So I somehow need to modify my general results to get the matrix into this standard form. 4. Modification to get to standard form I want to make these replacements somehow (for my enhanced vectors) Pμ = (1,P1,P2...Pn) → (P1,P2...Pn, 1) and same for all position vectors 0 1 2 n 1 2 n n+1 which includes Q,X,T,R This reminds me of special relativity problems of a similar nature. For the moment, I will try this pretty ugly approach: use an overbar for the new kind of vector. Then μ = (P1,P2...Pn, 1) μ = 1,2....n, n+1 Here is one nice fact: A.B = . So OK, let's go back and read through Section 3 and see what we have to change. Actually, I think nothing changes as long as we have A.B forms showing, so our final result in this section still stands, you would just replace all the full vectors with overbar vectors including for K. (I won't bother drawing overbar vectors, think I can keep track, all vectors are overbarred from now on) We continue along, imagining overbarred vectors with μ = 1,2..n,n+1 now. OK, duh, everything is the same, and here are the results (imagine all vectors overbarred) Nμ = Mμν Xν Mμν = (Kμ oν + P.o δμν) Kμ = [(Pn/Qn) Qμ – Pμ] Now let's do the m = 2 case. M11 = α exactly as before M12 = M10 we got before = β M21 = M01 we got before = γ M22 = M00 we got before = δ so now we get what we want M = = So basically all we had to do to make this "modification" was take the exact previous results and modify the values that the μ type labels take, so that Xn+1 = previous X0 = 1, and so on. This also applies to vectors like s, p. o which defined "planes". Of course the only plane that shows up in our results is o. Comment 1: OK, from now on all enhanced vectors are in our "new" representation, and of course we are not going to overbar everything. Comment 2: I have not brought up the subject of "homogeneous coordinates" yet, that comes later. 5. Review of results now shown in the modified enhanced vector notation Recall that our problem was to compute T = (T1, T2..... Tn) in terms of X = (X1, X2..... Xn) and the various other fixed vectors like P, Q and o (the extended normal to the objective plane). In our particular way of setting things up, it happens that Tn = Xn = 0 due to our positioning of the subjective plane, but this fact does not change anything, though it does serve as a check on our results. When we write the equation of a "plane" lying within an n-dimensional space, we really need n+1 parameters. The first n parameters give the normal to the plane, and the last gives the plane's distance away from the origin (in some sense, don't care here). In terms of our "new" notation, we would say the following concerning such planes: __________________________________________________________________________________ To compact down the notation, we write xμ = (x1,x2...xn, xn+1) = (x1, x2...xn, 1) μ = 1,2,3....n+1 aμ = (a1,a2...an, an+1) = (a1, a2... an, d) d = 0 for a plane through the origin Then we can write our equation for the plane as follows: a.x ≡ Σμ=1n+1 aμ xμ = aμ xμ = 0 that is: a.x = 0 where there are n+1 terms in the sum. __________________________________________________________________________________ Now this compact notation for an arbitrary plane equation written as a.x = 0 MOTIVATED us to use "extended coordinates" for the position vectors of our problem, such as X,P,Q,T,R and later K which is just a linear combination of P and Q. This is not rocket science, just a convenience. So at this point, all the planes and all the points in our problem are represented by n+1 dimensional "new enhanced" vectors. We then went on to solve the problem in fact twice. The first time was in Section 2 where I presented the final results as follows: ( but which I now modify in the following ways: replace o0 by on+1 for the objective plane, make all indices upper or contravariant, change name of matrix from A to M, change ordering of the first matrix term so index order matches) Ti = Ni/D i = 1,2...n Ni = Σj=1n Mij Xj + Bi D = Σj=1n Cj Xj + E Mij = [(Pn/Qn) Qi - Pi] oj + (on+1 + Po) δij Bi = [Qi (Pn/Qn) - Pi] on+1 Cj = [(Pn/Qn) – 1] oj E = on+1 (Pn/Qn) + Po At this point we were starting to see "matrix action" going on with our Mij matrix. I could rewrite these results in Cartesian n-vector notation as follows: T = N/D i = 1,2...n N =M X + B D = CX + E Mij = [(Pn/Qn) Qi - Pi] oj + (on+1 + Po) δij i,j = 1,2....n B = [Q (Pn/Qn) - P] on+1 C = [(Pn/Qn) – 1] o E = on+1 (Pn/Qn) + Po I could at this point define these convenience quantities K = [(Pn/Qn) Q – P] k = [(Pn/Qn) – 1 ] and then present the final results like so: T = N/D i = 1,2...n N = M X + on+1 K D = k Xo + on+1 (Pn/Qn) + Po Mij = Kioj + (on+1 + Po) δij i,j = 1,2....n K = [(Pn/Qn) Q – P] k = [(Pn/Qn) – 1 ] So this provides a complete solution to our problem. However, it does not make the connection between linear transformations on the line and the n+1 dimensional matrix stuff, and that is something we want to see. At this point, in Section 3 we solved the problem all over again, but always using our "enhanced vectors". In a sense, this is a more "covariant" solution and this is what gets us closer to the matrix connection we want. The solution from this approach was this: (but μ type indices now run 1 to n+1 ) Tμ = Nμ/D μ,ν = 1.2.3....n, n+1 Nμ = Mμν Xν Mμν = Kμ oν + P.o δμν Kμ = (Pn/Qn) Qμ – Pμ D = [ (Pn/Qn) – 1 ] X.o + P.o If we keep in mind these facts: X.o = Xo + on+1 P.o = Po + on+1 then it is obvious by inspection that the Mij submatrix of Mμν matches the non-covariant solution. The denominators D are also the same, but it is not quite obvious just by inspection, so here we show it: D = [ (Pn/Qn) – 1 ] (X.o) + (P.o) = [ (Pn/Qn) – 1 ] (Xo + on+1) + (Po + on+1) = [ (Pn/Qn) – 1 ] Xo + [ (Pn/Qn) – 1 ]on+1 + (Po + on+1) = [ (Pn/Qn) – 1 ] Xo + (Pn/Qn)on+1 + Po = k Xo + on+1(Pn/Qn) + Po So far there has been no talk of "homogeneous coordinates", though we have used our new "enhanced coordinates". Now here is the key fact: Nn+1 = M n+1,ν Xν = (Kn+1 oν + P.o δ n+1,ν) Xν = Kn+1 X.o + P.o Xn+1 = [ (Pn/Qn) Qn+1 – Pn+1] X.o + P.o Xn+1 = [ (Pn/Qn) –1 ] X.o + P.o // since Vn+1 = 1 for all extended vectors Vμ = D This has to come out this way, because only then do we get Tn+1 = Nn+1/D = 1, and we know that the last component of all enhanced position vectors must be 1. This tells us that if we simply "run the matrix multiplication machine" and compute all components of Nμ = Mμν Xν Then this single (n+1) x (n+1) matrix calculation gives us everything we need: the Ni and D = Nn+1. Then the answer to our problem is obtained as Ti = Ni/D. The calculation is not any easier than done by the non-covariant method, it is just a more uniform calculation involving a single matrix multiplication and then a post-processing step of dividing by the D. ( but see later for more significance of the matrix) So far -- once again -- we have had no need for "homogeneous coordinates". We can restate our results above in this very compact covariant way [ this word covariant is not rigorous here, just a term that means we are sticking with A.B "scalar" dot products and not writing them out. and we are using n+1 vectors all the time, instead of n vectors. This is just slightly reminiscent of special relativity covariance.] Tμ = Nμ/Nn+1 μ,ν = 1.2.3....n, n+1 Nμ = Mμν Xν Mμν = [ (Pn/Qn) Qμ – Pμ ] oν + P.o δμν // and it happens that Nn+1 = D above Obviously Tn+1 = 1 so we don't have much work in computing that. It is the other components of Tμ that are the Ti which solve our problem. So yes, we have to compute all n+1 components of Nμ and that means we need all (n+1)2 matrix elements of Mμν. We now digress for two sections on the subject of FLT's, then in Section 8 we return to our matrix Mμν and discuss its significance and there we shall bring up homogeneous coordinates for the first time. 6. Showing that the projective transformation is a fractional linear transformation (FLT) The mapping from X to T described above by our n-dimensional projective transformation can be represented as follows: Ti = fi(X;P,Q,o) where fi = ( Mij Xj + on+1 Ki)/( k Xo + on+1 (Pn/Qn) + Po) Mij = Kioj + (on+1 + Po) δij i,j = 1,2....n K = [(Pn/Qn) Q – P] k = [(Pn/Qn) – 1 ] Here, P,Q,o are "parameters" of the transformation -- the two viewer positions and the enhanced normal of the objective stage. You can see that each component of T is a fractional linear transformation in which both the numerator and denominator have the form Σj=1n ajXj + b. Specifically, we can say Ti = ( a(i)jXj + b(i)) / ( cjXj + d ) where (1) we make the two sums be implicit 1 to n: (2) we add an extra label to the numerator constants because the constants are different for each component of Ti. We can then write out ( get Ki from above) a(i)j = Mij = Kioj + (on+1 + Po) δij b(i) = on+1 Ki cj = [(Pn/Qn) – 1 ] oj d = on+1 (Pn/Qn) + Po So we have shown here that the projective transformation of planes inside our n-dimensional playhouse takes the form of a fractional linear transformation in which generally speaking all n components of X appear linearly along with a constant in the denominator as well as all the numerators. How many parameters does our projective transformation have? P = n parameters Q = n parameters o = n+1 parameters So all told, there are 3n+1 parameters. However, if we look back at our covariant solution Tμ = Nμ/D μ,ν = 1.2.3....n, n+1 Nμ = Mμν Xν Mμν = Kμ oν + P.o δμν Kμ = (Pn/Qn) Qμ – Pμ D = [ (Pn/Qn) – 1 ] X.o + P.o we can see that if we scale the entire enhanced vector o → o' = α o, both Nμ and D scale by α and the result Tμ stays the same, so in reality there are only 3n parameters. You can think of these as being 3n real parameters, or 3n complex parameters, depending how you define the projection at the start. As we shall show in the next section, the most general fractional linear transformation has (n+1)2 - 1 parameters, whereas the projective transformation we just saw has only 3n parameters. For the case n = 1, these two numbers are the same (this being the most used case!) . For larger n, the first is always larger. The point is only this: for n > 1, you do not generate the "most general" fractional linear transformation from the projective transformation starting point. So lets look now at the general FLT case on its own, independent of projective transformations 7. General fractional linear transformations (of order n) Our general fractional linear transformation of order n may be written as shown above: Ti = ( a(i)jXj + b(i)) / ( cjXj + d ) where we have two implied sums on j going from 1 to n. The total number of constants is this: n numerators = n*(n+1) 1 denominator = (n+1) total = n*(n+1) +(n+1) = (n+1)2 But if we scale all the constants together by α, answer is unchanged, so conclude (n+1)2 - 1. As above, you can think of these as either real or complex parameters. The transformation is obviously "a fraction", hence the word fractional. The numerator and denominator are linear functions of the components of the vector X, in the sense that z = ax + by + c is a linear function of x and y. For example, there are no terms that are of the form X1X2 or (X1)2, both of which would be quadratic terms. In general the numerator and denominator each have n+1 terms, the n components Xi and then the constant (which we can think of as being constant times Xn+1 = 1 if we like). Since there are n+1 terms up and down (and since the enhanced vectors have n+1 components), this thing is called a (n+1)-linear fractional transformation an example of which arises in connection with the projective transformation of the n-1 dimensional "plane" in a playhouse which has n dimensions. The symbols "(n+1)-" get replaced usually with a word that goes with the number n. If n = 1 (the Ahlfors case of interest), the "2-" becomes "bi" so we have a bilinear fractional transformation. If n = 2 we have a trilinear, if n = 3 we have quadrilinear, and so on. If n = 2, the projective "planes" are really just lines, and we are talking about a projective transformation of the line, but in general we should say we are talking about the projective transformation of "the plane", which plane has n-1 dimensions. So the related-to-FLT item is this: projective transformation of the plane (which has n-1 dimensions) If the parameters are allowed to be complex, we might call this projective transformation of the Complex plane (which has n-1 dimensions) and again, if n = 2 people talk about the Complex line. NOW: we could imagine another transformation acting on the result of our first transformation, but having different (primed) parameters (we earlier referred to these parameters and functions of them as "constants") Again, the projective transformation model gives us an example of a fractional linear transformation (FLT), but as we saw in the previous section, it does not give the most general form of the FLT. Now we are going to show that FLT's form a group. To do this, consider concatenating two FLT's. The first maps X to T, the second maps T to Z : Here the p stands for the (n+1)2 - 1 "parameters" of the transformation. Ti = fi(X; p) first acts on X Zi = fi(T; p') second acts on result of first Then we could talk about concatenating two such transformations: Zi = fi( f(X;p) ;p') If you write this all out (we do it below), you will find that this thing has the same "form" as either of the two transformations and can thus be written as Zi = fi(X;p") for some values we could compute of the double-primed parameters. You could go on to show that each transformation has an inverse, and that there is an identity transformation, and you would conclude that these transformations form a group which I will just call (my name only, not a standard name) GFLT(n, R or C) the Group of Fractional Linear Transformations Here n is the number of dimensions in which the various "planes" exist, they having dimension n-1 (in the special projective case). We can choose with R or C whether we want things to be Real or Complex. Is it obvious that two transformations result in one of the same form? Let's just do it to verify: Tj = ( a(j)kXk + b(j)) / ( ckXk + d ) Zi = ( a'(i)jTj + b'(i)) / ( c'jTj + d' ) = ( a'(i)j[Tj] + b'(i)) / ( c'j[Tj] + d' ) = ( a'(i)j[( a(j)kXk + b(j)) / ( ckXk + d )] + b'(i)) / ( c'j[( a(j)kXk + b(j)) / ( ckXk + d )] + d' ) We then multiply up and down by ( ckXk + d) to get = ( a'(i)j (a(j)kXk + b(j)) + b'(i) ( ckXk + d ) ) / ( c'j( a(j)kXk + b(j)) + d' ( ckXk + d ) ) At this point, yes it is obvious that we have a fraction, and that the top and bottom are linear in the Xk so we do get "the same form". Suppose we write this as Zi = ( a"(i)kXk + b"(i)) / ( c"kXk + d" ) Then we can read off: a"(i)k = a'(i)j a(j)k+ b'(i) ck b"(i) = a'(i)j b(j) + b'(i) d c"k = c'j a(j)k + d' ck d" = c'j b(j) + d' d The identity is certainly trivial, just set the b(j) = d = α and all other parameters to 0. How do we know there is an inverse? Consider: Tj = ( a(j)kXk + b(j)) / ( ckXk + d ) ( ckXk + d ) Tj = ( a(j)kXk + b(j)) (a(j)k - ck Tj)Xk = (b(j) - d Tj) We can think of this as a set of matrix equations of the form H X = G Hjk Xk = Gj Hjk = (a(j)k - ck Tj) Assuming detH ≠0, we can solve this as follows X = H-1 G or Xi = [ cof(Hij) ]T Gj/ det(H) This approach is now going to fail us because the cofactor is a determinant of a submatrix of H which could have non-linear T terms, etc etc. So this generic avenue is not going to pan out. For the particular FLT's which are projective transformations, we know inverses exist just from the nature of the "playhouse" set up of the problem. But I don't have a proof that this is true for general FLT's. So let's momentarily assume that any FLT has an inverse, and therefore our group shown above really is a group. [ I will never prove the existence of an FLT inverse in these notes, but here is how you would do it: compute the inverse matrix to M as described below, then make an FLT based on the matrix elements of this inverse matrix, then brute force do the concatenation, and you will have shown that the inverse FLT exists. ] 8. General fractional linear transformations connected to matrices: the group isomorphism Our most general FLT is this Ti = ( a(i)jXj + b(i)) / ( cjXj + d ) ≡ ( Mij Xj + b(i)) / ( cjXj + d ) But now let's change to enhanced coordinates by adding Xn+1 = 1 and Tn+1 = 1 and refer to our enhanced vectors as Xμ and Tμ as we have done earlier. Then the RHS above becomes ( Mij Xj + b(i)) / ( cjXj + d) = ( Mij Xj + b(i) Xn+1) / ( cjXj + d Xn+1) We now write b(i) = Mi,n+1 where we are creating a new n-dim column for matrix M originally n x n d = cn+1 new component for the vector c , making c be an enhanced vector Then we have our most general FLT written in this manner. Ti = ( MiνXν ) / (cνXν) The next step is to add another n+1 dimension ROW at the bottom of our matrix M such that Mn+1,ν = cν // this causes Tn+1 = 1 ! So we started with our FLT-determined matrix Mij, we added an extra column using the other FLT parameters b(i), then we add a last row using the FLT parameters cν. Who says we cannot do this? We have already set Xn+1 =1 "by fiat", but now our extra row addition gives us Tn+1 = 1 (which is the reason we created that row as we did), Tn+1 = ( Mn+1,νXν ) / (cνXν) = (cνXν)/ (cνXν) = 1 So at this point we have arrived at the following transformation linking two enhanced position vectors X and T Tμ = ( MμνXν ) / (cνXν) where Mμν and cν are composed of constants from our original FLT, precisely as described above. All along, we have known that the various components of Tμ or Ti all have "the same denominator" which here appears just as c.X . Next, let's introduce a separate numerator function Nμ Tμ = Nμ / D = Nμ / Nn+1 (see 2 inches below) (*) Nμ ≡ MμνXν D ≡ c.X The n numbers Ni are the numerators of our n Ti expressions of the FLT. The one number Nn+1 ( = D by our careful construction of Mμν above) is the denominator of all Ti: Nn+1 = Mn+1,νXν = cνXν = c.X = D So, we can compute "everything we need" by computing Nμ ≡ MμνXν where M contains all the information of the FLT constants. Nμ = (N1, N2......Nn, D) Now at this point we have X = (x1, x2....xn) Cartesian vector X = (x1, x2....xn, 1) "enhanced vector" Our rule for getting the "physical" or Cartesian vector from the enhanced one is to take the first n components of the enhanced vector. Now we want to define a third kind of vector to be an arbitrary multiple of the enhanced vector, X = αX = (αx1, αx2....αxn, α) " homogeneous vector" // script notation where α can be any number you choose. Our rule for getting the Cartesian vector from a homogeneous vector is to divide the first n components of the homo vector by its last component: Xi = Xi/ Xn+1 i = 1,2...n Now look back at our vector Nμ. The rule for getting our results Ti from this vector this (see (*) above) Ti = Ni/Nn+1 Thus, we can think of our invented intermediate vector Nμ as being the homogeneous vector for T! Tμ ≡ Nμ Ti = Ti/Tn+1 similar to: Xi = Xi/ Xn+1 Now above we had Nμ = MμνXν . We now rewrite this as Tμ = Mμν Xν where the vectors on both sides are homogeneous vectors. Remember that a homo vector by definition is one with n+1 components from which you obtain the corresponding Cartesian n vector using the simple rule stated above, for example, Ti = Ti/Tn+1 . Notice that if we scale all the components of some chosen Xν by constant β, that simply causes all the components of Tμ to be scaled by β, and of course the physical T will not be affected. [ It is also true that if we scale all the elements of matrix M by the same constant, that matrix M describes the same FLT. ] So now comes our homomorphism idea: Ti = FLTp(Xj) our FLT transformation Xj and Ti are physical Cartesian vectors | / | Tμ = Mμν Xν our homogeneous xform Xν and Tμ are homogeneous vectors In the FLT world, we have FLT's which act on Cartesian vectors to give new Cartesian vectors. In the homo world, we have an (n+1) dimensional matrix M which acts on homogeneous vectors to give new homogeneous vectors. If we use the matrix Mμν as carefully constructed above, and if we use the rule given above for obtaining the Cartesian vector from the corresponding homo vector, then the two "representations" of what we are doing are completely equivalent. Recall what Mμν looks like: Ti = ( a(i)jXj + b(i)) / ( cjXj + d ) ≡ ( Mij Xj + b(i)) / ( cjXj + d ) Mij = a(i)j Mn+1,ν = cν Mi,n+1 = b(i) Here is what the Mμν matrix looks like graphically and how it relates to the FLT: The constants for the numerators are in the first n rows while the last row contains the constants for the denominator. Within each row, things are ordered exactly as you would write them in the FLT, so there is a direct and simple connection between how the FLT appears and the matrix. [ This is why we had to modify our enhanced vector back in Section 5.] So this is the matrix for the general case and its form agrees with the many web examples shown in my raw Ahlfors notes, for example: (ignore the subscripts "2" in the matrix) Now, let's get back to our equivalency stated above: ( p = the constants of the FLT) Ti = FLTp(X) our FLT transformation Xi and Ti are physical Cartesian vectors | / | Tμ = Mμν Xν our homogeneous xform Xν and Tμ are homogeneous vectors The FLT's we conjectured earlier form a group which I called GFLT(n,R) for reals. But we know that the set of all n+1 square matrices also form a group known as GL(n+1,R). The product of two matrices is a matrix, there is an identity, and there is an inverse as long as det(M) ≠ 0. So we really need to add this condition to both the matrix and to the corresponding constants of the FLT, and Ahlfors does that for his simple case with n = 1 : ad-bc ≠ 0 on page 76. We now claim this group isomorphism, where the group has (n+1)2 parameters: GFLT(n,R) ~ GL(n+1,R) GFLT(n,C) ~ GL(n+1,C) We can nail down the scale of M by requiring that detM = 1, and then GL becomes SL, and then our groups have (n+1)2- 1 parameters. SFLT(n,R) ~ SL(n+1,R) SFLT(n,C) ~ SL(n+1,C) Presumably these are Lie Groups and you can write down the generators, but I am not going to worry about that here. They are certainly continuous-parameter groups well defined near the identity. The payoff from our isomorphic connection is that we now have a much easier way to compute the parameters of a concatenated FLT and of an inverse FLT. For the concatenation, Tν = M1νκ Xκ Zμ = M2μν Tν => Zμ = M2μν Tν = M2μν M1νκ Xκ = (M2M1)μκ Xκ as illustrated in the wiki clips for the n = 2 FLT case (trilinear) quoted just above For the inverse, we compute M-1 from usual matrix methods and then Tν = Mνκ Xκ => Xν = (M-1)νκ Tκ Comment: In FLT's, the word linear refers to the nature of the numerator and denominator functions, as discussed above. In the group isomorphism, we find that we can represent our FLT by a matrix, which is in fact a linear operator. So we have linearity in two senses. Ahlfors refers to the n=1 case simply as a "linear transformation" and I am not sure which meaning of linear he has in mind, since both linearity subjects come up, see page 76. 9. How is our "projective transformation" connected to artist's drawing "projection"? One can redraw our picture above with R below the X,T screen, which is perhaps the more usual way one thinks of things. We use the term "projection" in the sense that the real point R is has a projection X on the screen when viewed from Q. Think of the points P and Q as two possible "eye positions" for looking at a physical object which is a line segment indicated by "m" ( a plane "o" if you will) . R is a point on the physical object. We can certainly compute X = f(Q,R) and T = f(P,R) using similar triangles, and each of these would be called a "perspective transformation". Possible values of R would be constrained by the condition R.o = 0, where o is the "plane" here indicated by "m" -- our line segment or little patch of plane. The points X and Y are where R appears "on the computer screen" or the on artist's painting. Alternatively, we could compute R = g(X,Q,o) which is an inverse perspective transformation. Given the "projection" X and the eye position Q and the object described by plane o, where must the physical point R on the object "o" be located? Likewise we could write R = g(T,P,o). If we set these two inverse projections equal, we get g(X,Q,o) = g(T,P,o). We can then solve this equation for T = f(X; P,Q,o) and this is the "projective transformation" we are discussing in this write-up, and is thus only dimly and very indirectly related to the perspective or projection transformation of computer graphics. The projective transformation of our current write-up concerns the mapping of points like X going to T, where certain things are "invariant" such as the cross ratio in the n=1 case. This whole subject is called projective geometry. Hopefully, this initial quote from the main web page noted above will make sense: A projective transformation is a transformation used in projective geometry: it is the composition of a pair of perspective projections. It describes what happens to the perceived positions of observed objects when the point of view of the observer changes. Projective transformations do not preserve sizes or angles but do preserve incidence and cross-ratio: two properties which are important in projective geometry. A projective transformation can also be called a projectivity. Projectivities form a group.[1] As important special cases, a projective transformation can be in the (real) one-dimensional projective line RP1, the two-dimensional projective plane RP2, and the three-dimensional projective 3-space RP3. In this last paragraph the author is referring to our cases n = 1,2 and 3 as outlined above, though we did not use the RPn notation. Notice the terminology "projective transformation in the 1D projective line". 10. What is the "perspective transformation" of computer graphics or artist drawing? Computer graphics perspective and other things are discussed at this pretty good web page, http://www.math.utah.edu/~treiberg/Perspect/Perspect.htm#ProjGeom The author has the following nice picture where EP is the Eye Point, and the thing I usually call the z axis he has made the y axis, perp to the drawing plane which is located d = δ from the eye. The projection of the object point (x,y,z) on the drawing plane is (u,v), and you see above the equations for computing these projections which involve the famous painful "hardware divide by the depth coordinate which is here y. The author goes on to discuss how you take some object in "world space" which has some origin, and you compute the "eye coordinates" of the same object, where the eye is at a certain location re and is oriented by some angles θ,φ which he thinks of as angles 1 and 2. So you have to operate on your world coordinates to get eye coordinates of some point x,y,z = rw in the world coordinates. He does this like so: and I don't care about any details here, and note that for him, y is the depth coordinate. He then merely observes that you have to then convert this which might call x',y',z' into u,v on the screen, and that is the little division involving u and v shown above. So if you first go world to eye and then do this division, you get this for [ u, v] (he has set d = 1). Now, this is all fine and good, and he has used Fperp (rw) to describe the entire process of going from world coordinates to screen coordinates. My point in reviewing all this is simply the following: each coordinate u and v appears here as a fractional linear transformation of the case n = 3 (quadrilinear), and we know that we can use 4x4 matrix calculations acting on 4D homogeneous coordinates to do this computation, and that is no doubt what I did in the FGS-4000 hardware 30 years ago. So here we have a connection between a certain FLT and artistic perspective, BUT, the FLT shown here is NOT the projective transformation we are addressing in this document, and in fact I think has nothing whatsoever to do with it. I write all this down so I won't get confused by this stuff at some future time.