0
그래프를 그릴 수있는 방정식을 풀려고했습니다. 그러나 아래 코드를 사용하면 올바르게 플로팅 할 수 없습니다. 함수의 일부 매개 변수를 변경하더라도 x=y
함수를 제공합니다. 이미 간단한 함수 x
을 시도했지만 결과는 정확합니다.통합 기능이 특정 기능과 작동하지 않을 수 있습니다.
기능
x
(0에서 2로 돌아갑니다 2) 노력하고 있지만,E(z)
이되지 않습니다 :내 질문이 있습니다. 뭐가 잘못 되었 니? 2시 2시와 달라야합니다.
여기 실수를하셨습니까?
이미 통합 결과를 볼프람 알파와 비교했지만 울프람 알파는
y=x
기능을 나타내지 않았습니다.
def E(z) :
return (1/((m*(1+z)**3)+(r*(1+z)**4)+l+(k*(1+z)**2)))**(1/2)
import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as integrate
z = np.arange(0,10,0.0001)
m = 0.3
r = 0
l = 0.7
k = 1-m-r-l
y0 = 0
ys = []
for i in range(100000) :
ys.append(integrate.quad(E,0,z[i])[0])
ys = np.array(ys).flatten()
L = (1+z)*(ys*(1))
plt.plot(z, L/(1+z), linestyle='--', linewidth=2, label=r"$Taylor$")
plt.legend(loc='upper right', numpoints = 3)
plt.xlim(0.0, 10)
plt.ylim(0.0, 2)
plt.xlabel(r"$z$",fontsize=18)
plt.ylabel(r"$(v_rec)/c$",size=18)
plt.show()
당신이 어딘가에 E (Z) 함수를 호출에 plausable 보인다? 어디서나 호출하지 않으면 코드 내부에서 코드를 변경하면 결과에서 아무 것도 변경되지 않습니다. – DevB2F
'E (z)'가 작동하지 않는다는 것은 무엇을 의미합니까? 코드를 실행하면 어떻게됩니까? 그게 당신이 원하는 것과 어떻게 다른가요? –