我想做兩件事。我想要一組數據以3d,z,theta和r作爲我的座標軸打印出來,並且我想用我給出的方程來計算它。我不明白爲什麼在我給這個代碼時這不起作用。試圖找到我的錯在我的Python代碼
from math import *
from numpy import *
from pylab import *
from mpl_toolkits.mplot3d.axes3d import Axes3D
G=6.6738480e-11
c=2.99792458e8
Msun=1.9891e30
M=4*(Msun)
r=linspace((3*(M/Msun)*1000),(8*(M/Msun)*1000),1000)
a=.98
theta=arange(0,2*pi,pi/100)
rho=(sqrt((r**2)+((a**2)*(cos**2(theta)))))
delta=((r**2)+(a**2)-(2*M*r))
sigma=(sqrt((((r**2)+(a**2))**2)-((a**2)*delta*(sin**2(theta)))))
z=((1/(sigma(rho(sqrt(delta)))))-1)
fig = plt.figure(figsize=(14,6))
ax = fig.add_subplot(1, 1, 1, projection='3d')
p = ax.plot_surface(r, theta, z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)
show()
我敢肯定,我現在用的3D軸東西錯了,以後,雖然我得到這個錯誤:
---> 52 rho=(sqrt((r**2)+((a**2)*(cos**2(theta)))))
53 delta=((r**2)+(a**2)-(2*M*r))
54 sigma=(sqrt((((r**2)+(a**2))**2)-((a**2)*delta*(sin**2(theta)))))
TypeError: 'int' object is not callable
我是否正確進入這個?我應該使用不同的語法嗎? 任何幫助表示讚賞。我想要做的是計算z,因爲這會給我我的紅移,並且我想用增加的r和theta來繪製它。我似乎做錯了什麼。
'2(THETA)'是不可能的。 –
Both cos ** 2(something) – Emilien