该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有了这个,算一些常用张量就可以方便很多了。
这里给出的程序中的默认情况是计算带点球对称静态解的,可以直接给出二阶协变度规(就是常用的那个度规的倒数),Christoff联络、Ricci张量与Ricci标量。
别的形式的度规嘛,改改函数就好了。
syms M;
syms u;
syms sita;
syms t;
syms phi;
syms Gamma;
syms Ricci;
syms R;
syms Q;
r=u;
delta(1,1)=1;
delta(2,2)=1;
delta(3,3)=1;
delta(4,4)=1;
v(1)=t;
v(2)=u;
v(3)=sita;
v(4)=phi;
g(1,1)=simplify(-(1-2*M/r+Q/r/r));
g(2,2)=simplify(1/(1-2*M/r+Q/r/r)*diff(r,u)^2);
g(3,3)=simplify(r^2);
g(4,4)=simplify(r^2*cos(sita)^2);
gb=delta/g
for i=1:4
for j=1:4
for k=1:4
tmp=0;
for l=1:4
tmp=tmp+gb(k,l)/2*(diff(g(l,i),v(j))+diff(g(l,j),v(i))-diff(g(i,j),v(l)));
end
Gamma(i,j,k)=simplify(tmp);
end
end
end
Gamma
for i=1:4
for j=1:4
tmp=0;
for k=1:4
tp=0;
for l=1:4
tp=tp+Gamma(i,j,l)*Gamma(l,k,k)-Gamma(i,k,l)*Gamma(j,l,k);
end
tmp=tmp+diff(Gamma(i,j,k),v(k))-diff(Gamma(i,k,k),v(j))+tp;
end
Ricci(i,j)=simplify(tmp);
end
end
Ricci
R=0;
for i=1:4
for j=1:4
R=R+Ricci(i,j)*gb(i,j);
end
end
R=simplify(R)