24小时热门版块排行榜    

查看: 405  |  回复: 4

蝶舞天涯ljw

捐助贵宾 (小有名气)

[求助] 求助大神,下面定义的函数已经执行通过了,但是调用的时候,有一个错误信息 已有1人参与

BeginPackage["Einstein`"]
Einstein::usage =
                                         "hhhhhhh"
Begin["`private`"]
Einstein[g_, v_] :=
Block[
  {invg, dg1, dg2, dg3, G, dG, Ruv1, Ruv2, Ruv3, Ruv4, Ruv, Rrr,
     Result} Result = {};
  (*Result save the return Values*)(*Calculate the inverse metric of \
g.*)
  invg = Inverse[g];
  (*Calculate the affine connection.*)
  dg1 = Outer[D, g, v];
  dg2 = Transpose[dg1, {1, 3, 2}];
  dg3 = Transpose[dg1, {2, 3, 1}];
  G = (1/2) invg.(dg1 + dg2 - dg3);
  (*Calculate the Ricci tensor.*)
  dG = Outer[D, G, v];
  Ruv1 = Table[Sum[dG[[k, i, k, j]], {k, 4}], {i, 4}, {j, 4}];
  Ruv2 = Table[Sum[dG[[k, i, j, k]], {k, 4}], {i, 4}, {j, 4}];
  Ruv3 = Table[
    Sum[G[[k, i, j]] G[[h, k, h]], {k, 4}, {h, 4}], {i, 4}, {j, 4}];
  Ruv4 = Table[
    Sum[G[[k, i, h]] G[[h, j, k]], {k, 4}, {h, 4}], {i, 4}, {j, 4}];
  Ruv = Ruv1 - Ruv2 - Ruv3 + Ruv4;
  Result = Append[Result, Simplify[Ruv]];
  (*Calculate the Curvature Scalar.*)
  Rrr = Sum[invg[[i, i]] Ruv[[i, i]], {i, 4}];
  Result = Append[Result, Simplify[Rrr]];
  (*Return the Result.*)
  Return[Result]
  ]
End[]
EndPackage[]





计算结果应该如下
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蝶舞天涯ljw

捐助贵宾 (小有名气)

2楼2016-04-22 08:47:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蝶舞天涯ljw

捐助贵宾 (小有名气)

3楼2016-04-22 08:47:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蝶舞天涯ljw

捐助贵宾 (小有名气)

4楼2016-04-22 08:47:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
蝶舞天涯ljw: 金币+10, ★★★很有帮助 2016-04-22 12:14:08
开始那里,Result={}前面,大括号后面,少了一个逗号。Block的语法是Block[{...}, ...]

发自小木虫IOS客户端
5楼2016-04-22 09:04:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 蝶舞天涯ljw 的主题更新
信息提示
请填处理意见