{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 11. Vector fields\n",
"\n",
"This notebook is part of the [Introduction to manifolds in SageMath](https://sagemanifolds.obspm.fr/intro_to_manifolds.html) by Andrzej Chrzeszczyk (Jan Kochanowski University of Kielce, Poland)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'SageMath version 9.6, Release Date: 2022-05-15'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"version()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A **vector field** $X$ on a manifold $M$ assigns to a point $p ∈ M$ a tangent vector\n",
"$X(p) ∈ T_p M$. Instead of $X(p)$ we shall write $X_p$. Since a vector field gives us a tangent vector at each point of its domain and\n",
"a tangent vector can be applied to real-valued smooth functions to yield real\n",
"numbers, given a vector field $X$ and $f ∈ C^∞ (M)$, we can form a real-valued function\n",
"$X(f)=Xf$, defined by \n",
"\\begin{equation}\n",
"(X f )( p) ≡ X_p( f ).\n",
"\\label{}\\tag{11.1}\n",
"\\end{equation}\n",
"\n",
"\n",
"We have also an equivalent definition
\n",
"A **vector field** $X$ on a manifold $M$ is a linear map $X : C^∞ (M ) → C^∞ (M )$ such that\n",
"\n",
"$$X(f g) = f X(g) + gX(f )\\quad \\mbox{ for all } f, g ∈ C^∞ (M ).$$\n",
"\n",
"A vector field $X$ is **smooth** if for all $f\\in C^\\infty(M)$ the function $Xf$ is also in $C^\\infty(M)$.
\n",
"Equivalently we can say that a vector field $X$ on a manifold $M$ is **smooth** if for any coordinate chart $φ = (x^1 ,\\ldots , x^n ) :U → R^n$ we have for any point $p ∈ U$ \n",
"\\begin{equation}\n",
"X(p) = f^i(p)\\frac{\\partial}{\\partial x^i}\\Big|_p\n",
"\\label{}\\tag{11.2}\n",
"\\end{equation}\n",
"for some $C^\\infty$ functions $f^i : U → R$.
\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"### Frames\n",
"\n",
"
\n",
"\n",
"To define vector fields with specified components in SageMath Manifolds we need vector frames.\n",
"\n",
"\n",
"If $U$ is an open subset of a manifold $M$ (for example a coordinate neighborhood) then the **vector frame** on $U$ is the sequence $e$ of vector fields on $U$ such that for each $p∈U, \\ e(p)$ is a vector basis of the tangent space $T_pU$.
\n",
"\n",
"Usually we shall use the coordinate frames associated with the local coordinates.\n",
"\n",
"
\n",
"\n",
"**Example 11.1**\n",
"\n",
"Let us display the frame corresponding to the default chart"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coordinate frame (R^2, (∂/∂x,∂/∂y))\n"
]
},
{
"data": {
"text/html": [
"\\(\\displaystyle \\left(R^2, \\left(\\frac{\\partial}{\\partial x },\\frac{\\partial}{\\partial y }\\right)\\right)\\)"
],
"text/latex": [
"$\\displaystyle \\left(R^2, \\left(\\frac{\\partial}{\\partial x },\\frac{\\partial}{\\partial y }\\right)\\right)$"
],
"text/plain": [
"Coordinate frame (R^2, (∂/∂x,∂/∂y))"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%display latex\n",
"R2=Manifold(2,'R^2',start_index=1) # manifold R^2\n",
"c_xy.=R2.chart() # global coordinates\n",
"v = R2.vector_field(name='v') # vector field on R2\n",
"e = c_xy.frame() # vector frame\n",
"print(e)\n",
"e"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case the elements of the frame are the vector fields $p\\to \\frac{\\partial}{\\partial x^i}\\big|_p\\quad$ \n",
"($\\frac{\\partial}{\\partial x^i}\\big|_p$ was defined by formula (8.3)).
\n",
"If the frame is not defined by the user, the default frame is used."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us check how the elements e[1],e[2] of our frame e act on a scalar function."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\left(\\frac{\\partial}{\\partial x}f\\left(x, y\\right), \\frac{\\partial}{\\partial y}f\\left(x, y\\right)\\right)\\)"
],
"text/latex": [
"$\\displaystyle \\left(\\frac{\\partial}{\\partial x}f\\left(x, y\\right), \\frac{\\partial}{\\partial y}f\\left(x, y\\right)\\right)$"
],
"text/plain": [
"(diff(f(x, y), x), diff(f(x, y), y))"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# continuation # f is a scalar function on R2:\n",
"f = R2.scalar_field(function('f')(x,y), name='f') \n",
"e[1](f).expr(), e[2](f).expr() # values of the vector frame on f"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the frame is defined, we can define the components of the vector field in this frame.\n",
"\n",
"
\n",
"\n",
"**Example 11.2**\n",
"\n",
"Here defining a vector field, we use frame e:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle v = -y \\frac{\\partial}{\\partial x } + \\left( x + 1 \\right) \\frac{\\partial}{\\partial y }\\)"
],
"text/latex": [
"$\\displaystyle v = -y \\frac{\\partial}{\\partial x } + \\left( x + 1 \\right) \\frac{\\partial}{\\partial y }$"
],
"text/plain": [
"v = -y ∂/∂x + (x + 1) ∂/∂y"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R2=Manifold(2,'R^2',start_index=1) # manifold R2\n",
"c_xy.=R2.chart() # global coordinates\n",
"v = R2.vector_field(name='v') # vector field v\n",
"e = c_xy.frame() # vector frame e\n",
"v[e,:] = [-y, 1+x] # components of v in e\n",
"v.display() # show v"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since we use the default frame, the previous code can be simplified.\n",
"\n",
"
\n",
"\n",
"**Example 11.3**\n",
"\n",
"Here the frame is not specified, the result is the same, since we have used the default frame"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle v = -y \\frac{\\partial}{\\partial x } + \\left( x + 1 \\right) \\frac{\\partial}{\\partial y }\\)"
],
"text/latex": [
"$\\displaystyle v = -y \\frac{\\partial}{\\partial x } + \\left( x + 1 \\right) \\frac{\\partial}{\\partial y }$"
],
"text/plain": [
"v = -y ∂/∂x + (x + 1) ∂/∂y"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R2=Manifold(2,'R^2',start_index=1) # manifold R2\n",
"c_xy.=R2.chart() # global coordinates\n",
"v = R2.vector_field(name='v') # vector field\n",
"v[:] = [-y, 1+x] # components of v in default frame\n",
"v.display() # show v"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The value of v on a scalar function:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle -y \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + {\\left(x + 1\\right)} \\frac{\\partial}{\\partial y}f\\left(x, y\\right)\\)"
],
"text/latex": [
"$\\displaystyle -y \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + {\\left(x + 1\\right)} \\frac{\\partial}{\\partial y}f\\left(x, y\\right)$"
],
"text/plain": [
"-y*diff(f(x, y), x) + (x + 1)*diff(f(x, y), y)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# continuation # scalar function\n",
"f = R2.scalar_field(function('f')(x,y), name='f') \n",
"s=v(f) # value of v on f\n",
"s.expr() # show expression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 11.4**\n",
"\n",
"Let us check that vector fields are derivations."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# vector fields are derivations\n",
"R2=Manifold(2,'R^2',start_index=1) # manifold R2\n",
"c_xy.=R2.chart() # global coordinates\n",
"v = R2.vector_field(name='v') # vector field v\n",
"e = c_xy.frame() # frame on R2\n",
"f=R2.scalar_field(function('f')(x,y)) # scalar function f\n",
"g=R2.scalar_field(function('g')(x,y)) # scalar function g\n",
"v1=R2.scalar_field(function('v1')(x,y)) # component v1 of v\n",
"v2=R2.scalar_field(function('v2')(x,y)) # component v2 of v\n",
"v[e,:] = [v1, v2] # components of v in frame e"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we compute the value of $\\ v(fg)$:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle g\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + g\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}f\\left(x, y\\right) + f\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}g\\left(x, y\\right) + f\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}g\\left(x, y\\right)\\)"
],
"text/latex": [
"$\\displaystyle g\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + g\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}f\\left(x, y\\right) + f\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}g\\left(x, y\\right) + f\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}g\\left(x, y\\right)$"
],
"text/plain": [
"g(x, y)*v1(x, y)*diff(f(x, y), x) + g(x, y)*v2(x, y)*diff(f(x, y), y) + f(x, y)*v1(x, y)*diff(g(x, y), x) + f(x, y)*v2(x, y)*diff(g(x, y), y)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v(f*g).expr() # value of v on f*g"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and next the value of $\\ fv(g)+gv(f)$:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle g\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + g\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}f\\left(x, y\\right) + f\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}g\\left(x, y\\right) + f\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}g\\left(x, y\\right)\\)"
],
"text/latex": [
"$\\displaystyle g\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}f\\left(x, y\\right) + g\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}f\\left(x, y\\right) + f\\left(x, y\\right) v_{1}\\left(x, y\\right) \\frac{\\partial}{\\partial x}g\\left(x, y\\right) + f\\left(x, y\\right) v_{2}\\left(x, y\\right) \\frac{\\partial}{\\partial y}g\\left(x, y\\right)$"
],
"text/plain": [
"g(x, y)*v1(x, y)*diff(f(x, y), x) + g(x, y)*v2(x, y)*diff(f(x, y), y) + f(x, y)*v1(x, y)*diff(g(x, y), x) + f(x, y)*v2(x, y)*diff(g(x, y), y)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(f*v(g)+g*v(f)).expr() # value of f*v(g)+g*v(f)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Both values are the same:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\mathrm{True}\\)"
],
"text/latex": [
"$\\displaystyle \\mathrm{True}$"
],
"text/plain": [
"True"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v(f*g) == f*v(g) + g*v(f) # check if v is derivation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 11.5**\n",
"\n",
" Let us plot the vector field \n",
" $\\quad v_0=\\frac{-y}{\\sqrt{x^2+y^2}}\\frac{\\partial}{\\partial x}\n",
" +\\frac{x}{\\sqrt{x^2+y^2}}\\frac{\\partial}{\\partial y}.\n",
" $\n",
" \n",
" To obtain the plot, some restriction are necessary."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle v0 = \\left( -\\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) \\frac{\\partial}{\\partial x } + \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) \\frac{\\partial}{\\partial y }\\)"
],
"text/latex": [
"$\\displaystyle v0 = \\left( -\\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) \\frac{\\partial}{\\partial x } + \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) \\frac{\\partial}{\\partial y }$"
],
"text/plain": [
"v0 = -y/sqrt(x^2 + y^2) ∂/∂x + x/sqrt(x^2 + y^2) ∂/∂y"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%display latex\n",
"R2=Manifold(2,'R^2',start_index=1) # manifold R2\n",
"c_xy.=R2.chart(coord_restrictions=lambda x,y:x^2+y^2>0) \n",
"v0=R2.vector_field(name='v0') # vector field v0\n",
"v0[:]=-y/sqrt(x^2+y^2),x/sqrt(x^2+y^2) # components of v0\n",
"v0.display()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Fi1a0JkzZ5RarCLWrFlDzZo1o7lz54qOIjEajbRz507q3r07devWjR48eGDR9aWnp9P7779PxYoVo3fffdfse06dOkULFy6kl156iRo1akQbN25UNMf27dulfcByLwcHB/Lx8cn1lbkRjI2NVTRbpnPnzlGFChVyZGvbtm2e5VG1alU6efKkRXJlpdfr6YsvvqB58+ZRenq6ND0pKYkWLVokWxT/93//Z/FcedHr9fThhx+a5KpYsSI9fPhQdDQiylkSoaGhSq9CeDmQ2gWRmppKffr0kX6oU6dOVWKxhZaYmEgjR440GYqL/gSdWQwtWrQw+UVcs2aNxdaZmJho8vej0+koNjY2RyEUL148x0alVatWimZp165dvj+d5/Wy5H7se/fuUZMmTUw2/EREaWlpdOTIEfrss8+oa9eusoXx5ptvWixXfskVha2trWZ26WTf5fTdd9+JjiTJWhJNmjRRevHCy4HULIjs5eDs7Ezh4eGFXWyhXbx4kfz8/Ez+4X700UeqrPt///sfjR8/nq5evSpNM1cMmb+ET548sUiWu3fvmmzoMl/+/v6yhZD15e3tTVu2bFE0z549e8jJycnsOh0dHalixYq5vsqXL2/REUSmxMREevXVV6lEiRL0448/yr4nLS2Njh49SnPnzqWuXbtS27Zt6dy5cxbNVRCZRdGmTRv69NNPRccxcefOHXrllVeoR48edO/ePdFxTHz//ffUokULxUfQpIFyILUKQq4c9uzZU5hFKmLVqlUmn+xcXV1p7dq1qqw7PDxc2oVSq1Yt0uv1Zouhbt26tHHjRouNak6fPi27q8Hcq1SpUhQUFEShoaF08eJFi33aTE1NpeXLl1OlSpVyZBB9DEKOVj51syJBeDmQGgWhhXI4ePAgdevWjTZs2EBEOXcpAaB69erRlStXVMkTFxdHVatWNVl/tWrVVC8GIqKdO3fmej6/moVgjlxRvPLKK3l+n9oFwZiChJcDKV0QRqORduzYIZ0JoYVySE5OpjJlyhAAsrGxoZUrV+bYpTR27FhKTk5WJY/RaKSgoKBcN8hqFEOmgQMH5ppFp9NZbLdWQaWmptL3339PU6ZMoaioqDzfzwXBrJjwciClC2L58uXShnjNmjXCy4GIaPHixWY3fmruUsq0bNkys3nKly+vWjFkioiIIF9fX7KzszOb68CBA6rlURIX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\n",
"text/plain": [
"Graphics object consisting of 80 graphics primitives"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v0.plot(arrowsize=2,color='black',aspect_ratio=1) # plot v0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the command `v0.plot?` to see how to plot vector fields.\n",
"\n",
"
\n",
"\n",
"**Example 11.6**\n",
"\n",
"Now let us plot the vector field\n",
"$\\quad v_1=x\\frac{\\partial}{\\partial x}\n",
" -y\\frac{\\partial}{\\partial y}.\n",
" $\n",
" \n",
" Here we have excluded some neighborhood of the origin."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcsAAAGRCAYAAAAKF5jWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAACGM0lEQVR4nO2dd3gU1ffGz+6mVyChEwIkAUKX3puAgCggTUFRmlIUkCIiKIKiUqSHLih2QBAUQekI0nsnIZRAKAkJ6XXn/f2R78xvJ1tSdrL3Ru/nec5j2NncvM7uzDv3zD1ndABIIBAIBAKBdfSsBQgEAoFAwDvCLAUCgUAgyANhlgKBQCAQ5IEwS4FAIBAI8kCYpUAgEAgEeSDMUiAQCASCPBBmKRAIBAJBHgizFAgEAoEgD4RZCgQCgUCQB8IsBQKBQCDIA2GWAoFAIBDkgTBLgUAgEAjyQJilQCAQCAR5IMxSIBAIBII8EGYpEAgEAkEeCLMUCAQCgSAPnFgLEAj+beh0ulJENJeI/Igom4gGAsgy2T6HiIIB9GEkUSAQFBAdANYaBIJ/FTqdbhkRfUo5ZnmJiF4E8Nv/tumI6AkRnQLQhZ1KgUBQEEQaViDQEJ1OF0pEDwA8JKKW/3v5sclb6hJRSSLa52htAoGg8AizFAi0pTQRffu/nwcTUQQRnTDZ3vZ//xVmKRAUI8Q9S4FAQwAcIiLS6XSViag1EU2H+l5HWyJKJKLTDOQJBIJCImaWAkHR8NL//rs51+ttiegQAKOD9QgEAjsQZikQFA1NKOfe5XX5BZ1OV4OIypJIwQoExQ5hlgJB0eBHRHdyvdbpf//d72AtAoHAToRZCgRFwykiqqzT6QxERDqdrh4RfUJEcUR0nqUwgUBQcMQCH4GgaPiMiCoR0R86nS6CiJKJyJmIdkIUNwsExQ7RlEAg0Jj/NR5wA5Bm8lovItpKRC8A+J2VNoFAUDiEWQoEGqPT6f4kohZEVB5Ayv/M8wgRJQLoyladQCAoDOKepUCgPU0opxFB2v/uWS6knGNtAFNVAoGg0IiZpUCgMTqdrjMRdSYiDyIqQznGudi0mbpAICheCLMUCAQCgSAPRBpWIBAIBII8EGYpEAgEAkEeCLMUCAQCgSAPhFkKBAKBQJAHwiwFAoFAIMgDYZYCgUAgEOSBMEuBQCAQCPJAmKVAIBAIBHkgzFIgEAgEgjwQZikQCAQCQR4IsxQIBAKBIA+EWQoERYguB5//PaZLIBAUU5wK8F7RcV0gKCAJCQnk6+tLCQkJrKUIBMURbi4yxcxSIBAIBII8EGYpENggOzubpk+fTlWrViV3d3eqVq0azZo1iyRJYi1NIBA4kIKkYQWC/xxz5syhlStX0jfffEO1a9emU6dO0ZAhQ8jX15fGjRvHWp5AIHAQwiwFAhscPXqUevbsSc8//zwREVWpUoV+/PFHOnXqFGNlAoHAkfwr0rCpqak0ZswY6tatG929e5e1HCLKWdgxePBg6tOnDyUnJ7OWQ0REMTEx9NJLL9HQoUMpOzubtRwiIrp//z5169aNJkyYQEajkbUcIiK6cOECdejQgebMmUOtW7emvXv30o0bN4iI6Pz583T48GHq3r27QzXt37+f2rZtS19//bVD/64tNm/eTG3btqXff/+dtRSFlStXUrt27ejIkSOspSh88skn1KlTJzp79ixrKUREBIDefvttev755+nKlSus5RQfAOQ3uCQlJQUdO3YE5azWxbx581hLgtFoRM+ePRVNP//8M2tJAIBBgwYpmv755x/WcgAAr732mqIpKiqKtRwAwIABA0BEcHJyQnJyMt5//33odDo4OTlBp9Phs88+s/q76enpSEhIUCIqKgpEhISEBLs0de3aFUQELy8vZGdn2zWWVjzzzDMgIvj7+yMrK4u1HACAn58fiAjly5dHUlISazlITk6GTqdTND148IC1JFy/fl055sqUKYNLly6xlmSLgnhUkUaxNsvcRunj44Pw8HDWsvD5558rmkqWLImHDx+yloSTJ08qmkqVKmX3yVsL0tLS4OPjAyKCr68v0tPTWUsCADRs2BBEBIPBgO+//x6VKlXCjz/+iAsXLmDDhg0oVaoUvv76a4u/O2PGDGU/m4a9+/uFF15Qxrp//75dY2lF//79FU1//fUXazkAgJdeeknR9PHHH7OWA+D/L3SICO3atWN+YSFJElq0aFFcDJO5ScpRbM3SklEePXqUtSzs2bMHer0eRASdToc//viDtSRIkoR27dop+2rx4sWsJQEAtm3bpmgaPHgwazkKZcqUARGhUqVKqFSpEpYtW6ba/sknn6BGjRoWf7eoZpajRo1S9tXx48ftGksrNm3apGgaMWIEazkAcmZNTk5OICJ4eHggOjqatSQ8evQI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cHLJH3/8gZIlSyorrHjo53jr1i0EBgYqmn7++WfWkpCeno769esrmnjp0du5c2dF071791jLAQD06NEDRDm9glNTU+0aS6vVsPJ+cnZ25qb84plnnlFWPD958oS1HEiSpDyH1tXVFRcvXmQtCUlJScpD5J2cnLB582bWknD9+nXVqtTp06dz99QaE5gv7JGj2JpldnY2PvroI1Xz8+DgYDx+/JiprtxGafo4HZZMmDBB0VSrVi0uTriXL19WNAUFBXGzWjI4OBhEBE9PT0iShHv37mHQoEEoVaoU3N3dUb9+/Xw/kUYrsxwwYICyr65du2bXWFoxduxYRdPcuXNZywEAvPvuu6ra7rS0NNaSVI9/48EwJUlSPZCd/ldfzmk5GnOTlKNYmmVsbCy6du2q+rB79eqFp0+fMtVlySh5WM79559/KppcXFxw/vx51pIAAKNGjVJ0LVy4kLUcADklUHJzjfr16yMuLg6BgYF44403cPz4cdy6dQt79uxBREREvsbTyiynTZum7Kvff//drrG0wnSGEhgYyMXsJC0tTfUoq3HjxrGWBKPRiCFDhnBnmPPmzYPBYFDVxXNYa87cJOUodmZ56tQplSHp9XrMmTOHec0Zr0b5+PFjlCtXjjtTio+Ph6enpzKDY32hIxMeHq7sq759+2LKlClo3bp1ocfTyiy//vpr7j5DAOjWrZuia+vWrazlAAAuXryoKtbfuXMna0lcGiaQ00ymTJkyqovplStXMj+fmsDcJOUoVma5Zs0a1UFQunRp7N27l7Usbo1SkiS88MILiq7nnnuOm1TnggULFF1jxoxhLUdh586diq73338foaGhGD9+PPr27YvSpUujQYMGWL16tdXfT09PR0JCghJRUVGamOWRI0e4318dOnRgLUdhyZIliq6yZcvi0aNHrCVxa5j37983a/X3+uuv232/XiOYm6QcxcIsU1NTMXToUNWH2bx5cy6eDs6rUQLA8uXLVRcWvOjKzs5GtWrVFG1Xr15lLUnB9CT71VdfwdXVFa6urpg6dSrOnDmDlStXws3NDd98843F358xY4ZZWy8tzPLRo0fKWF26dLFrLC0xGo1KlyIiwoULF1hLApBzodi9e3dFV/fu3bmYLfFqmBkZGap70ESEBg0a4ObNm6ylMTdJObg3y8jISDRs2FD1Ib799ttcLFDh2SgvX76s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cqdiTW+e16lTh6sFNL///rvFK7W2bdtyl4rr0aOH1avgHj16sJankFcq7tixY3aNr8XM0mg0okyZMlY1hoSEcPP5r1y50qpOnU4Ho9HIWqKKhQsXWtSq5X1rezEajXjrrbdU+9FUKy8p2AcPHqBdu3Yqba+88goWLVqk+ncBYT6jlKNIzFKSJMyfPx+TJ09WThJHjx5VrZY1GAxYsGAB84NckiS0atVKOYlfunQJFStW5NIwb9++rfoiyis4iQjLli1jLU9F+/btLaaKf/31V+afuSnPPPOMTbM8ffq0XeNrYZZZWVkIDAy0qfPevXt26dSSGzduWL29kZiYyFqewpUrV1THkOnPYWFhrOUBMDdKvV6PH374AQsXLoROp4O3tzdu3brFWiYOHz6M8uXLKzqdnJywZMkSSJIESZKwcuVKvP3224W5D8zcJOUoErO0xuPHj/Hss8+qDp7+/fszP4BSU1Nx4cIF5SQeHh7OrWF++umn6NChA/744w/Vykg3NzdcunSJtTyFjz/+GEQEX19f1K1bV9G5ZMkS1tJUjB071uxq3c/PD/Pnz8fZs2ftHl+re5aPHz/GihUr0KxZM9UJiShncVdqaqrdWrUiIiJC2Z8lSpRA9erVQURo1KgRNxdK6enpaNCggbIvR48ejcjISAwYMAC9e/dmfk4CrBulTGRkJPPadUmSsGjRIuW7SESoUKECjhw5otWfYG6ScjjULIGcVVK5V0qGhobiypUrWv0JTeDZME155513FI1169blZlGSJEm4fv06kpOTcfHiRVXKkLdU3OPHj5GWlqaUEHh5eWl2Ute6dOTll19W9uWlS5fw4MED7vanaWr7888/h9FoxI0bN5CSksJamsLEiRMVjbxdbAB5GyUPJCUlqb6PRIT27dvj4cOHWv4Z5iYph8PNUubXX39VddDx8vLCpk2btP4zdlEcDDMtLQ116tRRNI4bN461JIt07NhR0ahVWYbWdO3aVdH44MEDu8ZatmwZQkNDlVmVVmbZqFEj5eTJU6mQTFJSknJcu7m5ISYmhrUkM/766y/lc3ZxceGuU09xMMpr166hVq1aKqN87733kJWVpfWfYm6ScjAzSyDHjExTdESECRMmcFVeUhwM88KFC6qFSTya0a+//qro69q1K2s5FjGdpf/999+ajKnlzFKSJKUsg7cCf5mwsDBlHw4bNoy1HDNiYmJU99YWLlzIWpKK4mCUmzdvhre3t6LR29sbW7ZsKao/x9wk5WBqlgCQkpKCV199VWWYbdq0sfvKXktyG2bdunW5M8zFixcr+sqWLcv8XkZusrOzVYs+rl+/zlqSGab7cN26dZqMqaVZPn78WNHXuXNnDdRpiyRJqFmzpqKRp/pPIEffiy++qOjr0qULVyls3o0yKysLkyZNUp2ra9euXdTHMnOTlIO5WQI5X+KwsDBuy0sA/g1TkiR069ZN0ff8889zs5hCZt68eYq+sWPHspZjxh9//KHomzp1qiZjammW//zzj6Jv1KhRGqjTFtP0Ztu2bVnLMWPFihWKPn9///z2JnUIvBultbIQLfsoW4G5ScrBhVnK8FpeIsO7YT58+FBVj8dbOUlcXJzSvN7b25u7frY3btxQ9l2/fv00GVNLs/zmm28UfQsWLNBAnbaY1tZu3ryZtRwVuctEfvvtN9aSFHg3SltlIQ6AuUnKwZVZAvyWl8jwbpg8l5MAUJ0UeCsjyczMVB551KBBA03G1NIsp0+fzuXJHlCXiwQEBBTFQo9CY6lMhBd4NkoHlIXkB+YmKQd3ZgnwX17Cu2HyWk4CgPsyktzlI7///juaNm0KNzc3+Pn5oXfv3gUaT0uzNF2mf/XqVbvH05Lc5SI8wWuZCM9G6aCykPzA3CTl4NIsZXguL+HZMHkvJ+G5jMS0fGTNmjUoWbIkVqxYgevXr+PatWsF/v5paZa8lo3wXC6Su0yEl0VHPBulA8tC8gNzk5SDa7ME+C4v4dkweS4nMS0j6datG2s5Kkxn5f7+/li7dq1d42n51BFey0Z4LRfJXSbCy31eno3SwWUh+YG5ScrBvVkCfJeX8GyYvJaT8FxGYrrPiHJKSBo0aIBy5cqha9eued4DTk9PR0JCghJRUVGamCWvZSO8lovwWibCq1EyKgvJD8xNUo5iYZaA9fISrYrH7YFXw8xdTtKjRw9uVhbzWkZiWj5CRKhcuTI2b96MU6dO4ZVXXoGfnx+ePHli9fdnzJih+n057DVL07IRnhao8FouwmOZCK9G+fDhQ7MHHzioLCQ/MDdJOYqNWcrkLi9xcnLCwoULmZsAr4bJazkJqzISa2ZmLVatWqX8bnp6Ovz9/bFy5Uqr4xfVzJLXshEey0V4LBPh1SiPHDmCChUqqM6nDiwLyQ/MTVKOYmeWQE5KynSRCBEf5SW8Giav5SQsykhiYmJw9epVq3HhwgWlfITIvO1d06ZN8cEHH+T772l1z5LHshEey0XS09NRv359rmbhPBqlJElYvHgx67KQ/MDcJOUolmYJ5OTY33//fZVhhoaGIjY2lqkuS4bJQzojdzlJRkYGa0nclpEEBQUputasWaO8npmZiTJlyqhmm3mhlVnyWDbCY7nI5MmTFU28lImMHz+eK6MEgGHDhqnOnYzKQvIDc5OUo9iapUzu8pIvv/yStSQzw9y4cSNrSWblJMeOHWMtCYC6jISXBxh3795ddbX9559/4tq1axg2bBjKlClToAfYamWWnTt3VtJkvJSNyA/O5qVcRJIk+Pv7g4ifMpGkpCQlU8GLUV6/fl1llAzLQvIDc5OUo9ibJZBjTh07dkRISAguXrzIWg6AHE0tWrRAvXr1uFi1C+Tcy6lbty7atGnDxRU3AJw/fx7BwcHo2bMnF7NdANi3bx8CAgIwYsQITJw4EWXKlIG3tzc6depU4BS2Vmb5888/o0KFCpg1a5Zd42jJwoULUb58eSxfvpy1FIX3338fFSpUwPfff89aisLrr7+OwMBALi6agZysXOfOnVG9enX88ssvrOXkBXOTlEMHgPJJvt8o+H8AkE6nYy1DwIjExETy9fWlhIQE8vHxYS1HwAhxHig03Ow0PWsB/3bEASIQCMR5oPgjzFIgEAgEgjzQzCyzsrKodu3a5OPjQ0OHDqWzZ89SAVK8DgcAjRo1ijp06EDnzp1jLSdfbN68mTZu3MhaRr6JiYkhSZJYyxBwwOPHj7k+H5hy7tw5+vLLLykrK4u1lDx5+vQpvf7669SxY0eKiYlhLccmDx48oPnz51OFChWoVKlSdPz4cdaSCkYBbnDa5ODBg2YF3cHBwZg6dSrOnDnDU5ErgJxFHKZa+/Xrx8XqOWv89NNPitYOHToUaEUmC+SyHk9PT9y6dYu1nDxp2rQp9Ho9Jk+erMl4y5YtQ2hoKKpXr67JAh9Tjhw5AldXV3h7e3Ozgtga2dnZaNy4sVLKwTNGoxGffvqpcpx16dKFtSSrPH78GNOmTVM1X+jTpw9rWWZER0dj6dKlaNOmjVKTK0c+n+DDfGGPHJqZZVpamqqYO3c0bNiQm1WhAHD58mWLOp9//nn8888/rOWZ8eGHH6p0VqxYEbt27WItyyrVqlVTlV/wfFK/dOmSqg4uMjJSs7G1fOoIkGM+AQEBit4RI0ZoMm5RkJ2djQEDBqi+tzw8AMESt27dMmv5VrNmTdayzIiKisL48eOV7lemMWbMGNbyVIwYMcLMIE3ju+++y88wzE1SDs3MEoDZ889yx7fffpufYRyCJEnw8vKyqnXw4MFczYY3btxoUefIkSORlJTEWp4Zpi206H9NB3g1zNzNLTp16qTZZ6+1WS5atEiltVq1alx9T2Wys7MxcOBAs+/rjRs3WEtTIUkS1q5dq3rShmm2iSe+++47VW/s3HH48GHWEhWePn1q0wtKlCiR39pO5iYph6ZmuW3bNqs7p2rVqtylDp999lmbHyhPJpS7wbdpBAUFcTVrz8rKsnhQ82iY2dnZqgYScqxbt06T8bU0y8jISIszitOnT2ugVDusGSUR4Y8//mAtT0GSJLzyyitWjyseWuWZ0qFDB6ta9Xo9F53CTHnttdes6i1ARoS5Scqh6WrYLl26kLe3t9nrer2elixZQiVLltTyz9lNo0aNrG6bNGkSeXl5OVCNbTw9Pa1uu3nzJv38888OVGObu3fvWlwcER4eTh06dKAnT54wUGWZ/fv30/37981enzBhAj148ICBIssAoDfffJNSU1PNtm3YsIGBIusMHz6cfvjhB4vbwsPDHazGOpGRkfTjjz9a3W7rmGPBlClTyM3NzeK2mjVrcqd34cKFVKpUKYvb+vXr52A19qOpWbq5uVHPnj3NXpckiV577TU6ffq0ln/ObqyZZfv27WnevHkOVmMbWwdC1apVqXfv3g5UY5uIiAir28LDw62eSFlgzWiePn1K77zzjoPVWGfDhg20Z88ei9t++OEHblZu3r59m77++mur23kyy8DAQOrbt6/V7byZz3PPPUdz5861uM3WhT8LEhMTqUePHhQXF2e2zc/Pjzp06MBAlX1oXmc5YMAA5ecqVapQkyZNiCjn5NOpUyeuDDP3F0wuHD5w4AB3V+vWDtyGDRvSlStXqHLlyg5WZB1bJ8QyZcpwc6CkpaXRL7/8YnX7li1bKCUlxYGKrGPr+xgTE0N//fWXA9VYp2LFitSmTRur221dSDkaJycn2rhxI02ZMsXidt7MMjIykj766COL23gyy8TERHruuefo2LFjRERUqlQp6tSpk7K9T58+5OTkxEpe4SlAzjZfSJKEadOmYdCgQbhz5w6SkpLQpk0b1Y3dU6dO5Xe4IkWSJLRs2RJEhO7du2PJkiWKTjc3N65KSRISEuDm5gainGbarq6u3N6zmj9/vsX7FNOnT+emJy0AxMbG2lzBPXjwYLv/hlb3LL/55ht4enpa1ZrPlYUOQZIkHDhwQPX4JznatWvHWp6K9PR0VK1aVdHn6+ur/LxlyxbW8hRSU1PRoEEDRdtLL72ETz75BHq9Hp6enrhz5w5riQByvu/NmzdXdPr5+eHcuXPIzMzE9OnT0b9/fzx69KggQzK/VymH5mZpCZ4NMzMzE+Hh4cqKwhEjRqgWzsTHx7MVaMKuXbswffp0XL9+HYsXL1Z0tm/fnqsVkY8ePcLAgQPx2muvqVaaDhkyhLU0M7Zv345x48Zh+PDhis6hQ4ciLS1Nk/G1XOCTnZ2tWhXdvn17TJgwAfPmzePuqRG//PKLorNHjx6YOHEiunfvjoMHD7KWpsL0wq5Tp054+vQpFi5ciEWLFnFT5iJJEt544w1FZ40aNZTv08OHD7lZOGnNKO2EuUnK4RCzBPg2TFPS0tLQqFEjRecLL7zAzXMWTcnIyEBwcLCic/v27awlWSQtLU1Zll+iRAluniySm4iICGVf9u/fX7NxtS4d2bBhg6Jz4cKFmoxZFJiWkfFaDxwbG4sSJUqAiKDT6XD27FnWkiyyatUqZV96eHhw8/B2U4rIKAEOTFIOh5klUHwM8/bt2yhVqpSic/bs2awlWcT06r1GjRrcXAnnxrSMgKfSAVPS0tIUjS1atNBsXK3N8rPPPlN0bt68WZMxtSY1NVVJGZcqVYrb76XpQ5nfeOMN1nIscuLECbi4uCg6f/zxR9aSzChCowQ4MEk5HGqWQPExzF27dindJ3Q6Hf766y/WksyQJAmtW7dW9iVPzxU05ddff+U6FStTunRpEBECAgLsHquo2t2NHj1a2Ze8PMA7N6YXcUOHDmUtxyLh4eFKLbC7uzt39b8AEBMTo+rWNHbsWNaSzChiowQ4MEk5HG6WQPExzJkzZ6q+BLzcRDfl2LFjisbSpUtr2oNUK4pLKvaZZ54BEcFgMCA7O1uTMbWeWb7wwgvK533//n1NxtSa4pCC7du3r6Lxww8/ZC3HjOzsbHTu3FnR2LJlS+6OGwcYJcCBScrBxCyB4mGYRqMR3bt3VzQ2adIE6enprGWZYXpymjp1Kms5FikOqdgXX3xR0ajVTENrs5QN3cnJSTND15LikII9fPiw8jmXLVsWiYmJrCWZMX36dEVjmTJluJv5OsgoAQ5MUg5mZgkUD8N88uQJqlSpomgcOXIka0lmREZGKvc13NzcuJwBF4dUrGmK8+jRo5qMqbVZ+vv7g4hQuXJlTcbTGt5TsJIkqU7yq1atYi3JjN9++03RZzAYsH//ftaSVCQkJKBFixaOMEqAA5OUg6lZAsXDME+fPq2qa/zmm29YSzJj0qRJir7XXnuNtRwzikMq9vPPP1f24caNGzUZU0uzLKpFSFrCewr2559/VvTVqlWLu5KbmzdvKit0iQhz585lLUmFg40S4MAk5WBulkDxMMx169Yp+nhrWAAA8fHxqhW8vDUqAPhPxX777beKvgULFmgyppZmGR4erujTsrxFK3hPweZuQLBjxw7WklRYajzAU/00A6MEODBJOTRvd1cYvLy86I8//lDaZPHYGm/IkCE0YsQIIiJKT0+nPn360NOnT9mKMqFEiRI0Y8YM5d8TJ07MuRriCNPmyZs2bWKoxDIBAQHKz/fu3WOoxDKmmky18sLOnTuV9oC9e/cmZ2dnxorULFu2jG7dukVERJ06daJu3boxVvT/AKDRo0fTuXPniIioRo0atH79eqUFJ2sSExOpa9eudPToUSLK6e+6d+9eql+/PmNlDqQAzlrk8D7D5L1hAe+NCtLS0pRniPKYii2KxgRazixNZ748NiTgOQXLewMCnhsPMJpRyjCfUcrBlVkC/Bsm7w0LeG9UwHMqtijuCWppljw3JOA9BctzAwKeGw8wNkqAA5OUgzuzBPg3TJ4bFkiShFatWin7LiwsjLUkFVu3buV6VayWjQkAbc2S54YEphdpw4YNYy1HRe4GBFFRUawlKfDceIADowQ4MEk5uDRLgH/D5LlhgWmjAn9/fzx9+pS1JAXeU7ENGzZUluzbU8dYFB18eG5IwHMK1rQBwfTp01nLUeC58QAnRglwYJJycGuWAN+GyXvDAp4bFfCcitW6MYGWM8ui6DCkBTynYHluQMBr4wGOjBLgwCTl4NosAb4Nk+eGBTw3KuA5Fat1YwItzVJuSKBVilgreE3BSpKEZs2aKdp4akDAa+MBzowS4MAk5eDeLAG+DfPMmTPKQ5mJ+GpYYNqo4NVXX2UtR4HnVKxpY4JNmzbZPZ5WZmm6+Khly5Z269ISXlOwvDYgyN14YN68eawlAeDSKAEOTFKOYmGWAN+GyWvDgri4ONXKXV72F8BvKlbr8gytzLKonrdpL7ymYHltQJC78UCfPn24aDzAqVECHJikHFw0JcgPPDcu4LVhQcmSJemjjz5S/j1p0qScKyQO4LVBgWmxf1RUFEMlaky18NSQgNdGBKYNCJ599lkuGhAA5o0H1q1bx7zxgGg4kE8K4KxcwOsMk9eGBbkbFWzbto21JAD8pmJNZ3DdunXDiy++CD8/P3h7e6Nly5bYt29fgcbTambJa0MCHlOwvDYg4LHxAMczShnmM0o5ip1ZAvwaJq8NC3htVMBjKtb03qCbmxu6d++O8+fP48aNGxg9ejQ8PDzw4MGDfI+nlVny2JCA1xQsjw0IeGw8UAyMEuDAJOUolmYJ8GuYpg0L9Ho9du/ezVoSt40KeF0VKzcmICIcOnRIeT0xMRFEhD179uR7LK3MkseGBDyuguWxAUFMTAwqV66s7CseGg8UE6MEODBJOYqtWQKWDfPmzZusZakaFvj7++PRo0esJZk1KuCh3ozXVKzcmIAo55mMycnJyMrKwrx581C2bFnEx8fneyytzJLHhgQ8pmD79eunaOKlAUGPHj1UK5lZf88lSVKdNzk2SoADk5SjWJslYG6Y8+fPZy3JrGHBzz//zFoSAGDAgAGKpiNHjrCWA0CdiuVhFgD8/wnXYDDgmWeegU6ng8FgQIUKFfK8/5Weno6EhAQloqKiNDHLLl26KPe6eGlIIK/q5CkF6+fnByJ+GhAkJycrmSZeGg9cv369uBglwIFJylHszRLIMczhw4ejY8eOuHXrFms5AHLKNgYMGIDnn39ek4J0LXj48CGef/55DBo0iPnVrczdu3fRoUMHjBkzxiEmMGPGDOVEYS2+/fZbtGzZEjVr1kS3bt1w+PBhnD59GqNGjULFihURHR1d4PHt/Q789ddfaNasGVavXm3XOFryww8/oGnTptiyZQtrKQqLFi1Cs2bNcODAAdZSFKZPn47WrVvjxIkTrKUAyJlZjhgxAp06dcL58+dZy8kL5iYphw7IdykBHzUHAoEdxMbGUmxsrM33VKlShY4cOUJdunSh+Ph48vHxUbaFhITQsGHD6P3337f4uxkZGZSRkaH8OzExkQICAighIUE1jkAgyBd8PNCTiJxYCxAIHIm/vz/5+/vn+b7U1FQiItLr1aXIer2eJEmy+nuurq7k6upqn0iBQMAdxaYpgUDgSFq0aEElS5ak119/nc6fP083btygyZMn061bt+j5559nLU8gEDgYYZYCgQX8/f1p165dlJycTB07dqTGjRvT4cOHadu2baKziUDwH0TcsxQIipDExETy9fUV9ywFgsLBzT3LgpilQCAoIDqdzoeIEojIF0Aiaz0CgaBwCLMUCIoQXU6XbG8iSoI42ASCYoswS4FAIBAI8kAs8BEIBAKBIA+EWQoEAoFAkAfCLAUCgUAgyANhlgKBQCAQ5IEwS4FAIBAI8kCYpUAgEAgEeSDMUiAQCASCPBBmKRAIBAJBHgizFAgEAoEgD/4PwdxfQRWfbf0AAAAASUVORK5CYII=\n",
"text/plain": [
"Graphics object consisting of 100 graphics primitives"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M=Manifold(2,'M') # manifold M\n",
"X.=M.chart(coord_restrictions=lambda x,y:(abs(x)>0.1,abs(y)>0.1))\n",
"e=X.frame() # frame e on M\n",
"v1=M.vector_field(name='v1') # vector field v1\n",
"v1[e,:]=x,-y # components of v1\n",
"v1.plot(number_values=10, scale=0.2,\n",
" arrowsize=2,color='black',aspect_ratio=1) # plot v1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 11.7**\n",
"\n",
"Let us consider the two-dimensional sphere with spherical coordinates $\\theta,\\phi$ and the corresponding frame $\\frac{\\partial}{\\partial\\theta},\\frac{\\partial}{\\partial\\phi}$."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"%display latex\n",
"S2=manifolds.Sphere(2) # sphere S^2\n",
"Phi=S2.embedding() # embedding S^2 -> E^3\n",
"sph.=S2.spherical_coordinates() # spherical coord. on S^2\n",
"sphFr=sph.frame() # frame on S^2\n",
"E=S2.ambient() # Euclidean space E^3\n",
"cart. = E.cartesian_coordinates() # Cart.coord. in E^3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First let us plot the vector field $\\frac{\\partial}{\\partial\\phi}$:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
"Graphics3d Object"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p1=sphFr[2].plot(chart=cart, mapping=Phi,number_values=10,\n",
" scale=0.5,arrowsize=0.5,label_axes=False,thickness=0.5,\n",
" width=0.5,color='black') # plot vector field d/dphi\n",
"s=sphere(color='lightgrey',opacity=0.9) # plot the sphere\n",
"(p1+s).show(frame=False,label_axes=False) # combine plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and next $\\frac{\\partial}{\\partial\\theta}$:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
"Graphics3d Object"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p3=sphFr[1].plot(chart=cart, mapping=Phi,number_values=10,\n",
" scale=0.3,arrowsize=0.5,label_axes=False,thickness=0.5,\n",
" width=0.5,color='black') # plot vector field d/dtheta\n",
"(s+p3).show(frame=False,label_axes=False) # combine plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"### Vector fields of tangents to a curve\n",
"\n",
" \n",
"\n",
"We can also define a vector fields of tangents to a curve $\\gamma$ in a manifold $M$ i.e. the map\n",
"$t\\to \\gamma'(t)\\in T_{\\gamma(t)}M$ defined for $t$ from some interval $I$.\n",
"\n",
" \n",
"\n",
"**Example 11.8**\n",
"\n",
"Let us plot the vector field of tangent vectors to the curve\n",
"$\\ \\gamma\\ $ defined in Cartesian coordinates by $(x(t),y(t),z(t))=(\\cos(3t),\\sin(3t),2t)$."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
"Graphics3d Object"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"R. = manifolds.RealLine() # Real line with coordinate t\n",
"R3 = Manifold(3, 'R^3') # manifold R3\n",
"X. = R3.chart() # cartesian coordinates in R3\n",
" # curve c definition\n",
"c=R3.curve({X:[cos(3*t),sin(3*t),2*t]},(t, -pi/2, +pi/2),name='c')\n",
" # plot curve:\n",
"p=c.plot(X,color='grey',thickness=3,plot_points=200,label_axes=False)\n",
"vc = c.tangent_vector_field() # vector field vc along c\n",
"p2=vc.plot(chart=X, number_values=40, scale=0.15,\n",
" arrowsize=0.5,thickness=0.5,width=0.5,\n",
" color='black', label_axes=False) # plot the vector field\n",
"(p+p2).rotateZ(pi/2).show(figsize=[4,3],aspect_ratio=[1,1,0.4],\n",
" label_axes=False) # combine plots "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"**Example 11.9**\n",
"\n",
"Now let us try to plot a curve on the sphere and the vector field of tangents to that curve. \n",
"\n",
"We start from preparation commands from Example 11.7."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"S2=manifolds.Sphere(2) # sphere S^2\n",
"Phi=S2.embedding() # embedding S^2 -> E^3\n",
"sph.=S2.spherical_coordinates() # spherical coord.on S^2\n",
"sphFr=sph.frame() # frame on S^2\n",
"E=S2.ambient() # Euclidean space E^3\n",
"cart. = E.cartesian_coordinates() # Cartesian coord.in E^3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we define the curve and the vector field of tangents."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"R. = manifolds.RealLine() # real line\n",
"c = S2.curve({sph: [t, cos(2*t)]}, # curve th=t,ph=cos(2t)\n",
" (t, -oo, +oo), name='c')\n",
"vc = c.tangent_vector_field() # vector field of tangents"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we plot the curve:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"p4=c.plot(chart=cart,mapping=Phi,thickness=2,color='black',\n",
" plot_points=200, aspect_ratio=1,label_axes=False) # plot curve"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"the vector field of tangents:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"p5=vc.plot(chart=cart,mapping=Phi, number_values=40, scale=0.2,\n",
" arrowsize=0.3,thickness=0.3,width=0.3,color='black',\n",
" label_axes=False) # plot vector field"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and the sphere:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"s=sphere(color='lightgrey',opacity=0.6) # plot sphere"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we combine the three plots."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
"Graphics3d Object"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"(s+p4+p5).rotateZ(pi/2).show(frame=False,label_axes=False) # combine plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What's next?\n",
"\n",
"Take a look at the notebook [Vector fields - continuation](https://nbviewer.org/github/sagemanifolds/IntroToManifolds/blob/main/12Manifold_VectorFields_cont.ipynb)."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.6",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
| |