问题描述
我认为这与我必须在第二个 ODE 的函数中使用来自我的一阶、二阶 ODE 的结果这一事实有关。我一生都无法弄清楚这一点,而且我已经在谷歌上搜索了几个小时但没有运气......我相信你们中的大多数人都会马上看到问题所在
这是目前唯一没有报错的代码,但是剧情只是一条直线,不可能是对的
这是我目前的代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint,trapz,simps
r = np.linspace(0.001,5,5000)
M_encl_0 = 0
M_0 = 1 ## for simplicity in this part
w0 = [1,0] ## first entry is rho_tilde(0),second entry is x(0)
def function_rho(w,r):
rho,x = w
dwdx = [x,(1/rho)*(x**2) - (2/r)*x - 4*np.pi*M_0*(rho**2)]
return(dwdx)
soln_rho = odeint(function_rho,w0,r)
rho_tilde = soln_rho[:,0]
def function_M_encl(rho_tilde,r):
dM_encldr = 4*np.pi*(r**2)*rho_tilde
return(dM_encldr)
soln_M_encl = odeint(function_M_encl,M_encl_0,r)
plt.plot(r,soln_rho[:,0])
plt.xlabel("r tilde")
plt.ylabel("rho tilde")
plt.show()
plt.plot(r,soln_M_encl)
plt.xlabel("r tilde")
plt.ylabel("Enclosed Mass tilde")
plt.show()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)