r矢量球坐标系旋度_用微分几何推导矢量分析公式

本文从微分几何角度探讨三维欧氏空间中的矢量分析问题,包括梯度、散度、旋度和二阶标量导数的推导,并使用程序进行计算验证,适用于一般和正交坐标系。
摘要由CSDN通过智能技术生成

7d4f04b501e7d349604dc8a73fa44eaa.png

物理课上常用矢量分析知识,其中有些公式的推导有些繁琐。从微分几何的角度来看,大学物理中考虑的都是三维欧氏空间中的问题。所以,我们要讨论的就是三维欧氏空间中的矢量分析问题。本文就从微分几何的角度,结合程序来推导常用的几个矢量分析公式。

本文需要用到我的另两篇文章的程序和技巧:

  1. 广义相对论极简张量计算程序
  2. 广义相对论计算中张量计算技巧

附:本文的代码链接

一般坐标系

xx={u1, u2, u3};
g={{g11, g12, g13}, {g21, g22, g23}, {g31, g32, g33}};

作为最一般的坐标系,gij均为(u1, u2, u3)的函数。

梯度

标量场

梯度表达式为
,那么对应的一般坐标系中的微分几何的表达式为,
D[f[u1, u2, u3], {xx}]

散度

某矢量场

的表达式为,
A = {A1, A2, A3}

其中Ai均为(u1, u2, u3)的函数。

此时散度的定义为

,在微分几何中散度的表达式为

而协变导数作用于

的结果为,

所以,用程序来计算的表达式为,

chr = ChristoffelSymbol1[g,xx]; (* 克氏符 *)
ig = Inverse[g]; (* 度规的逆 *)
daab = Transpose[D[A,{xx}] + chr.A];
Tr[daab]

旋度

旋度的定义为

,在微分几何中散度的表达式为

因为体元

的表达式为

其中

为 Levi Civita 符号。

所以,用程序来计算的表达式为,

chr = ChristoffelSymbol1[g,xx]; (* 克氏符 *)
ig = Inverse[g]; (* 度规的逆 *)
daab = ig.Transpose[D[A,{xx}] + chr.A];
levi = LeviCivitaTensor[3]; (* Levi Civita 张量 *)
Flatten[Sqrt[g] levi,{{2,3}}].Flatten[daab]

二阶标量导数

二阶标量导数的定义为

二阶标量导数可以作用于任意张量,而作用到不同类型的张量会有不同的表达式。此处我们将用作用于标量为例作为展示,即

xx = {u1, u2, u3};
chr = ChristoffelSymbol1[g,xx]; (* 克氏符 *)
ig = Inverse[g]; (* 度规的逆 *)
df = D[f @@ xx, {xx}];
ddf = Transpose[D[df,{xx}] - df.chr];
Tr[ig.ddf]

一般的正交坐标系

正交坐标系是指在该坐标系下度规的分量只有对角元非零。设坐标系为

,在坐标变化时相应的长度变化为,

用微分几何的语言来说,就是它的度规分量为,

有些教科书上将

称为
拉梅系数,并可以给出相应的矢量算符作用的公式,

梯度

梯度的表达式为

,变换到正交归一基底
下的分量就是,

,故有对角坐标下

所以计算可以写作,

xx = {u1, u2, u3};
g = DiagonalMatrix[{h1 @@ xx, h2 @@ xx, h3 @@ xx}^2];
ig = Inverse[g];
Simplify[Sqrt[ig].D[f @@ xx, {xx}], 
 Assumptions -> {h1 @@ xx > 0, h2 @@ xx > 0, h3 @@ xx > 0}]

其中,Sqrt[ig]作用的原因是要变换到正交归一基底下的分量。后面的简化条件为h1,h2,h3均大于零。

输出的结果为,

fd7e212db9fa8a0d7b2a87b49b6ffe93.png

可以验证它的结果和教科书上的

一致。

散度

教科书上的公式中的

是指
在正交归一基底下的分量。所以,对于
坐标下的分量,我们需要从
变换,才可以得到对应于教科书上的公式。
xx = {u1, u2, u3};
g = DiagonalMatrix[{h1 @@ xx, h2 @@ xx, h3 @@ xx}^2];
ig = Inverse[g];
A = {A1 @@ xx, A2 @@ xx, A3 @@ xx};
AA = DiagonalMatrix[1/{h1 @@ xx, h2 @@ xx, h3 @@ xx}].A;
chr = ChristoffelSymbol[g, xx];
D[AA, {xx}] + chr.AA // Tr

输出的结果为,

bf55de2460d504694b01ba8243aaedd0.png 可以验证它的结果和教科书上的

一致。

旋度

xx = {u1, u2, u3};
g = DiagonalMatrix[{h1 @@ xx, h2 @@ xx, h3 @@ xx}^2];
ig = Inverse[g];
chr = ChristoffelSymbol1[g, xx];
A = {A1 @@ xx, A2 @@ xx, A3 @@ xx};
daab = Transpose[D[AA, {xx}] + chr.AA];
levi = LeviCivitaTensor[3];(*Levi Civita 张量*)
Simplify[
  Sqrt[g].ig.Flatten[
    Sqrt[Det[g]] levi, {{1}, {2, 3}}
    ].Flatten[ig.daab], 
  Assumptions -> {h1 @@ xx > 0, h2 @@ xx > 0, h3 @@ xx > 0}
  ] // Expand

其中,最后一步ig的作用是将对偶矢量拉升为矢量。而Sqrt[g]作用的原因是要变换到正交归一基底下的分量。

输出的结果为,

00799f4414f0bf9b44ea02d521c2699c.png

可以验证它的结果和教科书上的

一致。

二阶标量导数

xx = {u1, u2, u3};
chr = ChristoffelSymbol1[g, xx];(*克氏符*)
ig = Inverse[g];(*度规的逆*)
df = D[f @@ xx, {xx}];
ddf = D[df, {xx}] - df.chr;
Tr[ig.ddf] // Expand

输出的结果为,

0a0d40a745cbb90955701f2cb43d96c9.png

可以验证它的结果和教科书上的

一致。

常用坐标系的应用

知道了正交坐标系下的表达式后,正角坐标系、球坐标系、柱坐标系等常用的坐标系下的矢量分析表达式就可以直接用公式求解。此处不详述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值