|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题
该程序模拟水星近日点进动现象
原理:狭义相对论质增效应
具体见代码
c 表示光速(不要低于行星起始速度!)
- # 水星近日点进动 | 相对论质增效应
- # Jianbing_Juan
- import turtle as t
- import math as m
- def _angle(z):
- if z.real>0:
- return m.atan(z.imag/z.real)
- elif z.real<0:
- return m.atan(z.imag/z.real)+m.pi
- else:
- if z.imag>0:
- return m.pi/2
- elif z.imag<0:
- return -m.pi/2
- def F(z):
- return -G*Mass*mass/pow(abs(z),2)*m.cos(_angle(z))-G*Mass*mass/pow(abs(z),2)*m.sin(_angle(z))*1j
- mass=100
- mass_v=mass
- Mass=100000
- G=1
- c=500
- st_r=-100+100j
- st_v=20-5j
- tstep=0.00005
- r=st_r
- v=st_v
- t.up()
- t.goto(r.real,r.imag)
- t.down()
- while True:
- for i in range(200):
- r+=v*tstep
- v+=F(r)/mass_v*tstep
- mass_v=mass/m.sqrt(1-(abs(v)*abs(v))/(c*c))
- t.goto(r.real,r.imag)
复制代码
|
评分
-
查看全部评分
|