- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
前段时间我在广义相对论中为张量微积分写了一个包。为了让其他人可以轻松访问它,应该稍微修改一下。
有像 Christoffel 这样的函数来计算 Christoffel 符号:
Christoffel[g_, xx_] :=
Block[{ig, res, n},
n = 4;
ig = Simplify[Inverse[g]];
res = Table[(1/2)*Sum[ig[[i,s]]*(-D[g[[j,k]], xx[[s]]] + D[g[[j,s]], xx[[k]]]
+ D[g[[s,k]], xx[[j]]]), {s, 1, n}], {i, 1, n}, {j, 1, n}, {k, 1, n}];
res
]
{1, 2, 3, 4}
而相对论物理学中的普遍做法建议放置
{0, 1, 2, 3}
其中 0 代表类时坐标,
{1, 2, 3}
代表类似太空的。
V = Table[i - j, {i, 0, 3}, {j, 0, 3}]
{{0, -1, -2, -3}, {1, 0, -1, -2}, {2, 1, 0, -1}, {3, 2, 1, 0}}
V[[0, 0]]
我收到
Symbol
- V的头,
V[[1, 2]]
我收到
-1
理所当然。
[0, 0]
? Part
访问张量分量 0,0
如何在包中引入自由选择其他对象的索引范围,例如 Christoffel(假设默认索引范围 - {0, 1, 2, 3}
或者如果更喜欢 - {1, 2, 3, 4}
)? 最佳答案
我无意对您的担忧轻率或轻率,但是我在理解您的困境的重要性时遇到了一些麻烦。 Mathematica,或者更具体地说 Part
从一个索引,这就是它的方式。我很想说使用例如V[[n+1]]
但我必须假设你已经考虑过这一点。
索引0
保留用于表达式的头部。虽然它远非标准,但 Mathematica 语法的灵活性实际上允许这种构造:
V = 0[-1, -2, -3][{1, 0, -1, -2}, {2, 1, 0, -1}, {3, 2, 1, 0}];
V[[0,2]]
-2
This works because the heads themselves contains your data. This is not advisable, but presented for academic interest.
In specific answer to your first question, and for explanation of the trick above, you must be familiar with Mathematica heads. Every expression conceptually has a head. In the expression a + b
the head is Plus
. In {1, 2, 3}
it is List
. You can see these written out by using FullForm
. Other types also have conceptual heads, even if they are not explicit in FullForm
. You can determine these using Head
. For example:
Head /@ {"abc", 1, Pi, 3.14, 1/2}
{String, Integer, Symbol, Real, Rational}
The Part
syntax [[0, 0]]
asks for the head of the head. In the case of your array, which is a list of lists, the head is List
, and the head of List
itself is Symbol
, which defines its type.
In reply to your second question, I would define a new Part function that indexes from zero.
myPart[x_, spec__] := Part[x, ##] & @@ ({spec} /. n_Integer :> n + 1)
V = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
myPart[V, 0, 0]
1
This also works with Span
:
myPart[V, All, 0 ;; 1]
关于wolfram-mathematica - 从 0 开始张量指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087854/
我记得 WRI 的某个人在 official newsgroup 中说出于兼容性目的,Mathematica 7 仍然有一个来自 Mathematica 5 的老式 Mathematica 帮助浏览器
除非巫师先生在度假,否则很难击败这种似乎具有无所不在和无所不知的现象。我们如何使用 Mathematica 和 StackOverflow API 超越他? 最佳答案 这是 Sjoerd 解决方案的一
您好,我无法理解以下函数的输出。 ListPointPlot3D[Table[Sin[x^2 + y], {x, 0, 3, 0.15}, {y, 0, 3
我在图形中显示了一组点: alt text http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg 我想知道是否有任何命令可以
让 S是具有唯一元素的向量,并且 s它的一个子集,也有独特的元素;例如,S={1,2,3,4,5,6}和 s={1,3,4,6} .现在给出另一个向量 c={7,8,9,7} ,如何创建矢量 C=[7
我想知道如果给定多个替换规则,mma 如何确定在发生碰撞时首先应用哪个规则。一个例子是: x^3 + x^2*s + x^3*s^2 + s x /. {x -> 0, x^_?OddQ -> 2}
在mathematica 中(我使用的是 mma 5.0(猜猜很老)),如果我将以下内容作为一行输入: Needs["Graphics`Master`"]; Animate[Plot[Sin[n x]
如果我有一个字母表,假设 sigma = {1,2,3,4,a,b,c,d,e,f,g} 并且想要生成所有长度为 n 的单词,有没有办法做到这一点? 我可以做 Flatten[Outer[Functi
生成参数列表的素数列表的最简单函数是什么?想出这样的函数并不难,比如: foo[n_] := Block[{A = {}, p = 2}, While[p All] 关于wol
在此示例中,将函数定义为“functionB”时,这是一个奇怪的结果。有人可以解释吗?我想绘制functionB[x]和functionB[Sqrt[x]],它们必须不同,但是此代码显示functio
如何在 Mathematica 中对列表进行数值微分而不先将其拟合为数学表达式(即使用 FindFit )? 具体来说,我想在列表中找到最大斜率的点。 我已经考虑使用 Differences并找到最大
我正在寻找 Mathematica 中原子对象的完整列表(其中 AtomQ 产生 True)。 我知道 Symbol String Integer Real Rational Complex Spar
最近发现了一些old post在 MathGroup 上使用未记录的命令行选项 -batchinput和 -batchoutput显示: If test.mma contains the follo
Mathematica 似乎缺少此功能,或者无论如何我都找不到它。 Series function 可以对多个变量进行连续扩展,但它似乎无法进行完整的多元扩展。 有谁知道如何做到这一点? 谢谢 最佳答
我有兴趣运行相同的函数,该函数以并行方式在多核上使用不同的参数值进行一些蒙特卡罗评估。我还想确保整个函数在同一个内核上运行,而函数内的计算不会跨内核分布。例如,假设我有一个函数(故意简化) f[a_,
我怎样才能从 Range[96] 中不重复地获得 48 个随机对的两个不同元素?即 96 个元素只使用一次。 当我尝试将元组/子集与 Select 结合使用时,我觉得必须有一种更直接的方法来实现这一点
我正在评估 Wolfram Mathematica 8 的大学类(class)项目。 我很难定义目标编程模型。 首先是因为我在数学方面真的很匮乏 :) 其次,因为我在 official documen
我开发了一些代码来从 LogNormalDistribution 和 StableDistribution 的乘积生成随机变量: LNStableRV[{\[Alpha]_, \[Beta]_, \[
我有一个想要优化的字符串验证函数。该字符串的长度为 2n,由 0 和 1 组成,例如 str="100001"。我想测试一下: 1) 字符串中奇数索引位置的 1 的数量(必须不少于 1)是否等于偶数索
请考虑: Function[subID, pointSO[subID] = RandomInteger[{1, 4}, {5, 2}]] /@ {"subA", "subB"}; M
我是一名优秀的程序员,十分优秀!