Импорт SciPy не работает - PullRequest
       5

Импорт SciPy не работает

2 голосов
/ 11 февраля 2012

Я пытаюсь использовать SciPy для решения очень простого уравнения (уравнения Кеплера) с использованием Ньютона-Рафсона. Однако выполнение программы завершается неудачно со следующим сообщением об ошибке:

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

Понятно, что у меня SciPy установлен под Ubuntu 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

Что не так? Вот мой код:

# 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)

Ответы [ 2 ]

6 голосов
/ 11 февраля 2012

Вы импортируете scipy.optimize как sc, затем пытаетесь вызвать sc.optimize.newton, что фактически будет scipy.optimize.optimize.newton.Я бы сделал

import scipy.optimize as opt

или

import scipy.optimize as scopt
0 голосов
/ 13 февраля 2012

Вы, наверное, тоже это поняли, но в дополнение к проблеме, на которую указывает Ларсман, в scipy.optimize не существует sin / cos.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...