Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
sagemanifolds
GitHub Repository: sagemanifolds/IntroToManifolds
Path: blob/main/17Manifold_One_Parameter.ipynb
Views: 80
Kernel: SageMath 9.6

17. One-parameter groups of transformations

This notebook is part of the Introduction to manifolds in SageMath by Andrzej Chrzeszczyk (Jan Kochanowski University of Kielce, Poland).

version()
'SageMath version 9.6, Release Date: 2022-05-15'

Let MM be a smooth manifold. A one-parameter group of transformations ϕϕ, on MM is a smooth map ϕ:M×RM\phi: M × R\to M such that

ParseError: KaTeX parse error: Undefined control sequence: \label at position 31: …} ϕ(x, 0) = x, \̲l̲a̲b̲e̲l̲{}\tag{17.1} \e…ParseError: KaTeX parse error: Undefined control sequence: \label at position 86: …M, \ t, s ∈ R. \̲l̲a̲b̲e̲l̲{}\tag{17.2} \e…

If we put ϕt(x)=ϕ(x,t),ϕ_t (x) = ϕ(x, t),

then ϕt\phi_t, for tRt\in R is a smooth map MMM\to M and according to (17.2)

ϕt+s(x)=ϕ(x,t+s)=ϕ(ϕ(x,t),s)=ϕ(ϕt(x),s)=ϕs(ϕt(x))=(ϕsϕt)(x),\displaystyle \phi_{t+s}(x)=\phi(x,t+s)=\phi(\phi(x,t),s)\\=\phi(\phi_t(x),s)=\phi_s(\phi_t(x))=(\phi_s\circ\phi_t)(x),

i.e.,

ParseError: KaTeX parse error: Undefined control sequence: \label at position 51: …t = ϕ_t ◦ ϕ_s, \̲l̲a̲b̲e̲l̲{}\tag{17.3} \e…

since  t+s=s+t\ t+s=s+t.

The map ϕ0\phi_0 is the identity on MM since from (17.1) it follows ϕ0(x)=ϕ(x,0)=xϕ_0 (x) = ϕ(x, 0) = x for all xMx ∈ M. From (17.3) it follows ϕtϕt=ϕtϕt=ϕ0ϕ_t ◦ ϕ_{−t} = ϕ_{−t} ◦ ϕ_t = ϕ_0 , which means that each map ϕtϕ_t has an inverse, ϕtϕ_{−t} , which is also smooth. Therefore, each ϕtϕ_t is a diffeomorphism of MM onto itself. Thus, the set of transformations {ϕt:tR}\{ϕ_t : t ∈ R\} is an Abelian group of diffeomorphisms of MM onto MM, and the map tϕtt → ϕ_t is a homomorphism from the additive group of the real numbers into the group of diffeomorphisms of MM.


Example 17.1

Let us check that the formula ϕ((x,y,t)=(2x,2ycost+(1x2y2)sint)1+x2+y2+(1x2y2)cost2ysint\phi((x,y,t)=\frac{(2x,2y\cos t+(1-x^2-y^2)\sin t)}{1+x^2+y^2+(1-x^2-y^2)\cos t-2y\sin t}

defines a one-parameter group of transformations i.e., the conditions (17.1), (17.2) are satisfied.

var('t,s,x,y,x0,y0') # symbolic variables # components ϕ1,ϕ2 of ϕ: ϕ1(x,y,t)=2*x/(1+x^2+y^2+(1-x^2-y^2)*cos(t)-2*y*sin(t)) ϕ2(x,y,t)=(2*y*cos(t)+(1-x^2-y^2)*sin(t))/(1+x^2+y^2+(1-x^2-y^2)*cos(t)-2*y*sin(t)) # ϕ=(ϕ1,ϕ2): ϕ(x,y,t)=(ϕ1(x,y,t),ϕ2(x,y,t))

First let us check (17.1), i.e. that ϕ(x,y,t)t=0=(x,y)ϕ(x,y,t)|_{t=0}=(x,y):

ϕ(x,y,t).subs(t=0) # substitute t by 0 in ϕ
(x, y)

Now check that (17.2) holds for the first component of ϕϕ:

a1=ϕ1(x,y,t+s).trig_expand() # first comp. of the right hand side of (17.2) # first comp. of the left hand side of (17.2): b1=ϕ1(ϕ1(x,y,t),ϕ2(x,y,t),s).normalize() # first component of the difference between # the left and right hand side of (17.2) (numerator) c1=(a1-b1).numerator() # take numerator of a1-b1 c1.full_simplify() # simplify
0

and for the second component of ϕϕ:

a2=ϕ2(x,y,t+s).trig_expand() # second component of the right hand side of (17.2) # second component of the left hand side of (17.2) b2=ϕ2(ϕ1(x,y,t),ϕ2(x,y,t),s).normalize() # second component of the difference between # the left and right side of (17.2) (numerator): c2=(a2-b2).numerator() # take numerator of a2-b2 c2.full_simplify()
0

We have checked the condition (17.2).


Infinitesimal generator of ϕt\phi_t


Each one-parameter group of transformations ϕϕ on MM defines a family of curves in MM. The map ϕx:RMϕ_x : R → M given by ϕx(t)=ϕ(x,t)ϕ_x (t) = ϕ(x, t) is a smooth curve in M for each xMx ∈ M. Since ϕx(0)=ϕ(x,0)=xϕ_x (0) = ϕ(x, 0) = x, the tangent vector to the curve ϕxϕ_x at t=0t = 0 (defined in (8.9)) belongs to TxMT_x M. The infinitesimal generator of ϕϕ is the vector field XX such that

Xx=(ϕx)0.X_x = (ϕ_x )'_0.

The infinitesimal generator of ϕϕ is a vector field tangent to the curves generated by the one-parameter group of transformations.


Example 17.2

Let us compute the infinitesimal generator XX of the one-parameter group ϕt\phi_t from the previous example in Cartesian coordinates of R2R^2.

# continuation according to (8.10) # the first component of X is the derivative of ϕ1 w.r. to t X1=diff(ϕ1(x,y,t),t).subs(t=0);X1
x*y
# the second component of X is the derivative of ϕ2 w.r. to t X2=diff(ϕ2(x,y,t),t).subs(t=0);X2
-1/2*x^2 + 1/2*y^2 + 1/2
X2.numerator_denominator() # numerator and denominator of X2
(-x^2 + y^2 + 1, 2)

Thus the infinitesimal generator is   X=xyx+x2+y2+12y.\ \ X=xy\frac{\partial}{\partial x}+\frac{-x^2+y^2+1}{2}\frac{\partial}{\partial y}.


Example 17.3

Plot the infinitesimal generator from the previous example.

M = Manifold(2, 'M') # manifold M=R^2 X.<x,y> = M.chart() # Cartesian coordinates X = M.vector_field(x*y,(-x^2+y^2+1)/2, name='v') # vector field # with components X1,X2 p=X.plot(scale=0.2,arrowsize=1.5,number_values={x:10, y:10}, ranges={x: (0.2,1.7), y: (-0.8,0.8)},color='grey') # plot X p.show(aspect_ratio=1) # show plot
Image in a Jupyter notebook

Example 17.4

For ϕϕ from Example 17.1, plot the curves ϕ(x,y)\phi_{(x,y)} for some selected points (x,y)(x,y), where ϕ(x,y)(t)=ϕ(x,y,t)ϕ_{(x,y)} (t) = ϕ(x,y, t).

var('t,s,x,y,x0,y0') # symbolic variables # components ϕ1,ϕ2 of ϕ: ϕ1(x,y,t)=2*x/(1+x^2+y^2+(1-x^2-y^2)*cos(t)-2*y*sin(t)) ϕ2(x,y,t)=(2*y*cos(t)+(1-x^2-y^2)*sin(t))/(1+x^2+y^2+(1-x^2-y^2)*cos(t)-2*y*sin(t)) ϕ(x,y,t)=(ϕ1(x,y,t),ϕ2(x,y,t)) # ϕ=(ϕ1,ϕ2): # plot curves passing through (1,1),(1,1/2),(1,1/3),(1,3/4) s1=[parametric_plot( ϕ(x,y,t).subs({x:1,y:y0}), (t, 0, 2*pi),color='grey') for y0 in [1,1/2,1/3,3/4]] # plot curves passing through (-1,1),(-1,1/2),(-1,1/3),(-1,3/4) s2=[parametric_plot( ϕ(x,y,t).subs({x:-1,y:y0}), (t, 0, 2*pi),color='grey') for y0 in [1,1/2,1/3,3/4]] sum(s1)+sum(s2) # combine plots
Image in a Jupyter notebook

Example 17.5

Check that the formulas {ϕ1(x,y,t)=xcostysint,ϕ2(x,y,t)=xsint+ycost,\left\{\begin{matrix} ϕ_1(x,y,t)=x\cos t-y\sin t ,\\ ϕ_2(x,y,t)=x\sin t +y\cos t, \end{matrix} \right.

define a one-parameter group of transformations.

forget() var('t,s,x,y') # symbolic variables ϕ1(x,y,t)=x*cos(t)-y*sin(t) # component ϕ1 ϕ2(x,y,t)=x*sin(t)+y*cos(t) # component ϕ2 a1=ϕ1(x,y,t+s).trig_expand() # first components of the right b1=ϕ1(ϕ1(x,y,t),ϕ2(x,y,t),s) # and left hand sides of (17.2)
c1=(a1-b1) # difference between left and right c1.full_simplify() # sides of (17.2)for the first component
0
a2=ϕ2(x,y,t+s).trig_expand() # second components of the right b2=ϕ2(ϕ1(x,y,t),ϕ2(x,y,t),s) # and left hand sides of (17.2)
c2=(a2-b2) # difference between left and right c2.full_simplify() # hand sides for the second component
0

Example 17.6

Compute components of the infinitesimal generator XX of ϕt\phi_t from the previous example. Plot XX.

# continuation # the first component of X is the derivative of ϕ1 w.r. to t X1=diff(ϕ1(x,y,t),t).subs(t=0);X1 # cf. (8.10)
-y
# the second component of X is the derivative of ϕ2 w.r. to t X2=diff(ϕ2(x,y,t),t).subs(t=0);X2
x

Thus   X=yx+xy\ \ X=-y\frac{\partial}{\partial x}+x\frac{\partial}{\partial y}

M = Manifold(2, 'M') # manifold M=R^2 X.<x,y> = M.chart() # Cartesian coordinates X = M.vector_field(X1,X2, name='v') # vector field with comp X1,X2 p=X.plot(scale=0.3,arrowsize=1.5,number_values={x:10, y:10}, ranges={x: (-1,1), y: (-1,1)},color='grey') # plot X p.show(aspect_ratio=1) # show plot
Image in a Jupyter notebook

Example 17.7

For ϕϕ from Example 17.5 plot the curves ϕ(x,y)\phi_{(x,y)} for some selected points (x,y)(x,y), where ϕ(x,y)(t)=ϕ(x,y,t)ϕ_{(x,y)} (t) = ϕ(x,y, t).

var('t,s,x,y') # symbolic variables ϕ1(x,y,t)=x*cos(t)-y*sin(t) # component ϕ1 ϕ2(x,y,t)=x*sin(t)+y*cos(t) # component ϕ2 ϕ(x,y,t)=(ϕ1(x,y,t),ϕ2(x,y,t)) # define ϕ=(ϕ1,ϕ2) # plot curves passing through (1,1),(1,1/2),(1,3/2),(1,2) s1=[parametric_plot( ϕ(x,y,t).subs({x:1,y:y0}), (t, 0, 2*pi),color='grey') for y0 in [1,1/2,3/2,2]] sum(s1) # combine plots
Image in a Jupyter notebook

Example 17.8

Consider ϕ=(ϕ1,ϕ2)ϕ=(ϕ_1,ϕ_2) defined by {ϕ1(x,y,t)=x+at,ϕ2(x,y,t)=y+bt,\left\{\begin{matrix} ϕ_1(x,y,t)=x+at,\\ ϕ_2(x,y,t)=y+bt, \end{matrix} \right.

for fixed a,bRa,b\in R. Show that ϕϕ defines a one-parametric group of transformations.

forget() var('t,s,x,y,a,b') # symbolic variables ϕ1(x,y,t)=x+a*t # define ϕ1 ϕ2(x,y,t)=y+b*t # define ϕ2
a1=ϕ1(x,y,t+s).expand() # right hand side of (17.2) for ϕ1 b1=ϕ1(ϕ1(x,y,t),ϕ2(x,y,t),s).expand() # left hand side of (17.2) for ϕ1
c1=(a1-b1) # difference between lhs and rhs c1.full_simplify() # simplification
0
a2=ϕ2(x,y,t+s).expand() # right hand side of (17.2) for ϕ2 b2=ϕ2(ϕ1(x,y,t),ϕ2(x,y,t),s).expand() # left hand side of (17.2) for ϕ2
c2=(a2-b2) # difference between lhs and rhs c2.full_simplify() # simplification
0

Example 17.9

Compute components of the infinitesimal generator XX of ϕt\phi_t from the previous example for a=1, b=2a=1,\ b=2.

# continuation # the first component of X is the derivative of ϕ1 w.r. to t X1=diff(x+t,t).subs({t:0}); X1
1
# the second component of X is the derivative of ϕ2 w.r. to t X2=diff(y+2*t,t).subs(t=0);X2
2

Thus   X=x+2y.\ \ X=\frac{\partial}{\partial x}+2\frac{\partial}{\partial y}.


Example 17.10

Plot the vector field XX from the previous example.

M = Manifold(2, 'M') # manifold M X.<x,y> = M.chart() # Cartesian coordinates X = M.vector_field(1,2, name='v') # vector field X p=X.plot(scale=0.1,arrowsize=1.5,number_values={x:6, y:6}, ranges={x: (-1,1), y: (-1,1)},color='grey') # plot X p.show(aspect_ratio=1) # show plot
Image in a Jupyter notebook

Example 17.11

For ϕϕ from Example 17.8 plot the curves ϕ(x,y)\phi_{(x,y)} for some selected points (x,y)(x,y), where ϕ(x,y)(t)=ϕ(x,y,t)ϕ_{(x,y)} (t) = ϕ(x,y, t).

# continuation of Example 17.8 # selected curves ϕ_(x,y) ϕ(x,y,t)=(ϕ1(x,y,t).subs(a=1),ϕ2(x,y,t).subs(b=2)) # a=1, b=2 s1=[parametric_plot( ϕ(x,y,t).subs({x:1,y:y0}), (t,-5,5),ymax=5,ymin=-5,color='grey') for y0 in range(-15,15)] # x=1,y=-15,-14,...,14 sum(s1).show(aspect_ratio=1) # combine plots
Image in a Jupyter notebook

Example 17.12

Consider ϕ=(ϕ1,ϕ2)ϕ=(ϕ_1,ϕ_2) defined by {ϕ1(x,y,t)=xexp(at),ϕ2(x,y,t)=yexp(bt),\left\{\begin{matrix} ϕ_1(x,y,t)=x\exp(at),\\ ϕ_2(x,y,t)=y\exp(bt), \end{matrix} \right.

for fixed a,bRa,b\in R. Show that ϕϕ defines a one-parameter group of transformations.

var('t,s,x,y,a,b') # symbolic variables ϕ1(x,y,t)=exp(a*t)*x # define ϕ1 ϕ2(x,y,t)=exp(b*t)*y # define ϕ2 a1=ϕ1(x,y,t+s).expand() # right hand side of (17.2) for ϕ1 b1=ϕ1(ϕ1(x,y,t),ϕ2(x,y,t),s).expand() # left hand side of (17.2) for ϕ1 c1=(a1-b1) # difference between lhs and rhs c1.full_simplify() # simplification
0
a2=ϕ2(x,y,t+s).expand() # right hand side of (17.2) for ϕ2 b2=ϕ2(ϕ1(x,y,t),ϕ2(x,y,t),s).expand() # left hand side of (17.2) for ϕ2
c2=(a2-b2) # difference between lhs and rhs c2.full_simplify() # simplification
0

Example 17.13

Compute components of the infinitesimal generator XX of ϕt\phi_t from the previous example for a=1, b=2a=1,\ b=2.

# first component of X is the derivative of ϕ1 w.r. to t X1=diff(exp(t)*x,t).subs({t:0}); # cf. (8.10) X1
x
# second component of X is the derivative of ϕ2 w.r. to t X2=diff(exp(2*t)*y,t).subs({t:0}); X2
2*y

Thus   X=xx+2yy.\ \ X=x\frac{\partial}{\partial x}+2y\frac{\partial}{\partial y}.


Example 17.14

Plot the vector field XX from the previous example.

M = Manifold(2, 'M') # manifold M=R^2 X.<x,y> = M.chart() # Cartesian coordinates X = M.vector_field(x,2*y, name='v') # vector field X p=X.plot(scale=0.1,arrowsize=1.5,number_values={x:6, y:6}, ranges={x: (0.1,3), y: (-3,3)},color='grey') # plot X p.show(aspect_ratio=0.3) # show plot
Image in a Jupyter notebook

Example 17.15

For ϕϕ from Example 17.12 plot the curves ϕ(x,y)\phi_{(x,y)} for some selected points (x,y)(x,y), where ϕ(x,y)(t)=ϕ(x,y,t)ϕ_{(x,y)} (t) = ϕ(x,y, t).

ϕ(x,y,t)=(exp(t)*x,exp(2*t)*y) # define ϕ # plot curves passing through (1,y0), for y0 in [-5,...,4] s1=[parametric_plot( ϕ(x,y,t).subs({x:1,y:y0}), (t, -0.5,0.5 ), color='grey',ymax=3,ymin=-3,aspect_ratio=0.15) for y0 in range(-5,5)] # x=1, y=-5,-4,...,4 sum(s1) # combine plots
Image in a Jupyter notebook

What's next?

Take a look at the notebook Integral curves.