2016-12-16 3 views
-2

x를 찾아야하는 프로그램이 있습니다. 하지만 특수 함수 Ei (지수 적분)를 사용해야하고 x는 Ei의 인수 안에 있습니다. 그래서 파이썬은 그것을 인식하지 못합니다.지수 적분 함수에 대한 역함수 찾기

EI (m X)는 t E^RN + EI (c) 여기서

우변 상수 alongwith의 m =이다. x의 값을 찾아 목록에 추가하려고합니다. 그러나 파이썬은 이것을 할 수 없다.

from scipy import special 
import matplotlib 
import matplotlib.pyplot as plt 
import numpy as np 

Y = [] 
X = np.arange(0,10,.1) 
for i in X: 
    y = scipy.special.expi(i) 
    Y.append(y) 

N_0 = 2 
t_f = 100 
r = 2 
K = 100 
N_t = [N_0,] 
t = np.arange(0,100,1) 
for i in t: 
    l = i*e**r + scipy.special.expi(r*N_t[i]/K) 
    N_t.append(l) 
plt.plot(X,Y) 
plt.plot(t,N_t) 
plt.show 
+2

그래서 실제 코드는 어떻게 생겼습니까? – Evert

+0

Scipy도 사용하고 계십니까? [expi] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.expi.html#scipy.special.expi)는 찾고있는 것과 정확히 같게 들린다 – UnholySheep

+0

나는 있습니다. 그러나 scipy 함수 ei는 함수의 인수 내에서 변수를 계산할 수 없습니다. 그것은 쉽게 상수 값에 대한 ei를 계산할 수 있지만 e (x) = C는 찾지 못합니다. – Adeetya

답변

1

다음과 같은 오류를 수정했습니다. 이것을 코드와 라인별로 비교해야합니다.

from scipy.special import expi 
import matplotlib 
import matplotlib.pyplot as plt 
import numpy as np 

Y = [] 
X = np.arange(0,10,.1) 
for i in X: 
    y = expi(i) 
    Y.append(y) 

N_0 = 2 
t_f = 100 
r = 2 
K = 100 
N_t = [N_0,] 
t = np.arange(0,100,1) 
for i in t: 
    l = i*np.exp(r) + expi(r*N_t[i]/K) 
    N_t.append(l) 
plt.plot(X,Y) 
plt.plot(t,N_t) 
plt.show() 

그러나 아직 눈치 채는 한 가지 가능한 결함이 있습니다. 끝에서 동일한 그래프에 X와 T를 함께 표시하지만 X는 0에서 10까지이고 t는 0에서 100까지입니다. 의도 한 것입니까?

또한 matplotlib는 plot의 두 번째 호출에서 벡터의 길이가 같지 않다고 불평합니다.