2017-11-10 1 views
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() 
+0

당신이 어딘가에 E (Z) 함수를 호출에 plausable 보인다? 어디서나 호출하지 않으면 코드 내부에서 코드를 변경하면 결과에서 아무 것도 변경되지 않습니다. – DevB2F

+0

'E (z)'가 작동하지 않는다는 것은 무엇을 의미합니까? 코드를 실행하면 어떻게됩니까? 그게 당신이 원하는 것과 어떻게 다른가요? –

답변

0

plt.plot(z, E(z), 'r')

enter image description here

관련 문제