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

20. Integration of differential forms on singular kk-cubes

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'

Remark. This notebook is an attempt to present a more friendly version of Chapter 4 of:

Michael Spivak. Calculus on manifolds, Addison Wesley, NY 1965,

with elementary examples in SageMath.

Remark. Readers interested in application of free software to illustrate the classical Stokes theorem should consult for example https://docs.sympy.org/latest/modules/vector/vector_integration.html

Warning. In the present notebook we extensively use the information on differential forms from notebook 14 and notebook 16.


Explicit description of some pullbacks

Let us start from some more explicit description of pullback of kk-forms on kk-dimensional open sets.

Consider the smooth map ϕ:UV\phi:U\to V between open subsets in RkR^k. Let x1,,xkx^1,\ldots,x^k be the coordinates on VV and t1,,tkt^1,\ldots,t^k - the coordinates on UU. For kk-form ω(x)=f(x)dx1dxk, \omega(x)=f(x)dx^1\wedge\ldots\wedge dx^k,\ fC(V)f\in C^\infty(V) we have

(ϕω)(t)=f(ϕ(t))(ϕ1,,ϕk)(t1,,tk)dt1dtk,\begin{equation} (\phi^*\omega)(t)=f(\phi(t))\frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k, \tag{20.1} \end{equation}

where ϕ=(ϕ1,,ϕk)\phi=(\phi^1,\ldots,\phi^k) and  (ϕ1,,ϕk)(t1,,tk)=det[ϕitj]\ \frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}=\det\big[\frac{\partial\phi^i}{\partial t^j}\big].

In fact

ϕ(ω)=f(ϕ(t))(ϕ1ti1dti1)(ϕktikdtik)=f(ϕ(t))ϕ1ti1ϕktikdti1dtik=f(ϕ(t))(σSk(signσ)ϕ1tσ(1)ϕktσ(k))dt1dtk=f(ϕ(t))det[ϕitj]dt1dtk,\phi^*(\omega)=f(\phi(t))\big(\frac{\partial\phi^1}{\partial t^{i_1}}dt^{i_1}\big) \wedge\ldots\wedge\big(\frac{\partial\phi^k}{\partial t^{i_k}}dt^{i_k}\big)\\ =f(\phi(t))\frac{\partial\phi^1}{\partial t^{i_1}}\ldots\frac{\partial\phi^k}{\partial t^{i_k}}dt^{i_1}\wedge \ldots\wedge dt^{i_k}\\ =f(\phi(t))\big(\sum_{\sigma\in S_k} (\text{sign}\,\sigma) \frac{\partial\phi^1}{\partial t^{\sigma(1)}}\ldots\frac{\partial\phi^k}{\partial t^{\sigma(k)}}\big)dt^{1}\wedge \ldots\wedge dt^{k}\\ =f(\phi(t))\det\big[\frac{\partial\phi^i}{\partial t^j}\big]dt^{1}\wedge \ldots\wedge dt^{k},

(we have used the relations i1=σ(1),,ik=σ(k), i_1=\sigma(1),\ldots,i_k=\sigma(k),\  dti1dtik=(signσ)dt1dtk\ dt^{i_1}\wedge\ldots\wedge dt^{i_k}=(\text{sign}\,\sigma)dt^1\wedge\ldots\wedge dt^k and the definition of determinant).


Singular kk-cubes


Let [0,1]k=[0,1]××[0,1]k-times[0,1]^k=\underbrace{[0,1]\times\ldots\times[0,1]}_{k\mbox{-times}} and UU be an open subset of RkR^k such that [0,1]kU.[0,1]^k\subset U.

Let ϕ:UV\phi : U \to V be a CC^\infty map of UU into an open set VV in RmR^m (kk and mm may be different). We will write this map simply as ϕ:[0,1]kV,\begin{equation} \phi:[0,1]^k\to V, \tag{20.2} \end{equation}

(this map is a restriction of a CC^\infty map UV U\to V).

The map ϕ:[0,1]kV\phi:[0,1]^k\to V will be called a singular kk-cube in VV. The word singular indicates that the map need not be one-to-one, though we will require that ϕ\phi be in CC^\infty. For k=1,2k=1,2 the singular kk-cubes are just parametrized curves and surfaces, respectively.


Standard kk-cubes


By the standard kk-cube we will mean the map I:[0,1]kRk I:[0,1]^k\to R^k defined by

I(t)=t,t[0,1]k,\begin{equation} I(t)=t,\quad t\in[0,1]^k, \tag{20.3} \end{equation}

so II is an example of singular kk-cube with ϕ[0.1]k=id[0,1]k.\phi\big|_{[0.1]^k}=id_{[0,1]^k}.

For standard kk-cube II we can define singular (k1)(k-1)-cubes Ii0I^0_i and Ii1I^1_i (the i-th pieces of the boundary of II) as the maps

Ii0:[0,1]k1tx(t)Rk, wherex1(t)=t1,...........,xi1(t)=ti1,xi(t)=xi=0,xi+1(t)=ti,...........,xk(t)=tk1,t=(t1,,tk1)[0,1]k1,\begin{equation} \begin{matrix} I^0_i:[0,1]^{k-1}\ni t\to x(t)\in R^k, \text{ where}\\ x^1(t)=t^1,\\ ...........,\\ x^{i-1}(t)=t^{i-1},\\ x^i(t)=x^i=0,\\ x^{i+1}(t)=t^i,\\ ...........,\\ x^k(t)=t^{k-1},\\ t=(t^1,\ldots,t^{k-1})\in [0,1]^{k-1}, \end{matrix} \tag{20.4} \end{equation}

and

Ii1:[0,1]k1tx(t)Rk, wherex1(t)=t1,...........,xi1(t)=ti1,xi(t)=xi=1,xi+1(t)=ti,...........,xk(t)=tk1,t=(t1,,tk1)[0,1]k1.\begin{equation} \begin{matrix} I^1_i:[0,1]^{k-1}\ni t\to x(t)\in R^k, \text{ where}\\ x^1(t)=t^1,\\ ...........,\\ x^{i-1}(t)=t^{i-1},\\ x^i(t)=x^i=1,\\ x^{i+1}(t)=t^i,\\ ...........,\\ x^k(t)=t^{k-1},\\ t=(t^1,\ldots,t^{k-1})\in [0,1]^{k-1}. \end{matrix} \tag{20.5} \end{equation}

The singular (k1)(k-1)-cubes Ii0I^0_i and Ii1I^1_i are called (0,i)(0,i) and (1,i)(1,i) faces of II respectively.


Boundary of the singular kk-cube


In the definition of the boundary of a singular kk-cube we will use some auxiliary notions.

For arbitrary family of objects W={wi}iJW=\{w_i\}_{i\in J} we can construct a vector space of formal linear combinations of elements wiWw_i\in W as the family of functions f:WRf:W\to R, such that f(wi)=0f(w_i) = 0 for all but finitely many wiw_i. Vector space operations on such functions are defined as usual: if f,gf,g are formal linear combinations of elements of WW, then

(f+g)(wi)=f(wi)+g(wi)and   (qf)(wi)=q(f(wi)),for wiW,qR.(f+g)(w_i)=f(w_i)+g(w_i)\quad\mbox{and }\ \ (qf)(w_i)=q(f(w_i)),\quad \mbox{for } w_i\in W, q\in R.

The formal linear combination ff are usually written as

f=aiwi, where   ai=f(wi).f=\sum a_iw_i,\quad \mbox{ where } \ \ a_i=f(w_i).

If we take as WW the family of all singular kk-cubes in VV we can define the space of kk-chains in VV as the space of formal linear combinations of singular kk-cubes in VV. Thus the space of kk-chains consists of (finite) linear combinations

$$ \sum a_i\phi_i,\quad \mbox{where } \phi_i\ \ \mbox{are singular}\ \ \text{$kParseError: KaTeX parse error: Expected 'EOF', got '}' at position 11: -cubes and}̲\ \ a_i\in R. $

Using the introduced notion we can define the boundary I\partial I of the standard kk-cube II as the (k1)(k-1)-chain

I=i=1k(1)i1(Ii1Ii0).\begin{equation} \partial I=\sum_{i=1}^k (-1)^{i-1}(I^1_i-I^0_i). \tag{20.6} \end{equation}

In the case of singular kk-cube ϕ:[0,1]kV\phi:[0,1]^k\to V we define the (0,i)(0,i) and (1,i)(1,i) faces as

ϕi0=ϕIi0,ϕi1=ϕIi1,\begin{equation} \phi^0_i=\phi\circ I^0_i,\qquad \phi^1_i=\phi\circ I^1_i, \tag{20.7} \end{equation}

respectively and the boundary ϕ\partial \phi of ϕ\phi as the (k1)(k-1)-chain

ϕ=i=1k(1)i1(ϕi1ϕi0).\begin{equation} \partial\phi =\sum_{i=1}^k (-1)^{i-1}(\phi^1_i-\phi^0_i). \tag{20.8} \end{equation}

Integrals of kk-forms on singular kk-cubes and chains


Let ω\omega be a smooth kk-form on an open set URkU\subset R^k containing [0,1]k[0,1]^k. Assume that ω\omega is of the form

ω=fdx1dxk,\begin{equation} \omega=fdx^1\wedge\ldots\wedge dx^k, \tag{20.9} \end{equation}

where ff is a smooth function on UU.

We define first the integral of ω\omega over [0,1]k[0,1]^k

[0,1]kω=[0,1]kfdx1dxk=[0,1]kf(x)dx1dxk=[0,1]kf,\begin{equation} \int_{[0,1]^k}\omega =\int_{[0,1]^k}fdx^1\wedge\ldots\wedge dx^k=\int_{[0,1]^k}f(x)dx^1\ldots dx^k=\int_{[0,1]^k} f, \tag{20.10} \end{equation}

where the right hand side denotes the Riemann integral over the rectangle [0,1]k[0,1]^k.

Using this relation we can define the integral of the smooth kk-form ω\omega on VV over singular kk-cube ϕ:[0,1]kV\phi:[0,1]^k\to V:

ϕω=[0,1]kϕω.\begin{equation} \int_\phi\omega =\int_{[0,1]^k}\phi^\star\omega. \tag{20.11} \end{equation}

With the help of (20.1) we can rewrite this formula:

ϕω=[0,1]kf(ϕ(t))(ϕ1,,ϕk)(t1,,tk)dt1dtk,\begin{equation} \int_{\phi}\omega=\int_{[0,1]^k}f(\phi(t)) \frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k, \tag{20.12} \end{equation}

where ϕ=(ϕ1,,ϕk)\phi=(\phi^1,\ldots,\phi^k).

In the special case of standard kk-cube II given by x1=t1,,xk=tkx^1=t^1,\ldots,x^k=t^k, t[0,1]kt\in [0,1]^k we obtain

Ifdx1dxk=[0,1]kI(fdx1dxk)=[0,1]kf(I(t))(x1,,xk)(t1,,tk)dt1dtk=[0,1]kf(t)dt1dtk.\begin{equation} \begin{matrix} \int_I fdx^1\wedge\ldots\wedge dx^k= \int_{[0,1]^k}I^*(fdx^1\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}f(I(t)) \frac{\partial(x^1,\ldots,x^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k\\ =\int_{[0,1]^k}f(t)dt^1\ldots dt^k. \end{matrix} \tag{20.13} \end{equation}

Finally we define the integral of kk-form of ω\omega over kk-chain c=aiϕic=\sum a_i\phi_i:

cω=aiϕiω.\begin{equation} \int_c\omega=\sum a_i\int_{\phi_i}\omega. \tag{20.14} \end{equation}

The last formula applied to (k1)(k-1)-chain   I=i=1k(1)i1(Ii1Ii0)  \ \ \partial I=\sum_{i=1}^k (-1)^{i-1}(I^1_i-I^0_i)\ \ and (k1)(k-1)-form ω\omega gives

Iω=i=1k(1)i1(Ii1ωIi0ω),\begin{equation} \int_{\partial I}\omega=\sum_{i=1}^k (-1)^{i-1}(\int_{I^1_i}\omega -\int_{I^0_i}\omega), \tag{20.15} \end{equation}

and in the case of (k1)(k-1)-chain   ϕ=i=1k(1)i1(ϕi1ϕi0)  \ \ \partial \phi=\sum_{i=1}^k (-1)^{i-1}(\phi^1_i-\phi^0_i)\ \ :

ϕω=i=1k(1)i1(ϕi1ωϕi0ω).\begin{equation} \int_{\partial \phi}\omega=\sum_{i=1}^k (-1)^{i-1}(\int_{\phi^1_i}\omega -\int_{\phi^0_i}\omega). \tag{20.16} \end{equation}

The definition (20.15) of the integral of ω\omega on I\partial I looks artificially, but we can give it a quite natural interpretation if we define the orientation of Ii0I^0_i and Ii1I^1_i.

We recall that the transition from one frame e1,...,eke_1,..., e_k in RkR^k to a second frame e1,...,eke_1',..., e_k' can be defined by the square matrix obtained from ej=Ajieie_j'=A^i_je_i. The determinant of this matrix is always nonzero, and the set of all frames divides into two equivalence classes, each class containing all possible frames such that for any two of them the determinant of transition matrix is positive. Such equivalence classes are called orientation classes of frames in RnR^n. To define an orientation means to fix one of these orientation classes. Thus, the oriented space RkR^k is the space RkR^k together with a fixed orientation class of frames.

Let nin_i be the unit outward (with respect to [0,1]k[0,1]^k) normal vector to Ii1I^1_i or Ii0I^0_i defined in (20.4),(20,5). Assume that the space R𝑘R^𝑘 has been oriented by e1,,eke_1,\ldots,e_k. We can define the orientation of I01I^1_0 and Ii0I^0_i prescribed by the unit outward normal vector to Ii1I^1_i or Ii0I^0_i in the following way.

Compare the frame 𝑛i,𝑒1,...,ei^,𝑒k𝑛_i,𝑒_1,...,\widehat{e_i}\ldots,𝑒_k (eie_i omitted) with the frame e1,..,,𝑒ke_1,..,,𝑒_k, that orients the space R𝑘R^𝑘.

If these are in the same orientation class, then Ii0I^0_i (or Ii1I^1_i) has the orientation prescribed by the unit outward normal vector to Ii0I^0_i (or Ii1I^1_i).

If these two frames are in different orientation classes, then we take the orientation of Ii0I^0_i ( or Ii1I^1_i) opposite to that defined by 𝑛i,𝑒1,...,ei^,𝑒k𝑛_i,𝑒_1,...,\widehat{e_i}\ldots,𝑒_k as the one prescribed by the outward unit normal vector.

Defining  Iω  \ \int_{\partial I}\omega\ \ we take the sum of all  Ii0ω  \ \int_{ I^0_i}\omega\ \ and  Ii1ω,  \ \int_{I^1_i}\omega,\ \ but if  Ii0 \ I^0_i\ or  Ii1 \ I^1_i\ have the orientation opposite to that prescribed by the outward unit normal vector we take the corresponding integrals with minus sign.


Example 20.1

Consider the case k=2k=2.

l1=polygon2d([(1.0,0.5),(1.5,0.5),(1.5,1.0),(1.0,1.0)], fill=False,color='black',xmin=0,xmax=2.5, ymin=0,ymax=1.5) e1=arrow((1.35,1),(1.1,1),color='black') t1=text('$-e_1$',(1.1,1.1),fontsize=20, color='black') n1=arrow((1.35,1),(1.35,1.2),color='black') tn1=text('$n$',(1.35,1.25),fontsize=20, color='black') I21=text('$I^1_2$',(1.2,1.3),fontsize=24, color='black') e2=arrow((1.1,0.5),(1.35,0.5),color='black') t2=text('$e_1$',(1.25,0.6),fontsize=20, color='black') n2=arrow((1.1,0.5),(1.1,0.3),color='black') tn2=text('$n$',(1.1,0.25),fontsize=20, color='black') I20=text('$I^0_2$',(1.3,0.2),fontsize=24, color='black') e3=arrow((1,0.85),(1.0,0.65),color='black') t3=text('$-e_2$',(0.85,0.65),fontsize=20, color='black') n3=arrow((1.0,0.85),(0.8,0.85),color='black') nt3=text('$n$',(0.75,0.9),fontsize=20, color='black') I11=text('$I^1_1$',(1.9,0.75),fontsize=24, color='black') e4=arrow((1.5,0.65),(1.5,0.85),color='black') t4=text('$e_2$',(1.6,0.85),fontsize=20, color='black') n4=arrow((1.5,0.65),(1.7,0.65),color='black') nt4=text('$n$',(1.75,0.65),fontsize=20, color='black') I01=text('$I^0_1$',(0.6,0.75),fontsize=24, color='black') (l1+e1+t1+n1+tn1+e2+n2+tn2+t2+e3+t3+n3+nt3+ e4+t4+n4+nt4+I21+I20+I11+I01).show(axes=False)
Image in a Jupyter notebook

If k=2k=2, then the integral over the boundary of  I \ I\ defined in (20.15) takes the form

Iω=i=12(1)i1[Ii1ωIi0ω]=I11ωI10ωI21ω+I20ω.\begin{equation} \begin{matrix} \int_{\partial I}\omega =\sum_{i=1}^2(-1)^{i-1}\big[\int_{I^1_i}\omega-\int_{I^0_i}\omega\big] \\ =\int_{I^1_1}\omega-\int_{I^0_1}\omega -\int_{I^1_2}\omega+\int_{I^0_2}\omega. \end{matrix} \tag{*} \end{equation}

The orientation of the boundary of II prescribed by the unit normal outward vector implies that:

on I20I^0_2 the frame n,e1n,e_1 is in the same orientation class as e1,e2e_1,e_2 in R2R^2,

on I11I^1_1 the frame n,e2n,e_2 is in the same orientation class as e1,e2e_1,e_2 in R2R^2,

on I21I^1_2 the frame n,e1n,-e_1 is in the same orientation class as e1,e2e_1,e_2 in R2R^2,

on I10I^0_1 the frame n,e2n,-e_2 is in the same orientation class as e1,e2e_1,e_2 in R2R^2.

This is in accordance with the fact that in (*) the integrals over I21I^1_2 and I10I^0_1 are taken with the minus sign.

As we can see, in the case k=2k=2 the formula (20.15) agrees with the orientation of boundary of II prescribed by the unit outward normal vector and corresponds to going around the square counterclockwise.


Example 20.2

Consider the case k=3k=3.

x1=arrow((0.5,0.2),(1.8,0.2),color='black') x2=arrow((0.5,0.2),(1.6,1.05),color='lightgrey') x3=arrow((0.5,0.2),(0.5,1.4),color='black') t1=text('$x_1$',(2.1,0.2),fontsize=20, color='black') t2=text('$x_2$',(1.5,1.4),fontsize=20, color='black') t3=text('$x_3$',(0.4,1.7),fontsize=20, color='black') #(x1+x2+x3).show(axes=False) l1=polygon2d([(0.5,0.2),(0.5,0.8),(1.0,0.8),(1,0.2)], fill=False,color='black') l2=polygon2d([(0.5,0.8),(0.8,1.),(1.3,1.),(1.0,0.8)], fill=False,color='black') l3=polygon2d([(1.0,0.2),(1.0,0.8),(1.3,1),(1.3,0.5)], fill=False,color='black') p11=x1+t1+x2+t2+x3+t3+l1+l2+l3 e2=arrow((0,0),(-0.6,-0.6),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t2=text('$-e_2$',(-0.75,-0.75),fontsize=20, color='black') e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t3=text('$e_3$',(0,1.4),fontsize=20, color='black') n=arrow((0,0),(-0.7,0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(-0.8,0.),fontsize=20, color='black') left=text("$I^0_1$",(1.8,0),fontsize=28, color='black') p10=e2+t2+e3+t3+n+tn+left e2=arrow((0,0),(0.6,0.6),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t2=text('$e_2$',(0.75,0.75),fontsize=20, color='black') e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t3=text('$e_3$',(0,1.4),fontsize=20, color='black') n=arrow((0,0),(0.7,0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(0.8,0.),fontsize=20, color='black') right=text("$I^1_1$",(-1.9,0),fontsize=28, color='black') p12=e2+t2+e3+t3+n+tn+right e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black') e2=arrow((0,0),(0.7,0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t2=text('$e_2$',(0.8,0.8),fontsize=20, color='black') n=arrow((0,0),(0,1),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(0.,1.1),fontsize=20, color='black') ttop=text("$I^1_3$",(0,-1.9),fontsize=28, color='black') p01=e1+t1+e2+t2+n+tn+ttop e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black') e2=arrow((0,0),(-0.7,-0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t2=text('$-e_2$',(-0.8,-0.8),fontsize=20, color='black') n=arrow((0,0),(0,-1),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(0.,-1.1),fontsize=20, color='black') bottom=text("$I^0_3$",(0,1.8),fontsize=28, color='black') p21=e1+t1+e2+t2+n+tn+bottom e1=arrow((0,0),(-0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t1=text('$-e_1$',(-1,0.0),fontsize=20, color='black') e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t3=text('$e_3$',(0,1.4),fontsize=20, color='black') n=arrow((0,0),(0.7,0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(0.8,0.8),fontsize=20, color='black') back=text("$I^1_2$",(-1.8,-1.8),fontsize=28, color='black') p02=e1+t1+e3+t3+n+tn+back e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black') e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) t3=text('$e_3$',(0,1.4),fontsize=20, color='black') n=arrow((0,0),(-0.7,-0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2) tn=text('$n$',(-0.8,-0.8),fontsize=20, color='black') front=text("$I^0_2$",(1.8,1.8),fontsize=28, color='black') p20=e1+t1+e3+t3+n+tn+front graphics_array([[text("",(1,1)),p01,p02], [p10,p11,p12], [p20,p21,text("",(1,1))]]).show(axes=False, figsize=(8,6))
Image in a Jupyter notebook

If k=3k=3, then the integral over the boundary of  I \ I\ defined in (20.15) takes the form

Iω=i=13(1)i1[Ii1ωIi0ω]=I11ωI10ωI21ω+I20ω+I31ωI30ω.\begin{equation} \begin{matrix} \int_{\partial I}\omega =\sum_{i=1}^3(-1)^{i-1}\big[\int_{I^1_i}\omega-\int_{I^0_i}\omega\big] \\ =\int_{I^1_1}\omega-\int_{I^0_1}\omega -\int_{I^1_2}\omega+\int_{I^0_2}\omega +\int_{I^1_3}\omega-\int_{I^0_3}\omega. \end{matrix} \tag{**} \end{equation}

The orientation of the boundary of II prescribed by the unit outward normal vector implies that:

on I11I^1_1 the frame n,e2,e3n,e_2,e3 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3,

on I10I^0_1 the frame n,e2,e3n,-e_2,e_3 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3,

on I21I^1_2 the frame n,e1,e3n,-e_1,e_3 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3,

on I20I^0_2 the frame n,e1,e3n,e_1,e_3 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3,

on I31I^1_3 the frame n,e1,e2n,e_1,e_2 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3,

on I30I^0_3 the frame n,e1,e2n,e_1,-e_2 is in the same orientation class as e1,e2,e3e_1,e_2,e_3 in R3R^3.

This is in accordance with the fact that in (**) the integrals over I10,I21,I30I^0_1,I^1_2,I^0_3 are taken with the minus sign.

As we can see, in the case k=3k=3 the formula (20.15) agrees with the orientation of boundary of II prescribed by the unit outward normal vector.


Integrals of (k1)(k-1)-forms over Ii0I^0_i and Ii1I^1_i


General smooth (k1)(k-1)-form on an open subset URkU\subset R^k containing [0,1]k[0,1]^k is of the form

ω=j=1kωj(x1,,xk)dx1dxj^dxk,\begin{equation} \omega=\sum_{j=1}^k\omega_j(x^1,\ldots,x^k)dx^1\wedge\ldots \widehat{dx^j} \wedge\ldots dx^k, \tag{20.17} \end{equation}

(dxjdx^j is omitted).

Consider the single summand  ωjdx1dxj^dxk\ \omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k.

Since the map Ii0I^0_i is given by (20.4) and xi=0x^i=0 is constant, for iji\neq j we have

Ii0ωjdx1dxj^dxk=[0,1]k1(Ii0)(ωjdx1dxj^dxk)=[0,1]k1ωj(Ii0(t))(x1,0xj^,xk)(t1,,tk1)dt1dtk1=0\int_{I^0_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k-1}}(I^0_i)^*(\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^{k-1}}\omega_j(I^0_i(t)) \frac{\partial(x^1,\ldots 0\ldots\widehat{x^j}\ldots,x^k)}{\partial(t^{1},\ldots,t^{k-1})} dt^{1}\wedge\ldots\wedge dt^{k-1}=0

and analogously for Ii1I^1_i , so if iji\neq j

Ii0ωjdx1dxj^dxk=0,Ii1ωjdx1dxj^dxk=0.\begin{equation} \begin{matrix} \int_{I^0_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k=0,\\ \int_{I^1_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k=0. \end{matrix} \tag{20.18} \end{equation}

If i=ji=j we have

Ii0ωidx1dxi^dxk=[0,1]k1(Ii0)(ωidx1dxi^dxk)=[0,1]k1ωi(Ii0(t))(x1,xi^,xk)(t1,,tk1)dt1dtk1=[0,1]k1ωi(Ii0(t))dt1dtk1=[0,1]k1ωixi=0dx1dxi^dxk=[0,1]kωixi=0dx1dxk.\int_{I^0_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k-1}}(I^0_i)^*(\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^{k-1}}\omega_i(I^0_i(t)) \frac{\partial(x^1,\ldots\widehat{x^i}\ldots,x^k)}{\partial(t^{1},\ldots,t^{k-1})} dt^{1}\wedge\ldots\wedge dt^{k-1}\\ =\int_{[0,1]^{k-1}}\omega_i(I^0_i(t)) dt^{1}\ldots dt^{k-1}\\ =\int_{[0,1]^{k-1}}\omega_i\big|_{x^i=0} dx^{1}\ldots\widehat{dx^i}\ldots dx^{k}\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=0} dx^{1}\ldots\ldots dx^{k}.

The last equality follows from the fact, that if a function gg is constant with respect to xix^i, then g=01gdxig=\int_0^1 gdx^i.

Analogously we can compute the integral over Ii1I^1_i, so

Ii0ωidx1dxi^dxk=[0,1]kωixi=0dx1dxk,\begin{equation} \begin{matrix} \int_{I^0_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=0} dx^{1}\ldots dx^{k}, \end{matrix} \tag{20.19} \end{equation}

and Ii1ωidx1dxi^dxk=[0,1]kωixi=1dx1dxk.\begin{equation} \begin{matrix} \int_{I^1_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=1} dx^{1}\ldots dx^{k}. \end{matrix} \tag{20.20} \end{equation}


Stokes theorem on the standard kk-cube


Consider a smooth (k1)(k-1)-form (20.17) on an open subset VRkV\subset R^k containing [0,1]k[0,1]^k and let II be the standard kk-cube defined in (20.3). Let us compute  Idω.\ \int_I d\omega.

By linearity we can compute each summand

Id(ωidx1dxi^dxk)\int_I d(\omega_idx^1\wedge\ldots \widehat{dx^i}\wedge\ldots dx^k)

separately. Let us focus on i=1i=1 first. We have

Id(ω1dx1^dx2dxk)=[0,1]kI(d(ω1dx2dxk))=[0,1]kd(I(ω1dx2dxk))=[0,1]kω1t1dt1dtk=tk=01t1=01ω1t1dt1dtk=tk=01t2=01[ω1(t)t1=1ω1(t)t1=0]dt2dtk.\int_I d(\omega_1 \widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}I^*( d(\omega_1 dx^2\wedge\ldots\wedge dx^k))\\ =\int_{[0,1]^k} d(I^*(\omega_1 dx^2\wedge\ldots\wedge dx^k))\\ =\int_{[0,1]^k}\frac{\partial \omega_1}{\partial t^1}dt^1\wedge\ldots\wedge dt^k\\ = \int_{t^k=0}^{1}\ldots\int_{t^1=0}^{1} \frac{\partial \omega_1}{\partial t^1}dt^1\ldots dt^k\\ =\int_{t^k=0}^{1}\ldots\int_{t^2=0}^{1} \big[\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0}\big]dt^2\ldots dt^k.

Since the integrand g=ω1(t)t1=1ω1(t)t1=0g=\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0} does not depend on t1t^1 it is equal to its integral 01g  dt1\int^1_0g\;dt^1, so

Id(ω1dx1^dx2dxk)=[0,1]k[ω1(t)t1=1ω1(t)t1=0]dt1dtk=[0,1]k[ω1x1=1ω1x1=0]dx1dxk=I11ω1dx1^dx2dxkI10ω1dx1^dx2dxk.\int_I d(\omega_1 \widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}\big[\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0}\big]dt^1\ldots dt^k\\ =\int_{[0,1]^k}\big[\omega_1\big|_{x^1=1}-\omega_1\big|_{x^1=0}\big]dx^1\ldots dx^k\\ =\int_{I_1^1}\omega_1\widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k -\int_{I_1^0}\omega_1\widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k.

In the last equality we have used (20.19) and (20.20) for i=1i=1.

For i=2i=2 we have

Id(ω2dx1dx2^dx3dxk)=[0,1]kI(d(ω2dx1dx3dxk))=[0,1]kd(I(ω2dx1dx3dxk))=[0,1]kω2t2dt2dt1dt3dtk=(1)[0,1]kω2t2dt1dt2dt3dtk=(1)tk=01t2=01t1=01ω2t2dt1dtk=(1)tk=01t3=01t1=01t2=01ω2t2dt2dt1dt3dtk=(1)tk=01t2=01^t1=01[ω2(t)t2=1ω2(t)t2=0]dt1dt2^dtk.\int_I d(\omega_2 dx^1\wedge\widehat{dx^2}\wedge dx^3\ldots\wedge dx^k)\\ =\int_{[0,1]^k}I^*( d(\omega_2 dx^1\wedge dx^3\ldots\wedge dx^k))\\ =\int_{[0,1]^k} d(I^*(\omega_2 dx^1\wedge dx^3\ldots\wedge dx^k))\\ =\int_{[0,1]^k}\frac{\partial \omega_2}{\partial t^2}dt^2\wedge dt^1\wedge dt^3\ldots\wedge dt^k\\ =(-1)\int_{[0,1]^k}\frac{\partial \omega_2}{\partial t^2}dt^1\wedge dt^2\wedge dt^3\ldots\wedge dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\int_{t^2=0}^1\int_{t^1=0}^{1} \frac{\partial \omega_2}{\partial t^2}dt^1\ldots dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\int_{t^3=0}^1\int_{t^1=0}^1\int_{t^2=0}^{1} \frac{\partial \omega_2}{\partial t^2}dt^2dt^1 dt^3\ldots dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\widehat{\int_{t^2=0}^1}\int_{t^1=0}^{1} \big[\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0}\big]dt^1\ldots\widehat{dt^2}\ldots dt^k.

Since the integrand g=ω2(t)t2=1ω2(t)t2=0g=\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0} does not depend on t2t^2 it is equal to its integral 01g  dt2\int^1_0g\;dt^2, so

Id(ω2dx1dx3dxk)=(1)[0,1]k[ω2(t)t2=1ω2(t)t2=0]dt1dtk=(1)[0,1]k[ω2x2=1ω2x2=0]dx1dxk=(1)[I21ω2dx1dx2^dxkI20ω2dx1dx2^dxk].\int_I d(\omega_2 dx^1\wedge dx^3\wedge\ldots\wedge dx^k)\\ =(-1)\int_{[0,1]^k}\big[\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0}\big]dt^1\ldots dt^k\\ =(-1)\int_{[0,1]^k}\big[\omega_2\big|_{x^2=1}-\omega_2\big|_{x^2=0}\big]dx^1\ldots dx^k\\ =(-1)\big[\int_{I_2^1}\omega_2dx^1\wedge\widehat{dx^2}\wedge\ldots\wedge dx^k -\int_{I_2^0}\omega_2dx^1\wedge\widehat{dx^2}\wedge\ldots\wedge dx^k\big].

In the last equality we have used (20.19) and (20.20) for i=2i=2.

Now we are ready to consider the complete (k1)(k-1) form (20.17). First compute the exterior differential

dω=i=1kωixidxidx1dxi^dxk=i=1k(1)i1ωixidx1dxidxk=(i=1k(1)i1ωixi)dx1dxidxk,d\omega=\sum_{i=1}^k\frac{\partial \omega_i}{\partial x^i} dx^i\wedge dx^1\wedge\ldots \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\sum_{i=1}^k (-1)^{i-1}\frac{\partial \omega_i}{\partial x^i} dx^1\wedge\ldots \wedge dx^i\wedge\ldots\wedge dx^k\\ =\big(\sum_{i=1}^k (-1)^{i-1}\frac{\partial \omega_i}{\partial x^i}\big) dx^1\wedge\ldots \wedge dx^i\wedge\ldots\wedge dx^k,