3.4.8 Closer look at orbits and tangent vectors

This section takes a closer look at orbits and tangent vectors \(\xi ,\eta \) which are the core of Lie symmetry method. By definition

\begin{align} \xi \left ( x,y\right ) & =\left . \frac {d\bar {x}}{d\epsilon }\right \vert _{\epsilon =0}\tag {1}\\ \eta \left ( x,y\right ) & =\left . \frac {d\bar {y}}{d\epsilon }\right \vert _{\epsilon =0}\nonumber \end{align}

Hence \(\xi \left ( x,y\right ) \) shows how \(\bar {x}\) changes as function of \(\left ( x,y\right ) \). And \(\eta \left ( x,y\right ) \) shows how \(\bar {y}\) changes as function of \(\left ( x,y\right ) \). This is because

\begin{align} \bar {x} & =x+\xi \epsilon \tag {2}\\ \bar {y} & =y+\eta \epsilon \nonumber \end{align}

Comparing (2) to equation of motion where \(\bar {x}\) represents final position and \(x\) is initial position, then \(\xi \) is the speed and \(\epsilon \) is the time. When time is zero, initial and final position is the same. As time increases final position changes depending on the speed as time (here represented as \(\epsilon \)) increases. So it helps to think of \(\xi ,\eta \) as the rate at which \(\bar {x},\bar {y}\) change location depending on the value \(\epsilon \). \(\xi ,\eta \) are calculated when \(\epsilon \) is very small in the limit as it reaches zero.

As \(\epsilon \) increases the point \(\left ( x,y\right ) \) moves closer to the final destination point \(\left ( \bar {x},\bar {y}\right ) \). So these quantities \(\xi ,\eta \) specify the orbit shape. The orbit is the path taken by point transformation from \(\left ( x,y\right ) \) to \(\left ( \bar {x},\bar {y}\right ) \) and depends on \(\epsilon \) such that the ode remain invariant in \(\bar {x},\bar {y}\) and points on solution curves are mapped to points on other solution curves.

Different \(\xi ,\eta \) give different orbits between two solution curves. The following example shows this. Given the ode

\[ y^{\prime }=\frac {x-y}{x+y}\]

This is Abel type ode. Also Homogeneous class A\(.\)

It has two solutions. One solution is given by Mathematica as \(y=-x-\sqrt {c_{1}+2x^{2}}\). A small program was now written that plots the orbit for 4 solutions \(\xi ,\eta \) found for the similarity conditions. The similarity solution were found by Maple’s symgen command.

The program starts from the same \(\left ( x,y\right ) \) point from one solution curve and determines \(\left ( \bar {x},\bar {y}\right ) \) location on anther solution curve using each pair of \(\xi ,\eta \) found. The same solution curves are used in order to compare the orbits. The following plot was generated showing the result

The source code used to generate the above plot is

<<MaTeX` 
ode=y'[x]==(x-y[x])/(x+y[x]); 
ysol=DSolve[ode,y[x],x] 
ysol=-x-Sqrt[C[1]+2 x^2]; 
 
x1 = 1.5; 
y1 = ysol /. {C[1] -> 1, x -> x1}; 
 
ysol2=ysol/.C[1]->1.1 
 
getSolutions[inf_List, titles_List, x_Symbol, ysol1_, ysol2_, x1_, 
  y1_, from_, to_] := 
 Module[{xbar, ybar, eps, eq, soleps, p, data, n, xi, eta, texStyle}, 
  data = Table[0, {n, Length@inf}]; 
  texStyle = {FontFamily -> "Latin Modern Roman", FontSize -> 12}; 
 
  Do[ 
   xi = First[inf[[n]]]; 
   eta = Last[inf[[n]]]; 
   xbar = x1 + eps*xi ; 
   ybar = y1 + eps*eta; 
   eq = ybar == ysol2 /. x -> xbar; 
   soleps = SolveValues[eq, eps]; 
   soleps = First@SortBy[soleps, Abs]; 
   ybar = ybar /. eps -> soleps; 
   xbar = xbar /. eps -> soleps; 
   p = Plot[{ysol1, ysol2}, {x, from, to}, 
     PlotLabel -> MaTeX[titles[[n]], Magnification -> 1.5], 
     BaseStyle -> texStyle, 
     Epilog -> {{Arrowheads[.02], Arrow[{{x1, y1}, {xbar, ybar}}]}, 
       Text[MaTeX["\\left( x,y \\right)"], {x1, y1}, {-1, -1}], 
       Text[ 
        MaTeX["\\left( \\bar{x},\\bar{y}\\right)"], {xbar, ybar}, {1, 
         1}]}, 
     ImageSize -> 400]; 
   data[[n]] = p 
   , 
   {n, 1, Length@inf} 
   ]; 
 
  data 
 
  ]; 
 
inf = {{1/x1, -1/x1}, 
   {0, 1/(x1 + y1)}, 
   {-(x1^2 - 2*x1*y1 - y1^2)/(x1 - y1), 0}, 
   {2*x1 + y1, x1} 
   }; 
titles = {"\\xi=\\frac{1}{x},\\eta=-\\frac{1}{x}", 
   "\\xi=0,\\eta=\\frac{1}{x+y}", 
   "\\xi=\\frac{-(x^2-2 x y-y^2)}{x=y},\\eta=0", "\\xi=2 x+y,\\eta=x"}; 
data = getSolutions[inf, titles, x, ysol /. C[1] -> 1, ysol2, x1, y1, 
   1.45, 1.51]; 
p = Grid[Partition[data, 2], Frame -> All, Spacings -> {1, 1}]