改变坐标系统

改变坐标系统可以包含两种迥异的操作. 一种是重新计算对应于同样的点的坐标值. 另一种是使用新变量重新表示一个场. Wolfram 语言提供了执行这两种操作的函数.
对点进行变换
两个坐标系统之间的关系可以用映射表示,它使用旧系统中的坐标值,并且返回新系统中的坐标值.
CoordinateTransformData[transf,"Mapping"]
以纯函数在坐标系统之间进行映射
CoordinateTransformData[transf,"Mapping",pt]
pt 的新坐标值
CoordinateTransform[transf,pt]
pt 的新坐标值
在两个坐标系统的点之间进行变换.
函数 CoordinateTransformData 返回 CoordinateChartData 中坐标系统之间的映射信息.
下面把极坐标中的点 转化为直角坐标中对应的点
下面把直角坐标中的点 转化为球体坐标中对应的点
映射函数可以从 CoordinateTransformData 中索要,并且存储起来将来使用:
映射很自然地采用单个点:
使用 Map,它可以一次性用于几个点:
函数 CoordinateTransform 提供了方便的机制,用于对一个或者几个点进行变换.
下面把球体坐标中的点 转化为对应的圆柱坐标:
下面的答案可以通过将两个坐标值转化为直角坐标进行验证:
参数可以在 CoordinateTransform 中以与 CoordinateTransformData 中相同的方式进行指定. 下面将一个通用的点 使用参数 从椭球坐标转换为超球坐标:
一次可以对几个点求变换:
对场进行变换
当在两个坐标系统之间变换场时,以旧系统中的变量给出的场用新系统中的变量重新表示. 除了系统之间的映射,需要某些额外步骤:使用新变量求解旧变量,在这些表达式中替换,并且在向量和张量场的情况中,考虑两个坐标系统之间的基向量之间的不同. 所有这些步骤都由命令 TransformedField 执行.
TransformedField[transf,f,{x1,x2,,xn}->{y1,y2,,yn}]
将一个标量、向量或者张量场 f 从坐标 xi 转化为坐标 yi
在两个坐标系统的场之间进行变换.
首先考虑较简单的标量情况.
这里将标量场 从直角坐标 转化为圆柱体 坐标:
前面的例子可以使用手工完成. 与 CoordinateTransform 不同,为了使这些步骤有意义, 必须是坐标名称,而不是例如数字的坐标值:
参数可以在 TransformedField 中以与 CoordinateTransformData 中相同的方式指定. 这是从圆柱体坐标 到参数为 的椭球体坐标 的变换:
由于需要考虑基向量的改变,向量和张量情况更加复杂. 所以,向量的变换不是分量的变换. 对于被解释为标准正交基中的分量的数组,联系两个基的旋转矩阵由 CoordinateTransformData 属性 "OrthonormalBasisRotation" 给出.
这里将向量场 从直角坐标 转化为球体坐标 ,产生明显的径向结果
需要两块信息来重新产生前面的实例:变量替换规则(在标量情况中)以及基本旋转矩阵. 由于旋转矩阵指定基之间的旋转,它的转置是操作在分量上的矩阵:
若要在坐标系统之间进行向量变换,首先,向量乘以旋转矩阵,以将 基中的分量转变为 基中的分量(等价地,向量投射到局部基向量).接下来,应用替换规则:
使用 Map,标量场列表可以在坐标之间变换. 结果与使用相同分量的向量场的变换相当不同:
这将向量场 从球体坐标 转化为直角坐标
事实上,具有相同的局部分量的超椭球坐标中的向量场是关于 轴的旋转向量场:
坐标系统的参数可以在 TransformedField 中指定. 这将向量场 从直角坐标 转化为参数为 的椭球坐标
这里将阶数为2的张量从直角坐标变换到极坐标:
使用 Map,可能将矩阵转化为两个向量组成的列表,或者四个标量场的矩阵. 结果在每种情况下相当不同:
相关标准正交基
上面使用的基本旋转矩阵将关于映射的雅克比矩阵和每个图表中的标准正交基合并. 对于正交坐标系统,它从雅克比和比例因子的两个集合构建.
CoordinateTransformData[transf,prop,pt]
计算点 pt 处变换的属性
CoordinateChartData[chart,prop,pt]
计算点 pt 处图表的属性
计算图表和变换的属性.
矩阵 将基向量 旋转为基向量
旋转向量 基中是 ,而在相同基中
若要计算旋转矩阵,需要定义正交系统中的标准正交基的比例因子. 注意, CoordinateTransform 用于确保两个比例因子集合在相同点计算:
旋转矩阵从转置雅克比矩阵通过使用包含比例因子的对角矩阵对其求共轭构建:
这个矩阵将圆柱体基向量 旋转为球体基向量
该矩阵将 旋转为 ,这是 ,它将 旋转为 ,这与 相同:
旋转矩阵可以使用标量因子和雅克比矩阵以相同方式构建: