Домой | Мысли | Физ-мат Мысли | Наверх.
> restart;
Преобразования координат
r,
> w:=v/R;
> x:=r*cos(a+w*t);
> y:=r*sin(a+w*t);
> z1:=z;
> t1:=t;
Путь Наблюдателя и Собачки
> t_obs := t; r_obs := R; a_obs := 0; z_obs := 0;
> x_obs := subs({t=t_obs,r=r_obs,a=a_obs,z=z_obs},x); y_obs := subs({t=t_obs,r=r_obs,a=a_obs,z=z_obs},y); z1_obs := subs({t=t_obs,r=r_obs,a=a_obs,z=z_obs},z1); t1_obs := subs({t=t_obs,r=r_obs,a=a_obs,z=z_obs},t1);
> t_dog := t; r_dog := R; a_dog := u*t/R; z_dog := 0;
> x_dog := subs({t=t_dog,r=r_dog,a=a_dog,z=z_dog},x); y_dog := subs({t=t_dog,r=r_dog,a=a_dog,z=z_dog},y); z1_dog := subs({t=t_dog,r=r_dog,a=a_dog,z=z_dog},z1); t1_dog := subs({t=t_dog,r=r_dog,a=a_dog,z=z_dog},t1);
Дифференциалы
> dx:=diff(x,a)*da + diff(x,r)*dr + diff(x,t)*dt + diff(x,z)*dz;
> dy:=diff(y,a)*da + diff(y,r)*dr + diff(y,t)*dt + diff(y,z)*dz;
> dz1:=diff(z1,a)*da + diff(z1,r)*dr + diff(z1,t)*dt + diff(z1,z)*dz;
> dt1:=diff(t1,a)*da + diff(t1,r)*dr + diff(t1,t)*dt + diff(t1,z)*dz;
Дифференциал интервала
> ds2:=c^2*dt1^2-dx^2-dy^2-dz1^2;
> ds2:=simplify(ds2);
> ds2:=sort(collect(ds2,{da,dr,dt,dz}),{da,dr,dt,dz});
Метрический тензор
>
G:=array(1..4,1..4);
for i from 1 to 4 do
for j from 1 to 4 do
G[i,j] := 0;
end do;
end do;
>
for n from 1 to nops(ds2) do
pwr := op(-1, op(n,ds2));
if nops(pwr) > 1 then
cmpn := op(n,ds2)/pwr;
pwr := op(1,pwr);
print(pwr);
i := `if`( evalb(pwr = dt), 1, `if`( evalb(pwr = dr), 2, `if`( evalb(pwr = da), 3, 4 )));
j := i;
G[i,j] := simplify(cmpn);
else
pwr2 := op(-2, op(n,ds2));
cmpn := op(n,ds2)/pwr/pwr2;
i := `if`( evalb(pwr = dt), 1, `if`( evalb(pwr = dr), 2, `if`( evalb(pwr = da), 3, 4 )));
j := `if`( evalb(pwr2 = dt), 1, `if`( evalb(pwr2 = dr), 2, `if`( evalb(pwr2 = da), 3, 4 )));
G[i,j] := simplify(cmpn/2);
G[j,i] := simplify(cmpn/2);
end if;
end do;
> print(G);
Пространственный метрический тензор
>
GG:=array(1..3,1..3);
for i from 1 to 3 do
for j from 1 to 3 do
GG[i,j] := -G[i+1,j+1] + G[1,j+1] * G[i+1,1] / G[1,1];
end do;
end do;
> print(GG);
> dxx:=[dr,da,dz];
Квадрат длины
> dl2 := sum('sum('GG[i,j]*dxx[i]*dxx[j]','i'=1..3)','j'=1..3);
> dl2:=subs({dr=0,dz=0,r=R,da=1},dl2);
> dl:=sqrt(dl2);
> assume(R>0);simplify(int(dl,a=0..2*Pi));
Домой | Мысли | Физ-мат Мысли | Наверх.