tutorial. 从向量场计算Cartesian算子[math-0004]
空间计算依赖坐标的类型、顺序和正则性。Grove不会从向量箭头猜这些信息;作者显式构造空间、分量和前提,计算器才展开算子。
声明有序Cartesian空间[#93]
这里◆:space的三个参数定义有序坐标;◆:components需要三个Semantic标量值和对应空间。v是具体向量场(x²,y,z),不是排版用的列向量。
其Semantic term是:
(components (^ (var x) (num "2")) (var y) (var z))
有序空间作为值的requirement携带。它不会因为被写入v就自动启用;下面的计算显式把r3放入假设列表。
example. 计算空间算子[#94]
- grad of
x²+y²+z²: - div of
(x²,y,z): - Laplacian of
x²+y²+z²:
结果分别是(2x,2y,2z)、2x+2、以及6。算子先展开成坐标偏导,再由标量规则计算。分量求值并没有通过预设答案替换。
向量排版和向量语义[#97]
Notation的列布局只表达怎么显示:
(1)
Semantic的components则表达一个恰有三个标量分量、依赖特定有序空间的向量对象。列布局可以包含任意内容,但不能用于math-compute;Semantic向量可以参与加法、数乘、点积和叉积。
检查计算证书[#98]
curl/grad 类空间计算都会保留可重放证书。当前散度计算 replay:#t
独立重放检查每个rewrite edge;测试套件另有独立的精确多项式解释器,用来避免只用生产规则验证生产规则。
remark. 范围[#99]
这里实现的是欧氏Cartesian坐标。将名字换成r,θ,z不会自动得到柱坐标度量;一般曲线坐标、联络和边界条件都需要不同的语义与算法。
向量表示细节见分量与显式偏导;运算过程可沿计算追踪查看pass、规则路径和证书。多项式积分与Poisson特解展示另一类多项式运算。