2012-02-11 8 views
2

Newton-Raphson을 사용하여 매우 간단한 방정식 (케플러 방정식)을 풀기 위해 SciPy를 사용하려고합니다. 그러나 프로그램을 exectuing하면 다음과 같은 오류 메시지와 함께 실패합니다 SciPy 가져 오기가 작동하지 않습니다.

return sc.optimize.newton(f, meanAnomaly, f_prime, args=(), 
AttributeError: 'module' object has no attribute 'newton' 

은 분명하지만, 나는 SciPy 우분투 12.04에 설치했다. scipy.test() :

NumPy version 1.5.1 
NumPy is installed in /usr/lib/python2.7/dist-packages/numpy 
SciPy version 0.9.0 
SciPy is installed in /usr/lib/python2.7/dist-packages/scipy 
Python version 2.7.2+ (default, Jan 21 2012, 23:31:34) [GCC 4.6.2] 
nose version 1.1.2 

무엇이 잘못 되었나요? 여기에 내 코드입니다 : 당신은 scscipy.optimize을 가져 오는

# File a 
from b import * 

print calculate_eccentric_anomaly(1,2) 

# File b 
def calculate_eccentric_anomaly(meanAnomaly, eccentricity): 
    import scipy.optimize as sc 

    def f(eccentricAnomaly): 
     return (eccentricAnomaly - eccentricity * 
       sc.sin(eccentricAnomaly) - meanAnomaly) 

    def f_prime(eccentricAnomaly): 
     return 1 - eccentricity * sc.cos(eccentricAnomaly) 

    return sc.optimize.newton(f, meanAnomaly, f_prime, args=(), 
           tol=1e-10, maxiter=50) 

답변

5

, 당신은 효과적으로 scipy.optimize.optimize.newtonsc.optimize.newton를 호출하는 것을 시도하고있다. 나는 당신은 아마 이것도 알아 냈어요

import scipy.optimize as opt 

또는

import scipy.optimize as scopt 
+0

그건 바보 같은 초보자의 실수입니다. – Ingo

0

할 수 있지만, 문제 이외에 scipy.optimize의 죄/왜냐하면이없는, 지적 larsmans 것이다.

+0

사실 그것이 사실입니다. 어쨌든 지금은 나 자신을 알아 냈지만 발언 해 주셔서 감사합니다. – Ingo

+1

그래, 주로 검색 엔진을 통해 여기 오는 사람들의 이익을 위해 추가했다. – rnorris

관련 문제